Commit 415d1ab6 by zhiheng.zhang

退款返回transId映射orderCode

parent 96767b5f
......@@ -627,6 +627,11 @@ public class OrderServiceImpl implements Orderservice {
@Override
public String refundNotifyCallback(RefundNotifyCallbackRequestVo requestVo) {
//混合支付需要从换从中获取订单号码,正常支付TransId = orderId
String orderId = redisCache.getValue(RedisUtil.getPaymentTransIdOrderKey(requestVo.getTransId()));
if(StringUtils.isNotEmpty(orderId)){
requestVo.setTransId(orderId);
}
String trackingNo = LogTreadLocal.getTrackingNo();
if (StringUtils.isEmpty(requestVo.getTransId())) {
//订单号不能为空
......@@ -1674,7 +1679,7 @@ public class OrderServiceImpl implements Orderservice {
List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().getRefundPlatformResponseList();
refundPlatformResponseList = refundPlatformResponseList.stream().filter(m -> !m.getEbCode().equalsIgnoreCase("4")).collect(Collectors.toList());
if(null != refundPlatformResponseList && refundPlatformResponseList.size()>0){
redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(orderBean.getOid()),refundPlatformResponseList.get(0).getTransId(),1L,TimeUnit.DAYS);
redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(refundPlatformResponseList.get(0).getTransId()),orderBean.getOid(),1L,TimeUnit.DAYS);
}
//获取支付返回退款状态
state = PayRefundStatus.SUCCESS.getCode();
......
......@@ -6,7 +6,9 @@ import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.thirdparty.MulitiPaymentClient;
import cn.freemud.management.util.RedisUtil;
import cn.freemud.management.util.ResponseUtil;
import cn.freemud.redis.RedisCache;
import com.freemud.application.sdk.api.base.BaseResponse;
import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp;
......@@ -25,6 +27,8 @@ import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* All rights Reserved, Designed By www.freemud.cn
......@@ -51,7 +55,8 @@ public class PaymentHandle {
private OrderSdkService orderSdkService;
@Autowired
private MulitiPaymentClient mulitiPaymentClient;
@Autowired
private RedisCache redisCache;
/**
* 退款
* @param request
......@@ -145,6 +150,12 @@ public class PaymentHandle {
if (multiOrderRefundResponse == null || multiOrderRefundResponse.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.ORDER_PAY_RESPONSE_SUCCESS.equals(multiOrderRefundResponse.getCode())) {
throw new OrderServiceException(ResponseResult.REFUND_EXCEPTION);
}
List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().getRefundPlatformResponseList();
refundPlatformResponseList = refundPlatformResponseList.stream().filter(m -> !m.getEbCode().equalsIgnoreCase("4")).collect(Collectors.toList());
if(null != refundPlatformResponseList && refundPlatformResponseList.size()>0){
redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(refundPlatformResponseList.get(0).getTransId()),orderBean.getOid(),1L,TimeUnit.DAYS);
}
return handlePayRefundResponse(refundStatus,multiOrderRefundRequest.getRefundTradeNo());
}
}
......@@ -165,7 +165,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
//支付退款
PayRefundResponse refundResponse = new PayRefundResponse();
try {
if(orderBean.getPayChannelType() == "4"){
if(orderBean.getPayChannelType() != "4"){
refundResponse = paymentHandle.refund(request, orderBean);
}else{
refundResponse = paymentHandle.multiRefund(orderBean);
......
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