Explorar el Código

修复支付订单无法重复调用支付

Yangzw hace 8 meses
padre
commit
5a54598d92

+ 9 - 0
feifan-module-pay/feifan-module-pay-api/src/main/java/cn/newfeifan/mall/module/pay/enums/fuyouorder/FuYouPayOrderTypeEnum.java

@@ -28,4 +28,13 @@ public enum FuYouPayOrderTypeEnum {
     private final String code;
 
     private final String describe;
+
+    public static String getCode(String code){
+        for (FuYouPayOrderTypeEnum type : FuYouPayOrderTypeEnum.values()) {
+            if(type.getCode().equals(code)){
+                return type.getCode();
+            }
+        }
+        return null;
+    }
 }

+ 7 - 0
feifan-module-pay/feifan-module-pay-biz/src/main/java/cn/newfeifan/mall/module/pay/service/order/PayOrderServiceImpl.java

@@ -25,6 +25,7 @@ import cn.newfeifan.mall.module.pay.dal.dataobject.order.PayOrderExtensionDO;
 import cn.newfeifan.mall.module.pay.dal.mysql.order.PayOrderExtensionMapper;
 import cn.newfeifan.mall.module.pay.dal.mysql.order.PayOrderMapper;
 import cn.newfeifan.mall.module.pay.dal.redis.no.PayNoRedisDAO;
+import cn.newfeifan.mall.module.pay.enums.fuyouorder.FuYouPayOrderTypeEnum;
 import cn.newfeifan.mall.module.pay.enums.notify.PayNotifyTypeEnum;
 import cn.newfeifan.mall.module.pay.enums.order.PayOrderStatusEnum;
 import cn.newfeifan.mall.module.pay.framework.pay.config.PayProperties;
@@ -261,6 +262,12 @@ public class PayOrderServiceImpl implements PayOrderService {
                         id, orderExtension.getId());
                 throw exception(PAY_ORDER_EXTENSION_IS_PAID);
             }
+
+            // 如果支付渠道是从富友对接的那就不用往下继续了
+            if(FuYouPayOrderTypeEnum.getCode(orderExtension.getChannelCode()) != null){
+                return;
+            }
+
             // 情况二:调用三方接口,查询支付单状态,是不是已支付
             PayClient payClient = channelService.getPayClient(orderExtension.getChannelId());
             if (payClient == null) {