guomengjiao месяцев назад: 5
Родитель
Сommit
e33229ed1c

+ 13 - 21
.idea/workspace.xml

@@ -28,18 +28,10 @@
     </select>
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="fc9366aa-6566-4981-8149-d75e02f8e884" name="默认的" comment="支付宝移动端支付">
-      <change afterPath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/service/WxPayH5Service.java" afterDir="false" />
+    <list default="true" id="fc9366aa-6566-4981-8149-d75e02f8e884" name="默认的" comment="微信移动端支付">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jeesite/common/lang/DateUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jeesite/common/lang/DateUtils.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/modules/bjflapi/src/main/java/com/jeesite/modules/bjflapi/report/ResearchBriefReportControllerApi.java" beforeDir="false" afterPath="$PROJECT_DIR$/modules/bjflapi/src/main/java/com/jeesite/modules/bjflapi/report/ResearchBriefReportControllerApi.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/modules/bjflapi/src/main/java/com/jeesite/modules/bjflapi/report/WebsiteUserOrderControllerApi.java" beforeDir="false" afterPath="$PROJECT_DIR$/modules/bjflapi/src/main/java/com/jeesite/modules/bjflapi/report/WebsiteUserOrderControllerApi.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/entity/ResearchBriefReport.java" beforeDir="false" afterPath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/entity/ResearchBriefReport.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/service/ResearchBriefReportService.java" beforeDir="false" afterPath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/service/ResearchBriefReportService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/service/WebsiteUserOrderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/service/WebsiteUserOrderService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/service/WxPayService.java" beforeDir="false" afterPath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/service/WxPayService.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/util/WxPayUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/modules/report/src/main/java/com/jeesite/modules/report/util/WxPayUtil.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/modules/report/src/main/resources/mappings/modules/report/ResearchBriefReportDao.xml" beforeDir="false" afterPath="$PROJECT_DIR$/modules/report/src/main/resources/mappings/modules/report/ResearchBriefReportDao.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/web/src/main/resources/config/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/web/src/main/resources/config/application.yml" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -464,14 +456,7 @@
       <workItem from="1734579234738" duration="258000" />
       <workItem from="1734579502121" duration="1272000" />
       <workItem from="1734658594781" duration="126472000" />
-      <workItem from="1735184825354" duration="38941000" />
-    </task>
-    <task id="LOCAL-00006" summary="2">
-      <created>1681120889544</created>
-      <option name="number" value="00006" />
-      <option name="presentableId" value="LOCAL-00006" />
-      <option name="project" value="LOCAL" />
-      <updated>1681120889544</updated>
+      <workItem from="1735184825354" duration="43102000" />
     </task>
     <task id="LOCAL-00007" summary="报告">
       <created>1681204786000</created>
@@ -809,7 +794,14 @@
       <option name="project" value="LOCAL" />
       <updated>1735287227064</updated>
     </task>
-    <option name="localTasksCounter" value="55" />
+    <task id="LOCAL-00055" summary="微信移动端支付">
+      <created>1735294213224</created>
+      <option name="number" value="00055" />
+      <option name="presentableId" value="LOCAL-00055" />
+      <option name="project" value="LOCAL" />
+      <updated>1735294213225</updated>
+    </task>
+    <option name="localTasksCounter" value="56" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -864,7 +856,6 @@
     </option>
   </component>
   <component name="VcsManagerConfiguration">
-    <MESSAGE value="调查报告功能更新" />
     <MESSAGE value="调查报告优化" />
     <MESSAGE value="调查报告新增配置美元和元" />
     <MESSAGE value="优化" />
@@ -889,7 +880,8 @@
     <MESSAGE value="wx sdk" />
     <MESSAGE value="个人中心" />
     <MESSAGE value="支付宝移动端支付" />
-    <option name="LAST_COMMIT_MESSAGE" value="支付宝移动端支付" />
+    <MESSAGE value="微信移动端支付" />
+    <option name="LAST_COMMIT_MESSAGE" value="微信移动端支付" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>

+ 31 - 30
modules/report/src/main/java/com/jeesite/modules/report/util/WxPayUtil.java

@@ -1,7 +1,13 @@
 package com.jeesite.modules.report.util;
 
+import com.wechat.pay.java.core.Config;
+import com.wechat.pay.java.core.RSAAutoCertificateConfig;
+import com.wechat.pay.java.service.payments.h5.H5Service;
+import com.wechat.pay.java.service.payments.nativepay.NativePayService;
+import com.wechat.pay.java.service.refund.RefundService;
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Component;
 
 @ConfigurationProperties(prefix = "wxpay")
@@ -12,10 +18,6 @@ public class WxPayUtil {
      * 应用ID
      */
     public String appId;
-    /**
-     * 商户私钥
-     */
-    public String apiKey;
     /**
      * 商户id
      */
@@ -37,31 +39,30 @@ public class WxPayUtil {
      */
     public String notifyUrl;
 
-    //TODO
-//    @Bean
-//    public Config config() {
-//        Config config =
-//                new RSAAutoCertificateConfig.Builder()
-//                        .merchantId(mchId)
-//                        .privateKeyFromPath(privateKeyPath)
-//                        .merchantSerialNumber(merchantSerialNumber)
-//                        .apiV3Key(apiV3Key)
-//                        .build();
-//        return config;
-//    }
-//
-//    @Bean
-//    public NativePayService nativePayService(Config config) {
-//        return new NativePayService.Builder().config(config).build();
-//    }
+    @Bean
+    public Config config() {
+        Config config =
+                new RSAAutoCertificateConfig.Builder()
+                        .merchantId(mchId)
+                        .privateKeyFromPath(privateKeyPath)
+                        .merchantSerialNumber(merchantSerialNumber)
+                        .apiV3Key(apiV3Key)
+                        .build();
+        return config;
+    }
+
+    @Bean
+    public NativePayService nativePayService(Config config) {
+        return new NativePayService.Builder().config(config).build();
+    }
+
+    @Bean
+    public RefundService refundService(Config config) {
+        return new RefundService.Builder().config(config).build();
+    }
 
-//    @Bean
-//    public RefundService refundService(Config config) {
-//        return new RefundService.Builder().config(config).build();
-//    }
-//
-//    @Bean
-//    public H5Service h5Service(Config config) {
-//        return new H5Service.Builder().config(config).build();
-//    }
+    @Bean
+    public H5Service h5Service(Config config) {
+        return new H5Service.Builder().config(config).build();
+    }
 }

+ 25 - 0
web/src/main/resources/cert/apiclient_cert.pem

@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIELjCCAxagAwIBAgIUG6o8lsW/DjtXeW7sDfYeOjRrHGQwDQYJKoZIhvcNAQEL
+BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
+FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
+Q0EwHhcNMjQxMjMwMDIwNTM4WhcNMjkxMjI5MDIwNTM4WjCBhzETMBEGA1UEAwwK
+MTY4MzIzMTg4NDEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTMwMQYDVQQL
+DCrmrabmsYnnmb7osI/mlrnnlaXkv6Hmga/np5HmioDmnInpmZDlhazlj7gxCzAJ
+BgNVBAYTAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAJXbOzGDFCrEY84uzCZ/jUg7WcTPU4pGHq3hlpmuGZ7G0RZ5
+g8GXDBgFPuYUDfhfgP1dTQlMxsSBlKazbWPrvKGe40BbqE3U/RGOYNSIb2G5d6Gg
+8rgaEvUEkIq7OF4XIMW5Ho7vghp0AnPWMDGsScil99xg7f/z/Z1+GRASnplOHTB/
+LlYJmG/lyIczWm9AUEHfahF1W+ugd6SV+IUg3NleO3AOOZAKwEPeDYIZxNRYr8+I
+/7WFnMlz7lFzUehDx5lu8k4RuRkN/Zsm+LJgVhycinbDoDICdlGQheiV3fDdT3Bb
+MOSwYpO2VveRSx05fJFsdk3Ax1C1t2mfRDJpOMECAwEAAaOBuTCBtjAJBgNVHRME
+AjAAMAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDov
+L2V2Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUw
+REJDMDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJF
+MTJCMjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IB
+AQBvRIAAIVUwa8u0f/oxeXGa81BSXh4yXSvUAnxOi7viZxCIGvwNiNYpJQOamG7u
+mzAvjUAJVIRaxMY0/mrXV0MEL8DokhZNqy3RvlKGMHy60YupTZhuSR+oy2QxuePW
+XXDbuauEzwVHlqeIU97pbur9QT3vbrre37h1a/D3xJ7RWxRpvUiGwcmMwsZRKAhl
+CdGBW75p9O+WU6FXqE8lzSfd8ypY6VZ1ujtaPvDILn4NfgD7KI+sWqrXCr5vhPw/
+kIu4ujfOiPTeAiAulicb4bX2gKPUnZ4nAf+YZHByuxjzmvgBw1JmDBbQsAoReS01
+Rzw2MpHP0V1vOxOTrbdBkqTR
+-----END CERTIFICATE-----

+ 28 - 0
web/src/main/resources/cert/apiclient_key.pem

@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCV2zsxgxQqxGPO
+Lswmf41IO1nEz1OKRh6t4ZaZrhmextEWeYPBlwwYBT7mFA34X4D9XU0JTMbEgZSm
+s21j67yhnuNAW6hN1P0RjmDUiG9huXehoPK4GhL1BJCKuzheFyDFuR6O74IadAJz
+1jAxrEnIpffcYO3/8/2dfhkQEp6ZTh0wfy5WCZhv5ciHM1pvQFBB32oRdVvroHek
+lfiFINzZXjtwDjmQCsBD3g2CGcTUWK/PiP+1hZzJc+5Rc1HoQ8eZbvJOEbkZDf2b
+JviyYFYcnIp2w6AyAnZRkIXold3w3U9wWzDksGKTtlb3kUsdOXyRbHZNwMdQtbdp
+n0QyaTjBAgMBAAECggEANyn9z0seWGP1DYhClIVtv8JBWGatrQAE+SNK6gWh3sX3
+YBuZOeFdjVYZAl8tiVm2xQ3cdujxXpMI4pi4UwkLZj90DlPvT79w7U6JLJOQ1NuO
+Q0xZLRZEFjf48Wjb5h8DbGWp7xoRvaUo5fVZxl9Sxe76oAB6fDcYDCrIFReVlH8R
+nWofG3A2vo5XGbyJamYUuE6IK/0vRJDOC9ZFJmZiOPCYQ5OETxQNIQ6GohU3kqgz
+Sp+TixQcmb37IFC2OjNDklI8Z1qohFh/U8P10v+D/bRW4pRwvlCub6FFMVnCcWGe
+sLTWXO5v/rSeDzbjWZ4+G3EVcz6zyY3eJDXXSYAphQKBgQDG3Hyz0zhmgSzH2klW
+KONkX+r0OdD/Rmu5AUk6Ko8YlAXYVL7jPkWMTNWLtMcgojzBKwEE/+eFDoqg+yvW
+0wrejjkrCYGFQ0iIPmd6bjXqPwVr9vf7EgOzUwrBOvDv6d9SOyGq0mA01tY4NABR
+jyzreyc5DBQhkOBuSD2tmE/lQwKBgQDA6h8PZMMkxCYaIaH8Ivf8Ciipz7uWZ+SB
+YdBAMsgXJzCKBwiqnuPg2vhA8E9ol8TKvFAONMx/74Q4JJZ3Xq4H39J1Z71Kq7Uk
+PvgplnbQG/B7adkAV9lb8ZGyhrYnf0WNNjS6BEwzPlwgoiFeZnZYFf4XS8vKpHhS
+iriC95zHqwKBgCj3cSUmhT7wq4X8XRFH2Rhrfh6T7o84NabmMeyuqc35aH7Zbn2n
+7XHqvi9KrZ72bSeqMUqTYWGSzlI9jBl0Xo/cosBP9AO9Casvl+er3qWEGBzWwt1R
+J7wAhn2qI8p41o29KsFjF3irLXRkmhAzO6DDPSBOcbM8gk+VyEcD0qm7AoGAK9VG
+h23itTjoW2mm765WYGtCgAsWWX9zuT4rXlrrge9CpSoh+vqtVosKe17e/Cn36gTN
+v9yZVrxqc4NEuQzHSDzACjMvHIdVWk4AfxqUFocypigPyXcsiSqja0gWnXTardJS
+Oq39Tmtt7XBJWrS3UR52JH7xaDLksASbFg8DDY8CgYBOqMnQZelQGUiCM1Km+KPM
+9z710PhkKK06dCD4Y1pt5K0Wu63ou58BJc0q6kVPlm+nGV4z4+mJLXcZ5zjm43ST
+adzDrxazg2XUkJj76osiwOth+EBQd3YoWceUAPecBbjSmDWN55J4+QXTmqkD8ZIm
+/+d0OshqTTQ+K4oI7T2uxw==
+-----END PRIVATE KEY-----

+ 18 - 0
web/src/main/resources/cert/璇佷功浣跨敤璇存槑.txt

@@ -0,0 +1,18 @@
+欢迎使用微信支付!
+附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。
+证书属于敏感信息,请妥善保管不要泄露和被他人复制。
+不同开发语言下的证书格式不同,以下为说明指引:
+    证书pkcs12格式(apiclient_cert.p12)
+        包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份
+        部分安全性要求较高的API需要使用该证书来确认您的调用身份
+        windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户号(如:1900006031)
+    证书pem格式(apiclient_cert.pem)
+        从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制
+        部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供
+        您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem
+    证书密钥pem格式(apiclient_key.pem)
+        从apiclient_cert.p12中导出密钥部分的文件,为pem格式
+        部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供
+        您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem
+备注说明:  
+        由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书,  2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 

+ 4 - 6
web/src/main/resources/config/application.yml

@@ -950,15 +950,13 @@ alipay:
 wxpay:
   #应用id
   appId:
-  #商户私钥key
-  apiKey:
   #商户id
-  mchId:
+  mchId: 1683231884
   #支付回调地址
-  notifyUrl:
+  notifyUrl: http://localhost:8090/js/a/api/report/websiteUserOrder/wxpay/asyncNotify
   # 商户API私钥路径
-  privateKeyPath:
+  privateKeyPath: cert/apiclient_key.pem
   # 商户证书序列号
   merchantSerialNumber:
   # 商户APIV3密钥
-  apiV3Key:
+  apiV3Key: gaux2PjT2vwtcRNvvH5EKpuhIUNe1djN