Commit c0ebacdf by 周晓航

final.拦截退款失败,逻辑不往下走

parent 4c8ad19e
...@@ -376,25 +376,26 @@ public class PaymentHandle { ...@@ -376,25 +376,26 @@ public class PaymentHandle {
if (multiOrderRefundResponse == null || multiOrderRefundResponse.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.ORDER_PAY_RESPONSE_SUCCESS.equals(multiOrderRefundResponse.getCode())) { if (multiOrderRefundResponse == null || multiOrderRefundResponse.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.ORDER_PAY_RESPONSE_SUCCESS.equals(multiOrderRefundResponse.getCode())) {
// fisherman 退款异常 也当做 退款中处理 // fisherman 退款异常 也当做 退款中处理
refundStatus = PayRefundStatus.RUNNING; refundStatus = PayRefundStatus.RUNNING;
} }else {
List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().refundPlatformResponseList; List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().refundPlatformResponseList;
if (null != refundPlatformResponseList && refundPlatformResponseList.size() > 0) { if (null != refundPlatformResponseList && refundPlatformResponseList.size() > 0) {
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()
.filter(s -> s.getResultCode().compareTo(MultiOrderRefundResponse.RefundPlatformResponse.REFUNDED_RESULTCODE) != 0
&& s.getResultCode().compareTo(MultiOrderRefundResponse.RefundPlatformResponse.REFUND_SUCCESS) != 0)
.count();
if (refundError > 0L) {
refundStatus = PayRefundStatus.FAIL;
} }
// 退款中 if (CollectionUtils.isNotEmpty(refundPlatformResponseList)) {
long refunded = 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
.count(); && s.getResultCode().compareTo(MultiOrderRefundResponse.RefundPlatformResponse.REFUND_SUCCESS) != 0)
if (refunded > 0L) { .count();
refundStatus = PayRefundStatus.RUNNING; if (refundError > 0L) {
refundStatus = PayRefundStatus.FAIL;
}
// 退款中
long refunded = refundPlatformResponseList.stream()
.filter(s -> s.getResultCode().compareTo(MultiOrderRefundResponse.RefundPlatformResponse.REFUNDED_RESULTCODE) == 0)
.count();
if (refunded > 0L) {
refundStatus = PayRefundStatus.RUNNING;
}
} }
} }
return handlePayRefundResponse(refundStatus, multiOrderRefundRequest.getRefundTradeNo()); return handlePayRefundResponse(refundStatus, multiOrderRefundRequest.getRefundTradeNo());
......
...@@ -248,8 +248,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -248,8 +248,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.COMPATIBILITY_STATUS.getCode()) == 0) { if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.COMPATIBILITY_STATUS.getCode()) == 0) {
return ResponseUtil.error(refundResponse.getResult()); return ResponseUtil.error(refundResponse.getResult());
} }
// fisherman --> 退款中的状态 阻止后续流程 等待支付回调 // fisherman --> 退款中的状态 阻止后续流程 等待支付回调 不是退款成功 都终止下面的退款流程
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.RUNNING.getCode()) == 0) { if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.SUCCESS.getCode()) != 0) {
return ResponseUtil.error(ResponseResult.REFUND_FAIL_WAIT_CALLBACK); return ResponseUtil.error(ResponseResult.REFUND_FAIL_WAIT_CALLBACK);
} }
......
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