Explorar o código

feat : 支付管理调整

bilingfeng %!s(int64=2) %!d(string=hai) anos
pai
achega
29c3c5be63

+ 5 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/bo/WxPayConfigBO.java

@@ -29,6 +29,11 @@ public class WxPayConfigBO {
      */
     private String mchId;
 
+    /**
+     * 商户名称
+     */
+    private String machName;
+
     /**
      * 商户api密钥
      */

+ 42 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/dto/PayBoxDTO.java

@@ -0,0 +1,42 @@
+package com.zanxiang.sdk.domain.dto;
+
+import lombok.Data;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-01-15
+ * @description : 支付盒子
+ */
+@Data
+public class PayBoxDTO {
+
+    /**
+     * 主键id
+     */
+    private Integer id;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 应用id
+     */
+    private String appId;
+
+    /**
+     * 商户号(多个逗号分割)
+     */
+    private String merchantIds;
+
+    /**
+     * 盒子类型 1、小程序 2、微信公众号
+     */
+    private Integer type;
+
+    /**
+     * 商城小程序类型 1、商城百货 2、商城美妆 3、商城内容
+     */
+    private Integer storeType;
+}

+ 48 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/dto/PayMerchantDTO.java

@@ -2,6 +2,9 @@ package com.zanxiang.sdk.domain.dto;
 
 import lombok.Data;
 
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
 /**
  * @author : lingfeng
  * @time : 2023-01-12
@@ -39,4 +42,49 @@ public class PayMerchantDTO {
      * 支付配置
      */
     private String payConfig;
+
+    /**
+     * 最大支付额度锁 0 正常 1 锁定
+     */
+    private Integer maxPayLock;
+
+    /**
+     * 最大支付额度
+     */
+    private BigDecimal maxPayAmount;
+
+    /**
+     * 总支付金额
+     */
+    private BigDecimal totalPayAmount;
+
+    /**
+     * 月已用支付额度
+     */
+    private BigDecimal mouthPayAmount;
+
+    /**
+     * 月更新日期
+     */
+    private LocalDateTime mouthUpdateDate;
+
+    /**
+     * 周已用额度
+     */
+    private BigDecimal weakerPayAmount;
+
+    /**
+     * 周更新日期
+     */
+    private LocalDateTime weakerUpdateDate;
+
+    /**
+     * 日已用额度
+     */
+    private BigDecimal dayPayAmount;
+
+    /**
+     * 日更新日期
+     */
+    private LocalDateTime dayUpdateDate;
 }

+ 8 - 9
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/GameAppletServiceImpl.java

@@ -10,16 +10,10 @@ import com.zanxiang.module.util.bean.BeanUtil;
 import com.zanxiang.mybatis.entity.GameApplet;
 import com.zanxiang.mybatis.entity.Order;
 import com.zanxiang.mybatis.mapper.GameAppletMapper;
-import com.zanxiang.sdk.domain.dto.AppletMsgDTO;
-import com.zanxiang.sdk.domain.dto.GameAppletDTO;
-import com.zanxiang.sdk.domain.dto.GamePayWayDTO;
-import com.zanxiang.sdk.domain.dto.UserDTO;
+import com.zanxiang.sdk.domain.dto.*;
 import com.zanxiang.sdk.domain.params.UserData;
 import com.zanxiang.sdk.domain.vo.GameAppletVO;
-import com.zanxiang.sdk.service.GameAppletService;
-import com.zanxiang.sdk.service.GamePayWayService;
-import com.zanxiang.sdk.service.OrderService;
-import com.zanxiang.sdk.service.UserService;
+import com.zanxiang.sdk.service.*;
 import com.zanxiang.sdk.service.api.WxApiService;
 import com.zanxiang.sdk.util.SignUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -60,6 +54,9 @@ public class GameAppletServiceImpl extends ServiceImpl<GameAppletMapper, GameApp
     @Autowired
     private GamePayWayService gamePayWayService;
 
+    @Autowired
+    private PayApplicationService payApplicationService;
+
     @Value("${payConfig.wxPay.customH5Url}")
     private String customH5Url;
 
@@ -120,6 +117,8 @@ public class GameAppletServiceImpl extends ServiceImpl<GameAppletMapper, GameApp
     private String sendCustomMessage(GameApplet gameApplet, String openId, Order order) {
         //查询订单支付方式
         GamePayWayDTO gamePayWayDTO = gamePayWayService.getById(order.getGamePayWayId());
+        //查询支付应用信息
+        PayApplicationDTO payApplicationDTO = payApplicationService.getPayApplicationByPayBoxId(gamePayWayDTO.getPayBoxId());
         //客服支付链接显示图片地址
         String thumbUrl = gamePayWayDTO.getThumbUrl();
         //支付配置参数判断
@@ -131,7 +130,7 @@ public class GameAppletServiceImpl extends ServiceImpl<GameAppletMapper, GameApp
         BigDecimal amount = order.getAmount();
         //构造跳转链接url
         URI url = UriComponentsBuilder.fromHttpUrl(this.customH5Url)
-                .queryParam("appId", gamePayWayDTO.getAppId())
+                .queryParam("appId", payApplicationDTO.getAppId())
                 .queryParam("orderId", order.getOrderId())
                 .queryParam("amount", amount)
                 .queryParam("description", "购买" + amount + "元档充值")

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/OrderPayServiceImpl.java

@@ -110,7 +110,7 @@ public class OrderPayServiceImpl implements OrderPayService {
             //查询支付配置
             GamePayWayDTO gamePayWayDTO = gamePayWayService.getGamePayWay(userData.getGameId(), product.getPayWay(), product.getPayDevice());
             //查询支付应用信息
-            PayApplicationDTO payApplicationDTO = payApplicationService.getPayApplication(gamePayWayDTO.getAppId());
+            PayApplicationDTO payApplicationDTO = payApplicationService.getPayApplicationByPayBoxId(gamePayWayDTO.getPayBoxId());
             //构造参数信息
             Map<Object, Object> paramMap = new HashMap<>(4);
             paramMap.put("appId", payApplicationDTO.getAppId());

+ 8 - 4
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/OrderServiceImpl.java

@@ -18,6 +18,7 @@ import com.zanxiang.sdk.listener.OrderPaySuccessEvent;
 import com.zanxiang.sdk.service.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
@@ -100,8 +101,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         }
         //游戏支付配置信息
         GamePayWayDTO gamePayWayDTO = gamePayWayService.getGamePayWay(gameId, payParam.getPayWay(), payParam.getPayDevice());
-        //商户信息 todo : 盒子和小程序查询商户要根据盒子查询
-        PayMerchantDTO payMerchantDTO = payMerchantService.getByMerchantNo(gamePayWayDTO.getMerchantNo());
+        //商户信息
+        PayMerchantDTO payMerchantDTO = null;
+        if (Strings.isNotBlank(gamePayWayDTO.getMerchantNo())) {
+            payMerchantDTO = payMerchantService.getByMerchantNo(gamePayWayDTO.getMerchantNo());
+        }
         //生成订单id
         String orderNum = this.getOrderNum(userData.getUserId());
         //用户已有订单数
@@ -134,8 +138,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 .username(user.getUsername())
                 .regTime(user.getCreateTime())
                 .deviceSystem(userData.getDeviceSystem())
-                .merchantNo(gamePayWayDTO.getMerchantNo())
-                .merchantName(payMerchantDTO.getMerchantName())
+                .merchantNo(payMerchantDTO == null ? null : payMerchantDTO.getMerchantNo())
+                .merchantName(payMerchantDTO == null ? null : payMerchantDTO.getMerchantName())
                 .payWayId(gamePayWayDTO.getPayWayId())
                 .regGameId(user.getGameId())
                 .callBackStatus(CallBackEnum.UN_CALL_BACK.getCallBackStatus())

+ 18 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PayApplicationServiceImpl.java

@@ -14,9 +14,11 @@ import com.zanxiang.mybatis.entity.PayMerchant;
 import com.zanxiang.mybatis.mapper.PayApplicationMapper;
 import com.zanxiang.sdk.constant.WxPayConstants;
 import com.zanxiang.sdk.domain.dto.PayApplicationDTO;
+import com.zanxiang.sdk.domain.dto.PayBoxDTO;
 import com.zanxiang.sdk.domain.dto.PayMerchantDTO;
 import com.zanxiang.sdk.domain.params.MiniAppPayParam;
 import com.zanxiang.sdk.service.PayApplicationService;
+import com.zanxiang.sdk.service.PayBoxService;
 import com.zanxiang.sdk.service.PayMerchantService;
 import com.zanxiang.sdk.service.api.WxApiService;
 import com.zanxiang.sdk.util.HttpUtil;
@@ -57,6 +59,9 @@ public class PayApplicationServiceImpl extends ServiceImpl<PayApplicationMapper,
     @Autowired
     private PayMerchantService payMerchantService;
 
+    @Autowired
+    private PayBoxService payBoxService;
+
     private static final String WX_PAY_JSAPI = "JSAPI";
 
     private static final String SIGN_TYPE = "MD5";
@@ -65,7 +70,7 @@ public class PayApplicationServiceImpl extends ServiceImpl<PayApplicationMapper,
     private String notifyUrl;
 
     @Override
-    public PayApplicationDTO getPayApplication(String appId) {
+    public PayApplicationDTO getPayApplicationByAppId(String appId) {
         PayApplication payApplication = super.getOne(new LambdaQueryWrapper<PayApplication>()
                 .eq(PayApplication::getAppId, appId));
         if (payApplication == null) {
@@ -75,6 +80,18 @@ public class PayApplicationServiceImpl extends ServiceImpl<PayApplicationMapper,
         return BeanUtil.copy(payApplication, PayApplicationDTO.class);
     }
 
+    @Override
+    public PayApplicationDTO getPayApplicationByPayBoxId(Long payBoxId) {
+        PayBoxDTO payBoxDTO = payBoxService.getById(payBoxId);
+        PayApplication payApplication = super.getOne(new LambdaQueryWrapper<PayApplication>()
+                .eq(PayApplication::getAppId, payBoxDTO.getAppId()));
+        if (payApplication == null) {
+            log.error("参数错误, 支付商城小程序信息不存在, payBoxId : {}", payBoxId);
+            throw new BaseException("参数错误, 支付商城小程序信息不存在");
+        }
+        return BeanUtil.copy(payApplication, PayApplicationDTO.class);
+    }
+
     @Override
     public ResultMap appletStorePay(MiniAppPayParam payParam, HttpServletRequest request) {
         //查询商城小程序信息

+ 36 - 4
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PayBoxServiceImpl.java

@@ -2,14 +2,23 @@ package com.zanxiang.sdk.service.Impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.exception.BaseException;
+import com.zanxiang.module.util.bean.BeanUtil;
 import com.zanxiang.mybatis.entity.PayBox;
 import com.zanxiang.mybatis.mapper.PayBoxMapper;
+import com.zanxiang.sdk.domain.dto.PayBoxDTO;
 import com.zanxiang.sdk.domain.dto.PayMerchantDTO;
 import com.zanxiang.sdk.service.PayBoxService;
+import com.zanxiang.sdk.service.PayMerchantService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.logging.log4j.util.Strings;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * 支付盒子 服务实现类
  *
@@ -21,9 +30,10 @@ import org.springframework.stereotype.Service;
 @Service
 public class PayBoxServiceImpl extends ServiceImpl<PayBoxMapper, PayBox> implements PayBoxService {
 
-    /**
-     * 根据盒子id查询商户信息
-     */
+    @Autowired
+    private PayMerchantService payMerchantService;
+
+    @Override
     public PayMerchantDTO getMerchantByBoxId(Long payBoxId) {
         PayBox payBox = super.getById(payBoxId);
         if (payBox == null) {
@@ -31,6 +41,28 @@ public class PayBoxServiceImpl extends ServiceImpl<PayBoxMapper, PayBox> impleme
             throw new BaseException("参数错误, 支付盒子信息不存在");
         }
         //查询盒子绑定的商户
-        return null;
+        String merchantIds = payBox.getMerchantIds();
+        if (Strings.isBlank(merchantIds)) {
+            log.error("数据错误,盒子未绑定商户, payBoxId : {}", payBoxId);
+            throw new BaseException("数据错误,盒子未绑定商户");
+        }
+        String[] merchantIdArray = merchantIds.split(",");
+        List<Long> ids = Arrays.stream(merchantIdArray).map(Long::new).collect(Collectors.toList());
+        //查询商户列表
+        List<PayMerchantDTO> payMerchantDTOList = payMerchantService.getByIds(ids);
+        //当前时间与商户个数取模, 获得随机数
+        int sit = (int) System.currentTimeMillis() % payMerchantDTOList.size();
+        //返回商户信息
+        return payMerchantDTOList.get(sit);
+    }
+
+    @Override
+    public PayBoxDTO getById(Long id) {
+        PayBox payBox = super.getById(id);
+        if (payBox == null) {
+            log.error("参数错误, 盒子信息不存在, id : {}", id);
+            throw new BaseException("参数错误, 盒子信息不存在");
+        }
+        return BeanUtil.copy(payBox, PayBoxDTO.class);
     }
 }

+ 20 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PayMerchantServiceImpl.java

@@ -1,8 +1,10 @@
 package com.zanxiang.sdk.service.Impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.exception.BaseException;
+import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.module.util.bean.BeanUtil;
 import com.zanxiang.mybatis.entity.PayMerchant;
 import com.zanxiang.mybatis.mapper.PayMerchantMapper;
@@ -11,6 +13,8 @@ import com.zanxiang.sdk.service.PayMerchantService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 游戏支付商户配置表 服务实现类
  *
@@ -31,4 +35,20 @@ public class PayMerchantServiceImpl extends ServiceImpl<PayMerchantMapper, PayMe
         }
         return BeanUtil.copy(payMerchant, PayMerchantDTO.class);
     }
+
+    @Override
+    public List<PayMerchantDTO> getByIds(List<Long> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            log.error("参数错误, 商户id列表不存在");
+            throw new BaseException("参数错误, 商户id列表不存在");
+        }
+        List<PayMerchant> payMerchantList = super.list(new LambdaQueryWrapper<PayMerchant>()
+                .in(PayMerchant::getId, ids)
+                .eq(PayMerchant::getMaxPayLock, 0));
+        if (CollectionUtils.isEmpty(payMerchantList)) {
+            log.error("参数错误, 符合条件的商户不存在, ids : {}", ids);
+            throw new BaseException("参数错误, 符合条件的商户不存在");
+        }
+        return BeanUtils.copyList(payMerchantList, PayMerchantDTO.class);
+    }
 }

+ 9 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/PayApplicationService.java

@@ -24,7 +24,15 @@ public interface PayApplicationService extends IService<PayApplication> {
      * @param appId 应用程序id
      * @return {@link PayApplicationDTO}
      */
-    PayApplicationDTO getPayApplication(String appId);
+    PayApplicationDTO getPayApplicationByAppId(String appId);
+
+    /**
+     * 被支付盒子支付应用程序id
+     *
+     * @param payBoxId 盒子支付id
+     * @return {@link PayApplicationDTO}
+     */
+    PayApplicationDTO getPayApplicationByPayBoxId(Long payBoxId);
 
     /**
      * 迷你应用程序支付

+ 18 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/PayBoxService.java

@@ -2,6 +2,8 @@ package com.zanxiang.sdk.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zanxiang.mybatis.entity.PayBox;
+import com.zanxiang.sdk.domain.dto.PayBoxDTO;
+import com.zanxiang.sdk.domain.dto.PayMerchantDTO;
 
 /**
  * 支付盒子 服务类接口
@@ -11,4 +13,20 @@ import com.zanxiang.mybatis.entity.PayBox;
  */
 
 public interface PayBoxService extends IService<PayBox> {
+
+    /**
+     * 根据盒子id查询商户信息
+     *
+     * @param payBoxId 盒子支付id
+     * @return {@link PayMerchantDTO}
+     */
+    PayMerchantDTO getMerchantByBoxId(Long payBoxId);
+
+    /**
+     * 通过id
+     *
+     * @param id id
+     * @return {@link PayBoxDTO}
+     */
+    PayBoxDTO getById(Long id);
 }

+ 10 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/PayMerchantService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.zanxiang.mybatis.entity.PayMerchant;
 import com.zanxiang.sdk.domain.dto.PayMerchantDTO;
 
+import java.util.List;
+
 /**
  * 游戏支付商户配置表
  *
@@ -19,4 +21,12 @@ public interface PayMerchantService extends IService<PayMerchant> {
      * @return {@link PayMerchantDTO}
      */
     PayMerchantDTO getByMerchantNo(String merchantNo);
+
+    /**
+     * 通过id
+     *
+     * @param ids id
+     * @return {@link List}<{@link PayMerchantDTO}>
+     */
+    List<PayMerchantDTO> getByIds(List<Long> ids);
 }

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/AliPayService.java

@@ -268,7 +268,7 @@ public class AliPayService extends PayBaseService {
         //商户信息
         PayMerchantDTO payMerchantDTO = payMerchantService.getByMerchantNo(gamePayWayDTO.getMerchantNo());
         //查询支付应用信息
-        PayApplicationDTO payApplicationDTO = payApplicationService.getPayApplication(gamePayWayDTO.getAppId());
+        PayApplicationDTO payApplicationDTO = payApplicationService.getPayApplicationByAppId(gamePayWayDTO.getAppId());
         //支付参数
         Map<String, String> payConfigMap = JsonUtil.toMap(payMerchantDTO.getPayConfig(), Map.class, String.class);
         //支付宝应用id和应用私钥

+ 38 - 10
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/WxPayService.java

@@ -1,11 +1,14 @@
 package com.zanxiang.sdk.service.pay;
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.zanxiang.common.constant.Constants;
 import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.common.enums.DeleteEnum;
 import com.zanxiang.common.enums.HttpStatusEnum;
+import com.zanxiang.common.enums.PayDeviceEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.module.util.JsonUtil;
+import com.zanxiang.mybatis.entity.Order;
 import com.zanxiang.mybatis.entity.OrderPayParam;
 import com.zanxiang.sdk.constant.WxPayConstants;
 import com.zanxiang.sdk.domain.bo.ProductPayAttachParamBO;
@@ -14,9 +17,7 @@ import com.zanxiang.sdk.domain.bo.WxPayConfigBO;
 import com.zanxiang.sdk.domain.dto.GamePayWayDTO;
 import com.zanxiang.sdk.domain.dto.PayApplicationDTO;
 import com.zanxiang.sdk.domain.dto.PayMerchantDTO;
-import com.zanxiang.sdk.service.OrderPayParamService;
-import com.zanxiang.sdk.service.PayApplicationService;
-import com.zanxiang.sdk.service.PayMerchantService;
+import com.zanxiang.sdk.service.*;
 import com.zanxiang.sdk.service.api.WxApiService;
 import com.zanxiang.sdk.util.HttpUtil;
 import com.zanxiang.sdk.util.WxPayUtil;
@@ -92,6 +93,12 @@ public class WxPayService extends PayBaseService {
     @Autowired
     private PayApplicationService payApplicationService;
 
+    @Autowired
+    private PayBoxService payBoxService;
+
+    @Autowired
+    private OrderService orderService;
+
     @Override
     public ResultMap create(ProductPayParamBO product) {
         this.attach = product.getAttach();
@@ -100,20 +107,31 @@ public class WxPayService extends PayBaseService {
         //支付方式
         int payDevice = product.getPayDevice().intValue();
         //不同的支付途径
+        ResultMap resultMap;
         switch (payDevice) {
             case 1:
                 //PC
-                return this.pcPay(product);
+                resultMap = this.pcPay(product);
+                break;
             case 2:
                 //H5
-                return this.h5Pay(product);
+                resultMap = this.h5Pay(product);
+                break;
             case 4:
             case 6:
                 //小程序
-                return this.miniAppPay(product);
+                resultMap = this.miniAppPay(product);
+                break;
             default:
                 throw new RuntimeException("未知支付方式");
         }
+        //更新订单商户信息
+        orderService.update(new LambdaUpdateWrapper<Order>()
+                .set(Order::getMerchantNo, config.getMchId())
+                .set(Order::getMerchantName, config.getMachName())
+                .eq(Order::getOrderId, product.getOutTradeNo()));
+        //返回支付参数
+        return resultMap;
     }
 
     @Override
@@ -289,15 +307,25 @@ public class WxPayService extends PayBaseService {
     }
 
     private void configInit(GamePayWayDTO gamePayWayDTO) {
-        //todo : 如果是关联了盒子, 则不存在商户id, 得根据盒子查询商户信息
         //商户信息
-        PayMerchantDTO payMerchantDTO = payMerchantService.getByMerchantNo(gamePayWayDTO.getMerchantNo());
-        WxPayConfigBO payConfigBO = JsonUtil.toObj(payMerchantDTO.getPayConfig(), WxPayConfigBO.class);
+        PayMerchantDTO payMerchantDTO;
         //支付应用信息
-        PayApplicationDTO payApplicationDTO = payApplicationService.getPayApplication(gamePayWayDTO.getAppId());
+        PayApplicationDTO payApplicationDTO;
+        //小程序支付和客服支付, 关联了盒子
+        if (Objects.equals(PayDeviceEnum.APPLET_PAY.getPayDeviceId(), gamePayWayDTO.getPayDeviceId())
+                || Objects.equals(PayDeviceEnum.CUSTOM_PAY.getPayDeviceId(), gamePayWayDTO.getPayDeviceId())) {
+            payMerchantDTO = payBoxService.getMerchantByBoxId(gamePayWayDTO.getPayBoxId());
+            payApplicationDTO = payApplicationService.getPayApplicationByPayBoxId(gamePayWayDTO.getPayBoxId());
+        } else {
+            payMerchantDTO = payMerchantService.getByMerchantNo(gamePayWayDTO.getMerchantNo());
+            payApplicationDTO = payApplicationService.getPayApplicationByAppId(gamePayWayDTO.getAppId());
+        }
+        //支付配置参数
+        WxPayConfigBO payConfigBO = JsonUtil.toObj(payMerchantDTO.getPayConfig(), WxPayConfigBO.class);
         payConfigBO.setAppId(payApplicationDTO.getAppId());
         payConfigBO.setAppSecret(payApplicationDTO.getAppSecret());
         payConfigBO.setAppletType(payApplicationDTO.getType());
+        payConfigBO.setMachName(payMerchantDTO.getMerchantName());
         //赋值配置信息
         this.config = payConfigBO;
         log.error("初始化的支付配置信息, config : {}", JsonUtil.toString(this.config));