zyp 2 周之前
父節點
當前提交
0befe36c6a

+ 5 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -1200,11 +1200,16 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
                 packetParam.setOpenId(fsUserWx.getOpenId());
             }
         }
+        //判断服务号配置是否存在
+        if (StringUtils.isNotEmpty(config.getMpAppId())){
+            packetParam.setMpAppId(config.getMpAppId());
+        }
         packetParam.setAmount(amount);
         packetParam.setSource(param.getSource());
         packetParam.setRedPacketMode(config.getRedPacketMode());
         packetParam.setCompanyId(param.getCompanyId());
         packetParam.setAppId(param.getAppId());
+        packetParam.setUser(user);
 
         System.out.println("红包金额"+amount);
         System.out.println("红包商户号"+packetParam);

+ 3 - 0
fs-service/src/main/java/com/fs/his/param/WxSendRedPacketParam.java

@@ -26,4 +26,7 @@ public class WxSendRedPacketParam implements Serializable {
 
     private FsUser user;
 
+    private String mpAppId;
+
+
 }

+ 7 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsStorePaymentServiceImpl.java

@@ -541,6 +541,12 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService {
 
     // 内部方法:处理旧版本的发红包逻辑
     private R sendRedPacketLegacyInternal(WxSendRedPacketParam param, RedPacketConfig config) {
+        //如果服务号的配置存在,小程序红包接口可以使用服务号来发红包,重新赋值
+        //仅老商户支持
+        if (param.getUser().getMpOpenId()!=null && StringUtils.isNotEmpty(param.getMpAppId())){
+            config.setAppId(param.getMpAppId());
+            param.setOpenId(param.getUser().getMpOpenId());
+        }
         WxPayConfig payConfig = new WxPayConfig();
         BeanUtils.copyProperties(config, payConfig);
         WxPayService wxPayService = new WxPayServiceImpl();
@@ -550,6 +556,7 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService {
         TransferBatchesRequest request = new TransferBatchesRequest();
         request.setAppid(config.getAppId());
 
+
         // todo 如果未配置负载均衡请还原原本的单号方式
 //        String code = IdUtil.getSnowflake(0, 0).nextIdStr();
         String code =  OrderCodeUtils.getOrderSn();