From 23ea7e81c68673501faad67f7ad3137fddd4ef70 Mon Sep 17 00:00:00 2001
From: zhanglin8526 <852614290@qq.com>
Date: 星期六, 05 八月 2023 18:30:10 +0800
Subject: [PATCH] 1、定时任务 商户进件状态查询 2、小程序下单统一支付提交 3、订单核销分账 4、订单退款 5、支付、退款回调 6、分账回调 7、支付参数yml配置

---
 /dev/null                                                                                        |   62 ---------------
 ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml                                       |   12 ++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayConfiguration.java           |   54 +++++++++++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |    7 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayProperties.java              |   49 ++++++++++++
 5 files changed, 118 insertions(+), 66 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/MyWxPayConfig.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/MyWxPayConfig.java
deleted file mode 100644
index 00e56cc..0000000
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/MyWxPayConfig.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.ruoyi.order.config;
-
-import com.github.binarywang.wxpay.config.WxPayConfig;
-import com.github.binarywang.wxpay.service.WxPayService;
-import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @author jqs34
- * @ClassName WxPayConfig
- * @description: TODO
- * @date 2023年03月06日
- * @version: 1.0
- */
-@Configuration
-@ConditionalOnClass(WxPayService.class)
-public class MyWxPayConfig {
-    //微信API
-    private static final String APP_ID = "";
-    //微信商户号
-    private static final String MAC_ID = "";
-    //微信商户密钥
-    private static final String MCH_KEY = "";
-    //微信证书API
-    private static final String KEY_PATH = "";
-
-    private static final String PRIVATE_KEY_PATH = "";
-
-    private static final String PRIVATE_CERT_PATH = "";
-
-    private static final String API_V3_KEY = "";
-
-    // 分账特约商户
-    private static final String PLATFORM_TY_MAC_ID = "";
-
-    public static String getPlatformTyMacId() {
-        return PLATFORM_TY_MAC_ID;
-    }
-
-    @Bean
-    @ConditionalOnMissingBean
-    public WxPayService wxService() {
-        WxPayConfig payConfig = new WxPayConfig();
-        payConfig.setAppId(APP_ID);
-        payConfig.setMchId(MAC_ID);
-        payConfig.setMchKey(MCH_KEY);
-        payConfig.setKeyPath(KEY_PATH);
-        payConfig.setPrivateKeyPath(PRIVATE_KEY_PATH);
-        payConfig.setPrivateCertPath(PRIVATE_CERT_PATH);
-        payConfig.setApiV3Key(API_V3_KEY);
-        // 可以指定是否使用沙箱环境
-        payConfig.setUseSandboxEnv(false);
-        WxPayService wxPayService = new WxPayServiceImpl();
-        wxPayService.setConfig(payConfig);
-        return wxPayService;
-    }
-
-}
-
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayConfiguration.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayConfiguration.java
new file mode 100644
index 0000000..9cd9524
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayConfiguration.java
@@ -0,0 +1,54 @@
+package com.ruoyi.order.config;
+
+import com.github.binarywang.wxpay.config.WxPayConfig;
+import com.github.binarywang.wxpay.service.WxPayService;
+import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
+import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author Binary Wang
+ */
+@Configuration
+@ConditionalOnClass(WxPayService.class)
+@EnableConfigurationProperties(WxPayProperties.class)
+@AllArgsConstructor
+public class WxPayConfiguration {
+
+  private WxPayProperties properties;
+
+  // 分账特约商户
+  private static String PLATFORM_TY_MAC_ID = "";
+
+  public static String getPlatformTyMacId() {
+    return PLATFORM_TY_MAC_ID;
+  }
+
+  @Bean
+  @ConditionalOnMissingBean
+  public WxPayService wxService() {
+    WxPayConfig payConfig = new WxPayConfig();
+    payConfig.setAppId(StringUtils.trimToNull(this.properties.getAppId()));
+    payConfig.setMchId(StringUtils.trimToNull(this.properties.getMchId()));
+    payConfig.setMchKey(StringUtils.trimToNull(this.properties.getMchKey()));
+    payConfig.setSubAppId(StringUtils.trimToNull(this.properties.getSubAppId()));
+    payConfig.setSubMchId(StringUtils.trimToNull(this.properties.getSubMchId()));
+    payConfig.setKeyPath(StringUtils.trimToNull(this.properties.getKeyPath()));
+
+    // 平台特约商户号
+    PLATFORM_TY_MAC_ID = this.properties.getPlatformTyMacId();
+
+    // 可以指定是否使用沙箱环境
+    payConfig.setUseSandboxEnv(false);
+
+    WxPayService wxPayService = new WxPayServiceImpl();
+    wxPayService.setConfig(payConfig);
+    return wxPayService;
+  }
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayProperties.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayProperties.java
new file mode 100644
index 0000000..0089c12
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayProperties.java
@@ -0,0 +1,49 @@
+package com.ruoyi.order.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * wxpay pay properties.
+ *
+ * @author Binary Wang
+ */
+@Data
+@ConfigurationProperties(prefix = "wx.pay")
+public class WxPayProperties {
+  /**
+   * 设置微信公众号或者小程序等的appid
+   */
+  private String appId;
+
+  /**
+   * 微信支付商户号
+   */
+  private String mchId;
+
+  /**
+   * 微信支付商户密钥
+   */
+  private String mchKey;
+
+  /**
+   * 平台特约商户号,用户平台收取服务费
+   */
+  private String platformTyMacId;
+
+  /**
+   * 服务商模式下的子商户公众账号ID,普通模式请不要配置,请在配置文件中将对应项删除
+   */
+  private String subAppId;
+
+  /**
+   * 服务商模式下的子商户号,普通模式请不要配置,最好是请在配置文件中将对应项删除
+   */
+  private String subMchId;
+
+  /**
+   * apiclient_cert.p12文件的绝对路径,或者如果放在项目中,请以classpath:开头指定
+   */
+  private String keyPath;
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 9d12bd4..95bc445 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -23,7 +23,7 @@
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.utils.CodeFactoryUtil;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.order.config.MyWxPayConfig;
+import com.ruoyi.order.config.WxPayConfiguration;
 import com.ruoyi.order.domain.dto.*;
 import com.ruoyi.order.domain.pojo.account.OrderPayment;
 import com.ruoyi.order.domain.pojo.account.OrderRefund;
@@ -1478,11 +1478,12 @@
         String sendMessage = "";
         String resultMessage = "";
         try {
-            // TODO 核销完成 开始分账(平台收取服务费)
+            // 核销完成 开始分账(平台收取服务费)
             OrderPayment payment = orderPaymentService.getByOrderId(orderId);
             String transactionId = payment.getTransactionId();
 
-            String platformTyMacId = MyWxPayConfig.getPlatformTyMacId();
+            // 平台特约商户号,用户平台收取服务费
+            String platformTyMacId = WxPayConfiguration.getPlatformTyMacId();
 
             R<String> resultMch = remoteShopService.getShopSubMchId(shopId);
             String subMchId = resultMch.getData();
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml
index 79ddc73..c217d22 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml
@@ -3,7 +3,7 @@
   port: 10064
 
 # Spring
-spring: 
+spring:
   application:
     # 应用名称
     name: ruoyi-order
@@ -25,3 +25,13 @@
         # 共享配置
         shared-configs:
           - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+
+wx:
+  pay:
+    appId: #微信公众号或者小程序等的appid(平台)
+    mchId: #微信支付商户号(平台)
+    mchKey: #微信支付商户密钥(平台)
+    platformTyMacId: # 平台特约商户号,用户平台收取服务费
+    subAppId: #服务商模式下的子商户公众账号ID (这个可以不用配置)
+    subMchId: #服务商模式下的子商户号 (二级商户号  也不用配置)
+    keyPath: # (商户平台 下载的V3证书)p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头)

--
Gitblit v1.7.1