Parcourir la source

Merge branch 'dev/2024/0703/update-app-Y' of Harper/feifan-backend-zx-app into master

新增支付通道
Yangzw il y a 8 mois
Parent
commit
07093c625e

+ 3 - 0
feifan-framework/feifan-spring-boot-starter-biz-pay/src/main/java/cn/newfeifan/mall/framework/pay/core/client/impl/PayClientFactoryImpl.java

@@ -52,6 +52,9 @@ public class PayClientFactoryImpl implements PayClientFactory {
         clientClass.put(ALIPAY_BAR, AlipayBarPayClient.class);
         // Mock 支付客户端
         clientClass.put(MOCK, MockPayClient.class);
+
+        //富友支付
+        clientClass.put(JSAPI, WxPubPayClient.class);
     }
 
     @Override

+ 3 - 1
feifan-framework/feifan-spring-boot-starter-biz-pay/src/main/java/cn/newfeifan/mall/framework/pay/core/enums/channel/PayChannelEnum.java

@@ -30,7 +30,9 @@ public enum PayChannelEnum {
     ALIPAY_BAR("alipay_bar", "支付宝条码支付", AlipayPayClientConfig.class),
     MOCK("mock", "模拟支付", NonePayClientConfig.class),
 
-    WALLET("wallet", "钱包支付", NonePayClientConfig.class);
+    WALLET("wallet", "钱包支付", NonePayClientConfig.class),
+
+    JSAPI("JSAPI","富友微信公众号支付", NonePayClientConfig.class);
 
     /**
      * 编码

+ 8 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/app/order/AppTradeOrderController.java

@@ -102,6 +102,14 @@ public class AppTradeOrderController {
         return success;
     }
 
+    @GetMapping("/getPayOrderByStatus2")
+    @Operation(summary = "获得支付订单2")
+    @Parameter(name = "id", description = "支付订单编号", required = true, example = "1024")
+    public CommonResult<PayOrderRespVO> getPayOrderByStatus2(@RequestParam("id") Long id) {
+        log.info("getPayOrderByStatus:=========id:{}",id);
+        return null;
+    }
+
 
 
     /**

+ 2 - 0
feifan-module-pay/feifan-module-pay-api/src/main/java/cn/newfeifan/mall/module/pay/enums/DictTypeConstants.java

@@ -23,6 +23,8 @@ public interface DictTypeConstants {
 
     public static final String FUYOU_TRADE_ORDER_NO_PREFIX = "16103-";
 
+    String ORDER_NO_PREFIX = "P";
+
 
     public static final String TRADE_NO = "trade_no:";
 

+ 7 - 3
feifan-module-pay/feifan-module-pay-biz/src/main/java/cn/newfeifan/mall/module/pay/service/fuyouorder/FiYouPayOrderServiceImpl.java

@@ -7,6 +7,7 @@ import cn.newfeifan.mall.module.pay.dal.dataobject.channel.PayChannelDO;
 import cn.newfeifan.mall.module.pay.dal.dataobject.order.PayOrderDO;
 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.enums.order.PayOrderStatusEnum;
 import cn.newfeifan.mall.module.pay.fuiou.reqvo.SubmitOrderRequestVO;
 import cn.newfeifan.mall.module.pay.fuiou.respVO.FuYouPayOrderSubmitRespVO;
 import cn.newfeifan.mall.module.pay.fuiou.respVO.FuYouPaymentResponseVO;
@@ -66,18 +67,21 @@ public class FiYouPayOrderServiceImpl implements FuYouPayOrderService {
 
         // 1.1 获得 PayOrderDO ,并校验其是否存在
         PayOrderDO payOrder = payOrderService.validateOrderCanSubmit(requestVO.getId());
-        payOrder.setPayOrderNo(generate());
+        payOrder.setPayOrderNo(generate(FUYOU_TRADE_ORDER_NO_PREFIX));
         payOrderService.updatePayOrder(payOrder);
 
         // 1.32 校验支付渠道是否有效
         PayChannelDO channel = validateChannelCanSubmit(payOrder.getAppId(), requestVO.getChannelCode());
 
         // 2. 插入 PayOrderExtensionDO
+        String no = generate(ORDER_NO_PREFIX);
         PayOrderExtensionDO orderExtension = PayOrderExtensionDO.builder()
                 .userIp(getClientIP())
                 .orderId(payOrder.getId())
                 .channelId(channel.getId())
                 .channelCode(channel.getCode())
+                .no(no)
+                .status(PayOrderStatusEnum.WAITING.getStatus())
                 .build();
         orderExtensionMapper.insert(orderExtension);
 
@@ -151,9 +155,9 @@ public class FiYouPayOrderServiceImpl implements FuYouPayOrderService {
         return channel;
     }
 
-    private String generate() {
+    private String generate(String prefix) {
         // 递增序号
-        String noPrefix = cn.newfeifan.mall.module.pay.enums.DictTypeConstants.FUYOU_TRADE_ORDER_NO_PREFIX + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_PATTERN);
+        String noPrefix = prefix + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_PATTERN);
         String key = TRADE_NO + noPrefix;
         Long no = stringRedisTemplate.opsForValue().increment(key);
         // 设置过期时间