Commit 7e11c139 by 徐康

退款失败则记录为异常单

parent 39029bb0
......@@ -1292,28 +1292,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return newSendPaySuccessNoticeMessage();
}
private PlatformBaseRequest getRequest(OrderBean orderInfo) {
PlatformBaseRequest request = new PlatformBaseRequest();
AssortmentOpenApiEncryptDto openApiEncrypts = cacheOpenApiEncryptManager.getAssortmentOpenApiEncrypt(orderInfo.getCompanyId(), OpenPlatformEncryptUrlType.REFUND_STATUS_CHANGE_NOTIFY_URL);
request.setAppId(openApiEncrypts.getAppId());
request.setPartnerId(orderInfo.getCompanyId());
request.setVer("1");
OrderRefundStatusChangeRequestBody orderBody = new OrderRefundStatusChangeRequestBody();
orderBody.setOrderCode(orderInfo.getOid());
orderBody.setTimeStamp(System.currentTimeMillis()+"");
orderBody.setRefundType(AfterSalesType.OTHER.getIndex().toString());
orderBody.setRefundStatus(com.freemud.sdk.api.assortment.order.enums.RefundStatus.COMPLETE_REFUND.getCode().toString());
orderBody.setRefundReason("门店线下退款");
request.setRequestBody(JSON.toJSONString(orderBody));
String content = MapBeanConvertUtil.sortObjWithoutSign(request);
try {
request.setSign(RSASignUtil.getSign(content, openApiEncrypts.getServerPrivateKey(), "UTF-8"));
} catch (Exception e) {
LogUtil.error("getPlatformBaseRequest", content, JSON.toJSONString(openApiEncrypts), e);
}
return request;
}
/**
* 取消配送
*
......
......@@ -116,15 +116,12 @@ public class PaymentHandle {
orderRefundResponse = standardPaymentService.orderRefund(orderRefundRequest, "");
}catch (Exception ex){
ErrorLog.errorConvertJson(this.getClass(), "refundError", ex);
throw new OrderServiceException(ResponseResult.REFUND_EXCEPTION);
return handlePayRefundResponse(PayRefundStatus.FAIL,orderRefundRequest.getRefundId());
}
if (orderRefundResponse==null){
throw new OrderServiceException(ResponseResult.REFUND_EXCEPTION);
if (orderRefundResponse==null || ObjectUtils.notEqual(orderRefundResponse.getCode(),SUCCESS)){
return handlePayRefundResponse(PayRefundStatus.FAIL,orderRefundRequest.getRefundId());
}
if (ObjectUtils.notEqual(orderRefundResponse.getCode(),SUCCESS)){
throw new OrderServiceException(ResponseResult.REFUND_FAIL,orderRefundResponse.getMessage());
}
refundStatus=ObjectUtils.equals( PayRefundStatus.SUCCESS.getCode(), orderRefundResponse.getData().getRefundStatus())?PayRefundStatus.SUCCESS:PayRefundStatus.RUNNING;
refundStatus=ObjectUtils.equals(PayRefundStatus.SUCCESS.getCode(), orderRefundResponse.getData().getRefundStatus())?PayRefundStatus.SUCCESS:PayRefundStatus.FAIL;
return handlePayRefundResponse(refundStatus,orderRefundRequest.getRefundId());
}
......
......@@ -15,8 +15,13 @@ import cn.freemud.management.thirdparty.CustomerMcCafeClient;
import cn.freemud.management.thirdparty.DeliveryMCCafeClient;
import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto;
import com.freemud.application.sdk.api.ordercenter.enums.AbnormalStateEnum;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.SdkUpdateAbnormalState;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderCostResp;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.sdk.api.assortment.message.enums.OrderType;
import com.freemud.sdk.api.assortment.order.enums.PayRefundStatus;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
......@@ -58,7 +63,7 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
@Resource
private DeliveryMCCafeClient deliveryMCCafeClient;
@Resource
private CustomerMcCafeClient customerMcCafeClient;
private OrderSdkService orderSdkService;
@Value("${mccafe.partner.id}")
private String macCafePartnerId;
......@@ -124,10 +129,21 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
}else {
//支付退款
PayRefundResponse refundResponse = paymentHandle.mcCafeRefund(orderManagerRequest, orderBean);
if(refundResponse.getPayRefundStatus().getCode().equals(PayRefundStatus.SUCCESS.getCode())) {
//订单拒单
saasOrderHandle.mcCafeOrderReject(orderManagerRequest, refundResponse, orderBean);
//冲正库存
stockHandle.revert(orderManagerRequest, orderBean);
} else {
SdkUpdateAbnormalState sdkUpdateAbnormalState = new SdkUpdateAbnormalState();
sdkUpdateAbnormalState.setOrderCode(request.getOrderId());
sdkUpdateAbnormalState.setPartnerId(request.getPartnerId());
sdkUpdateAbnormalState.setAbnormalState(AbnormalStateEnum.ABNORMAL.getCode());
sdkUpdateAbnormalState.setAbnormalDesc("支付退款失败,订单入机失败回调异常");
sdkUpdateAbnormalState.setOrderClient(OrderClientType.SAAS.getIndex());
sdkUpdateAbnormalState.setOperator(request.getOperator());
orderSdkService.updateAbnormalState(sdkUpdateAbnormalState);
}
}
return ResponseUtil.success();
}
......@@ -186,11 +202,22 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
@Override
public BaseResponse<OrderManagerResponse> orderAgreeRefund(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//支付退款
PayRefundResponse refund = paymentHandle.mcCafeRefund(request, orderBean);
PayRefundResponse refundResponse = paymentHandle.mcCafeRefund(request, orderBean);
if(refundResponse.getPayRefundStatus().getCode().equals(PayRefundStatus.SUCCESS.getCode())) {
//订单拒单
saasOrderHandle.mcCafeRefundAgree(request,refund, orderBean);
saasOrderHandle.mcCafeRefundAgree(request, refundResponse, orderBean);
//冲正库存
stockHandle.revert(request, orderBean);
} else {
SdkUpdateAbnormalState sdkUpdateAbnormalState = new SdkUpdateAbnormalState();
sdkUpdateAbnormalState.setOrderCode(request.getOrderId());
sdkUpdateAbnormalState.setPartnerId(request.getPartnerId());
sdkUpdateAbnormalState.setAbnormalState(AbnormalStateEnum.ABNORMAL.getCode());
sdkUpdateAbnormalState.setAbnormalDesc("支付退款失败,订单入机失败回调异常");
sdkUpdateAbnormalState.setOrderClient(OrderClientType.SAAS.getIndex());
sdkUpdateAbnormalState.setOperator(request.getOperator());
orderSdkService.updateAbnormalState(sdkUpdateAbnormalState);
}
return ResponseUtil.success();
}
......@@ -215,11 +242,22 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
@Override
public BaseResponse<OrderManagerResponse> orderCancel(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//支付退款
PayRefundResponse refund = paymentHandle.mcCafeRefund(request, orderBean);
PayRefundResponse refundResponse = paymentHandle.mcCafeRefund(request, orderBean);
if(refundResponse.getPayRefundStatus().getCode().equals(PayRefundStatus.SUCCESS.getCode())) {
//订单拒单
saasOrderHandle.orderCancel(request,refund, orderBean);
saasOrderHandle.orderCancel(request, refundResponse, orderBean);
//冲正库存
stockHandle.revert(request, orderBean);
} else {
SdkUpdateAbnormalState sdkUpdateAbnormalState = new SdkUpdateAbnormalState();
sdkUpdateAbnormalState.setOrderCode(request.getOrderId());
sdkUpdateAbnormalState.setPartnerId(request.getPartnerId());
sdkUpdateAbnormalState.setAbnormalState(AbnormalStateEnum.ABNORMAL.getCode());
sdkUpdateAbnormalState.setAbnormalDesc("支付退款失败,订单入机失败回调异常");
sdkUpdateAbnormalState.setOrderClient(OrderClientType.SAAS.getIndex());
sdkUpdateAbnormalState.setOperator(request.getOperator());
orderSdkService.updateAbnormalState(sdkUpdateAbnormalState);
}
return ResponseUtil.success();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment