Commit 50c32a8f by 周晓航

优化 回调过慢导致订单优先取消, 订单金额未退回的情况

parent 656dd94d
......@@ -18,7 +18,6 @@ import cn.freemud.entities.vo.order.PaymentConfigVo;
import cn.freemud.entities.vo.order.PlugInParameter;
import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo;
import cn.freemud.management.service.handle.SaasOrderHandle;
import cn.freemud.management.thirdparty.OrderCallbackClient;
import cn.freemud.manager.OpenPlatformOrderConfigManager;
......@@ -327,8 +326,9 @@ public class OrderAdapterServiceImpl {
return orderAdapter.sendPaySuccessNoticeMessage();
}
Integer client = Integer.parseInt(orderBean.getOrderClient());
//若是app订单超时回调了 订单已取消则做退款处理
if (NewOrderStatus.CLOSED.getIndex().equals(orderBean.getStatusV2()) && Arrays.asList(autoRefundClient.split(",")).contains(client.toString())
//若是订单超时回调了 订单已取消则做退款处理
if (NewOrderStatus.CLOSED.getIndex().equals(orderBean.getStatusV2())
&& Arrays.asList(autoRefundClient.split(",")).contains(client.toString())
&& Arrays.asList(autoRefundPartnerId.split(",")).contains(orderBean.getCompanyId())) {
orderServiceImpl.timeOutRefund(orderBean);
return orderAdapter.sendPaySuccessNoticeMessage();
......
......@@ -2811,26 +2811,23 @@ public class OrderServiceImpl implements Orderservice {
if (abState.equals(orderBean.getAbnormalState())) {
return;
}
com.freemud.application.sdk.api.base.BaseResponse<OrderRefundResponse> response = null;
Long refundId = System.currentTimeMillis();
OrderExtInfoDto orderExtInfoDTO = gson.fromJson(orderBean.getExtInfo(), OrderExtInfoDto.class);
if (orderExtInfoDTO == null || StringUtils.isBlank(orderExtInfoDTO.getFmId())) {
return;
}
Integer state = PayRefundStatus.SUCCESS.getCode();
orderBean.setPayVoucher(orderExtInfoDTO.getFmId());
OrderManagerRequest request = new OrderManagerRequest();
request.setReason("订单已关闭,支付未及时回调");
Integer state = com.freemud.sdk.api.assortment.order.enums.PayRefundStatus.SUCCESS.getCode();
PayRefundResponse commonPayRefundResponse = paymentHandle.getCommonPayRefundResponse(request, orderBean);
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus payRefundStatus = commonPayRefundResponse.getPayRefundStatus();
SdkUpdateAbnormalState sdkUpdateAbnormalState = new SdkUpdateAbnormalState();
String desc = "支付未及时回调";
PayRefundRequestDto orderPayRefundRequest = orderAdapter.getOrderPayRefundRequest(orderBean, refundId, orderBean.getOid());
response = payServiceImpl.orderRefund(orderPayRefundRequest);
if (response != null && noPay.equals(response.getCode())) {
return;
}
if (response != null || state.equals(response.getData().getRefundStatus())) {
sdkUpdateAbnormalState.setAbnormalDesc(desc + ",退款成功");
} else {
sdkUpdateAbnormalState.setAbnormalDesc(desc + ",退款失败");
switch (payRefundStatus){
case SUCCESS:
sdkUpdateAbnormalState.setAbnormalDesc(desc + ",退款成功");
break;
case FAIL:
sdkUpdateAbnormalState.setAbnormalDesc(desc + ",退款失败");
break;
default:
sdkUpdateAbnormalState.setAbnormalDesc(desc + ",等待支付回调中");
}
sdkUpdateAbnormalState.setPartnerId(orderBean.getCompanyId());
sdkUpdateAbnormalState.setAbnormalState(4);
......
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