Commit c3a9cdde by 周晓航

Merge branch 'feature/zxh/重新对接支付退款响应-20220824'

parents a93a1072 5261c948
...@@ -14,7 +14,6 @@ import cn.freemud.management.thirdparty.OMSPaymentClient; ...@@ -14,7 +14,6 @@ import cn.freemud.management.thirdparty.OMSPaymentClient;
import cn.freemud.management.util.RedisUtil; import cn.freemud.management.util.RedisUtil;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformIappWxappStore;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformIappWxappStoreManager; import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformIappWxappStoreManager;
import com.freemud.application.sdk.api.base.BaseResponse; import com.freemud.application.sdk.api.base.BaseResponse;
import com.freemud.application.sdk.api.log.ErrorLog; import com.freemud.application.sdk.api.log.ErrorLog;
...@@ -159,17 +158,16 @@ public class PaymentHandle { ...@@ -159,17 +158,16 @@ public class PaymentHandle {
MultiOrderRefundRequest multiOrderRefundRequest = paymentSdkAdapter.getMultiOrderPayRefundRequest(orderBean, getRefundAmount(orderBean)); MultiOrderRefundRequest multiOrderRefundRequest = paymentSdkAdapter.getMultiOrderPayRefundRequest(orderBean, getRefundAmount(orderBean));
MultiOrderRefundResponse multiOrderRefundResponse = mulitiPaymentClient.paymentApplicationRefund(multiOrderRefundRequest, orderBean.getCompanyId()); MultiOrderRefundResponse multiOrderRefundResponse = mulitiPaymentClient.paymentApplicationRefund(multiOrderRefundRequest, orderBean.getCompanyId());
String message = ""; String message = "";
if (multiOrderRefundResponse == null if (Objects.isNull(multiOrderRefundResponse) || multiOrderRefundResponse.getCode() != 200) {
|| multiOrderRefundResponse.getData() == null refundStatus = PayRefundStatus.FAIL;
|| !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.ORDER_PAY_RESPONSE_SUCCESS.equals(multiOrderRefundResponse.getCode())) {
// fisherman 退款异常 也当做 退款中处理
refundStatus = PayRefundStatus.RUNNING;
} else { } else {
List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().refundPlatformResponseList; MultiOrderRefundResponse.RefundPlatform data = multiOrderRefundResponse.getData();
if (null != refundPlatformResponseList && refundPlatformResponseList.size() > 0) { if (Objects.isNull(data) || CollectionUtils.isEmpty(data.refundPlatformResponseList)) {
refundStatus = PayRefundStatus.FAIL;
} else {
List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = data.refundPlatformResponseList;
redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(refundPlatformResponseList.get(0).getTransId()), orderBean.getOid(), 1L, TimeUnit.DAYS); redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(refundPlatformResponseList.get(0).getTransId()), orderBean.getOid(), 1L, TimeUnit.DAYS);
}
if (CollectionUtils.isNotEmpty(refundPlatformResponseList)) {
long refundError = refundPlatformResponseList.stream() long refundError = refundPlatformResponseList.stream()
.filter(s -> s.getResultCode().compareTo(MultiOrderRefundResponse.RefundPlatformResponse.REFUNDED_RESULTCODE) != 0 .filter(s -> s.getResultCode().compareTo(MultiOrderRefundResponse.RefundPlatformResponse.REFUNDED_RESULTCODE) != 0
&& s.getResultCode().compareTo(MultiOrderRefundResponse.RefundPlatformResponse.REFUND_SUCCESS) != 0) && s.getResultCode().compareTo(MultiOrderRefundResponse.RefundPlatformResponse.REFUND_SUCCESS) != 0)
...@@ -191,6 +189,7 @@ public class PaymentHandle { ...@@ -191,6 +189,7 @@ public class PaymentHandle {
} }
} }
} }
PayRefundResponse payRefundResponse = handlePayRefundResponse(refundStatus, multiOrderRefundRequest.getRefundTradeNo()); PayRefundResponse payRefundResponse = handlePayRefundResponse(refundStatus, multiOrderRefundRequest.getRefundTradeNo());
if (StringUtils.isNotEmpty(message)) { if (StringUtils.isNotEmpty(message)) {
payRefundResponse.setMessage(message); payRefundResponse.setMessage(message);
...@@ -211,7 +210,7 @@ public class PaymentHandle { ...@@ -211,7 +210,7 @@ public class PaymentHandle {
AgentPayRefundReq req = paymentSdkAdapter.getAgentPayefundReq(orderBean, this.getRefundAmount(orderBean)); AgentPayRefundReq req = paymentSdkAdapter.getAgentPayefundReq(orderBean, this.getRefundAmount(orderBean));
AgentPayRefundResp resp = mulitiPaymentClient.agentPayRefund(req); AgentPayRefundResp resp = mulitiPaymentClient.agentPayRefund(req);
if (!resp.isOk()) { if (!resp.isOk()) {
refundStatus = PayRefundStatus.RUNNING; refundStatus = PayRefundStatus.FAIL;
} }
AgentPayRefundResp.DataDTO data = resp.getData(); AgentPayRefundResp.DataDTO data = resp.getData();
if (Objects.nonNull(data)) { if (Objects.nonNull(data)) {
......
...@@ -473,12 +473,6 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -473,12 +473,6 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
PayRefundStatus payRefundStatus = PayRefundStatus.SUCCESS; PayRefundStatus payRefundStatus = PayRefundStatus.SUCCESS;
if (!Objects.equals(refundStatus, "100")) { if (!Objects.equals(refundStatus, "100")) {
payRefundStatus = PayRefundStatus.FAIL; payRefundStatus = PayRefundStatus.FAIL;
// 告知基础服务 退款失败
AfterSalesRefundFailReq refundFailReq = this.getAfterSalesRefundFailReq(orderBean,
"refundSuccessCallback",
AfterSalesApplyClientEnum.STATE_6.getIndex(),
refundResponse.getMessage());
orderSdkService.refundFail(refundFailReq, LogThreadLocal.getTrackingNo());
} }
refundResponse.setPayRefundStatus(payRefundStatus); refundResponse.setPayRefundStatus(payRefundStatus);
refundResponse.setRefundId(request.getRefundId()); refundResponse.setRefundId(request.getRefundId());
...@@ -486,7 +480,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -486,7 +480,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
OrderManagerRequest omRequest = new OrderManagerRequest(); OrderManagerRequest omRequest = new OrderManagerRequest();
omRequest.setReason(reason); omRequest.setReason(reason);
omRequest.setOperator("支付退款回调系统补偿"); omRequest.setOperator("支付退款回调系统补偿");
saasOrderHandle.refundAgree(omRequest, refundResponse, orderBean); saasOrderHandle.refundAgreeByCallback(omRequest, refundResponse, orderBean);
// 退款失败 不应该走 冲正逻辑 // 退款失败 不应该走 冲正逻辑
if (payRefundStatus.getCode().compareTo(PayRefundStatus.SUCCESS.getCode()) != 0) { if (payRefundStatus.getCode().compareTo(PayRefundStatus.SUCCESS.getCode()) != 0) {
......
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