From 4fabfe4dbd2eb28d07a4350597d314958cc1c281 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 09 十月 2025 11:16:43 +0800
Subject: [PATCH] 优化

---
 server/services/src/main/java/com/doumee/core/wx/WxMiniConfig.java |   85 ++++++++++++++++++++++++++++--------------
 1 files changed, 56 insertions(+), 29 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/core/wx/WxMiniConfig.java b/server/services/src/main/java/com/doumee/core/wx/WxMiniConfig.java
index 237c8fd..555023c 100644
--- a/server/services/src/main/java/com/doumee/core/wx/WxMiniConfig.java
+++ b/server/services/src/main/java/com/doumee/core/wx/WxMiniConfig.java
@@ -8,25 +8,35 @@
 import com.github.binarywang.wxpay.constant.WxPayConstants;
 import com.github.binarywang.wxpay.service.WxPayService;
 import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
+import com.wechat.pay.java.core.Config;
+import com.wechat.pay.java.core.RSAAutoCertificateConfig;
+import com.wechat.pay.java.service.billdownload.BillDownloadService;
+import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiService;
+import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiServiceExtension;
+import com.wechat.pay.java.service.refund.RefundService;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 
 import javax.annotation.PostConstruct;
 
+
 /**
  * 寰俊灏忕▼搴忕粍浠�
  */
 @Configuration
+@Slf4j
 public class WxMiniConfig {
     /********寰俊灏忕▼搴忔湇鍔�**********/
     public static WxMaService wxMaService;
     /********寰俊灏忕▼搴忔敮浠�**********/
-    /********寰俊APP鏀粯**********/
-    public static WxPayService wxAppPayService;
-
-    public static WxPayService wxPayService;
-
+    public static JsapiService wxPayService;
+    public static WxPayService wxPayV2Service;
+    public static RefundService refundService;
+    public static JsapiServiceExtension jsapiExtService;
+    public static BillDownloadService billDownloadService;
+    public static WxPayProperties wxProperties;
     @Autowired
     private WxPayProperties wxPayProperties;
 
@@ -38,57 +48,74 @@
     void init() {
         this.load_WxMaService();
         this.load_wxPayService();
-//        this.load_wxAppPayService();
+        this.load_wxPayV2Service();
+        this.wxProperties = wxPayProperties;
     }
     /**
      * 鍒濆鍖栧井淇″皬绋嬪簭
      */
     public void load_WxMaService() {
         WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
-        config.setAppid(StringUtils.trimToNull(wxPayProperties.getAppId()));
-        config.setSecret(StringUtils.trimToNull(wxPayProperties.getAppSecret()));
+        if(wxPayProperties.getExistsSub() ==1){
+            //濡傛灉鏄湇鍔″晢鏀粯,鍙栧瓙鍟嗘埛淇℃伅
+            config.setAppid(StringUtils.trimToNull(wxPayProperties.getSubAppId()));
+            config.setSecret(StringUtils.trimToNull(wxPayProperties.getSubAppSecret()));
+        }else {
+            config.setAppid(StringUtils.trimToNull(wxPayProperties.getAppId()));
+            config.setSecret(StringUtils.trimToNull(wxPayProperties.getAppSecret()));
+        }
         config.setMsgDataFormat("JSON");
         //config.setToken("");
         //config.setAesKey("");
         WxMaService wxMaService = new WxMaServiceImpl();
         wxMaService.setWxMaConfig(config);
         this.wxMaService = wxMaService;
+
+
+
     }
 
     /**
      * 鍒濆鍖栧井淇″皬绋嬪簭鏀粯
      */
-    public void load_wxPayService() {
+    public void load_wxPayService()   {
+        try {
+            Config config =
+                    new RSAAutoCertificateConfig.Builder()
+                            .merchantId(wxPayProperties.getMchId())
+                            .privateKeyFromPath(wxPayProperties.getPrivateKeyPath())
+                            .merchantSerialNumber(wxPayProperties.getSerialNumer())
+                            .apiV3Key(wxPayProperties.getApiV3Key())
+                            .build();
+            this.wxPayService =  new JsapiService.Builder().config(config).build();
+
+            this.jsapiExtService =  new JsapiServiceExtension.Builder().config(config).build();
+            this.refundService = new RefundService.Builder().config(config).build();
+            this.billDownloadService = new BillDownloadService.Builder().config(config).build();
+        }catch (Exception e){
+            e.printStackTrace();
+
+        }
+    }
+    /**
+     * 鍒濆鍖栧井淇″皬绋嬪簭鏀粯
+     */
+    public void load_wxPayV2Service()
+    {
         WxPayConfig payConfig = new WxPayConfig();
         payConfig.setTradeType(WxPayConstants.TradeType.JSAPI);
         payConfig.setSignType(WxPayConstants.SignType.MD5);
         payConfig.setAppId(StringUtils.trimToNull(wxPayProperties.getAppId()));
+        payConfig.setSubAppId(StringUtils.trimToNull(wxPayProperties.getSubAppId()));
         payConfig.setMchId(StringUtils.trimToNull(wxPayProperties.getMchId()));
+        payConfig.setSubMchId(StringUtils.trimToNull(wxPayProperties.getSubMchId()));
         payConfig.setMchKey(StringUtils.trimToNull(wxPayProperties.getMchKey()));
-        payConfig.setKeyPath(StringUtils.trimToNull(wxPayProperties.getKeyPath()));
+//        payConfig.setKeyPath(StringUtils.trimToNull(wxPayProperties.getKeyPath()));
         payConfig.setNotifyUrl(StringUtils.trimToNull(wxPayProperties.getNotifyUrl()));
         WxPayService wxPayService = new WxPayServiceImpl();
         wxPayService.setConfig(payConfig);
-        this.wxPayService = wxPayService;
+        this.wxPayV2Service = wxPayService;
     }
 
-
-
-//    /**
-//     * 鍒濆鍖朅pp鏀粯
-//     */
-//    public void load_wxAppPayService() {
-//        WxPayConfig payConfig = new WxPayConfig();
-//        payConfig.setTradeType(WxPayConstants.TradeType.APP);
-//        payConfig.setSignType(WxPayConstants.SignType.MD5);
-//        payConfig.setAppId("");
-//        payConfig.setMchId(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_MchId.getCode())));
-//        payConfig.setMchKey(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_MchKey.getCode())));
-//        payConfig.setKeyPath(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_KeyPath.getCode())));
-//        payConfig.setNotifyUrl(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_NotifyUrl.getCode())));
-//        WxPayService wxPayService = new WxPayServiceImpl();
-//        wxPayService.setConfig(payConfig);
-//        this.wxAppPayService = wxPayService;
-//    }
 
 }

--
Gitblit v1.9.3