Explorar el Código

fix:“优化长隆支付退款回调重复问题“

soobin hace 1 año
padre
commit
e0d285e74a

+ 1 - 1
src/main/java/com/szwl/controller/TWechatPayConfigController.java

@@ -510,7 +510,7 @@ public class TWechatPayConfigController {
     public Object refundNotify(HttpServletRequest request, HttpServletResponse response){
 //        String result = orderService.wechatRefund(request,response);
         String result = wechatPayConfigService.refundNotify(request,response);
-        return R.ok(result);
+        return result;
     }
 }
 

+ 4 - 1
src/main/java/com/szwl/service/impl/TWechatPayConfigServiceImpl.java

@@ -564,7 +564,7 @@ public class TWechatPayConfigServiceImpl extends ServiceImpl<TWechatPayConfigMap
                 processRefund(bodyMap);
                 //成功应答
                 response.setStatus(HttpStatus.SC_OK);
-//                hashMap.put("code", "SUCCESS");
+                hashMap.put("code", "SUCCESS");
             } else {
                 response.setStatus(HttpStatus.SC_BAD_GATEWAY);
                 hashMap.put("code", "FAIL");
@@ -967,6 +967,9 @@ public class TWechatPayConfigServiceImpl extends ServiceImpl<TWechatPayConfigMap
             LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
             query.eq(TOrder::getSn,sn);
             TOrder order = orderService.getOne(query);
+            if (StringUtils.isNotEmpty(order.getRefundTrxNo()) && order.getRefundTrxNo().equals(refundNo)) {
+                return;
+            }
             // 已退款
             if(order.getRefundQuantity() < order.getProductNumber()) {
                 order.setStatus(1);