ソースを参照

兼容商户端小程序获取支付参数

codingliang 7 ヶ月 前
コミット
71212e29a3

+ 20 - 10
src/main/java/com/sqx/modules/pay/service/impl/NewPayServiceImpl.java

@@ -86,7 +86,7 @@ public class NewPayServiceImpl implements NewPayService {
             return JSONUtil.toBean(payDetails.getRemark(), WechatTransactionsParamVO.class);
         }
 
-        WechatPayConfig wechatMchConfig = getWechatMchConfig();
+        WechatPayConfig wechatMchConfig = getWechatMchConfig(dto);
         RhtQrcodePayApi qrcodePay = new RhtQrcodePayApi(wechatMchConfig.getMchId(), wechatMchConfig.getMchKey(), RHT_PAY_BASE_URL);
         QrcodeOpenPayRequestBean openRequest = getQrcodeOpenPayRequestBean(dto, wechatMchConfig);
 
@@ -137,7 +137,7 @@ public class NewPayServiceImpl implements NewPayService {
 
     @Override
     public boolean wechatRefund(String orderNo) {
-        WechatPayConfig wechatMchConfig = getWechatMchConfig();
+        WechatPayConfig wechatMchConfig = getWechatMchConfig(null);
         RhtQrcodePayApi qrcodePay = new RhtQrcodePayApi(wechatMchConfig.getMchId(), wechatMchConfig.getMchKey(), RHT_PAY_BASE_URL);
         QrcodeRefundRequestBean request = new QrcodeRefundRequestBean();
         // 商户流水号
@@ -162,7 +162,7 @@ public class NewPayServiceImpl implements NewPayService {
 
     @Override
     public void wechatSplitBill(String traceNo, String inMchId, BigDecimal amount) {
-        WechatPayConfig wechatMchConfig = getWechatMchConfig();
+        WechatPayConfig wechatMchConfig = getWechatMchConfig(null);
         RhtSplitApi splitApi = new RhtSplitApi(wechatMchConfig.getMchId(), wechatMchConfig.getMchKey(), RHT_PAY_BASE_URL);
 
         String outAmount = amount.toString();
@@ -304,12 +304,22 @@ public class NewPayServiceImpl implements NewPayService {
      * 获取微信支付商户配置
      * @return 商户配置
      */
-    private WechatPayConfig getWechatMchConfig() {
-        return WechatPayConfig.builder()
-                .appId(commonInfoService.findOne(45).getValue())
-                .mchId(commonInfoService.findOne(434).getValue())
+    private WechatPayConfig getWechatMchConfig(GetPayParamDTO dto) {
+        WechatPayConfig.WechatPayConfigBuilder builder = WechatPayConfig.builder();
+
+        // 保证金缴纳场景,使用商户端小程序appId
+        if (ObjectUtil.isNotNull(dto) && PaySceneEnum.BOND_PAY == dto.getPaySceneEnum()) {
+            builder.appId(commonInfoService.findOne(305).getValue());
+        }
+        // 其他支付场景,使用客户端appId
+        else {
+            builder.appId(commonInfoService.findOne(45).getValue());
+        }
+
+        builder.mchId(commonInfoService.findOne(434).getValue())
                 .mchKey(commonInfoService.findOne(435).getValue())
-                .h5Url(commonInfoService.findOne(19).getValue())
-                .build();
+                .h5Url(commonInfoService.findOne(19).getValue());
+
+        return builder.build();
     }
-}
+}