wangqifan пре 4 година
родитељ
комит
5ae6b21b0c

+ 7 - 1
pom.xml

@@ -29,7 +29,7 @@
         <java.version>1.8</java.version>
         <skipTests>true</skipTests>
         <poi.verion>3.17</poi.verion>
-        <javawx.version>3.6.0</javawx.version>
+        <javawx.version>3.5.0</javawx.version>
         <aliyun.oss.version>2.8.3</aliyun.oss.version>
         <aliyun.core.version>4.1.0</aliyun.core.version>
     </properties>
@@ -163,6 +163,12 @@
             <version>${javawx.version}</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>${javawx.version}</version>
+        </dependency>
+
         <dependency>
             <groupId>com.github.binarywang</groupId>
             <artifactId>weixin-java-pay</artifactId>

+ 30 - 0
src/main/java/com/izouma/zhumj/config/WxMaConfiguration.java

@@ -0,0 +1,30 @@
+package com.izouma.zhumj.config;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
+import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
+import lombok.AllArgsConstructor;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@AllArgsConstructor
+@Configuration
+@EnableConfigurationProperties(WxMaProperties.class)
+public class WxMaConfiguration {
+    private final WxMaProperties properties;
+
+    @Bean
+    public WxMaService wxMaService() {
+        WxMaService service = new WxMaServiceImpl();
+        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
+        config.setAppid(properties.getAppId());
+        config.setSecret(properties.getAppSecret());
+        config.setToken(properties.getMsgToken());
+        config.setAesKey(properties.getMsgAesKey());
+        config.setMsgDataFormat(properties.getMsgFormat());
+        service.setWxMaConfig(config);
+        return service;
+    }
+
+}

+ 14 - 0
src/main/java/com/izouma/zhumj/config/WxMaProperties.java

@@ -0,0 +1,14 @@
+package com.izouma.zhumj.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+@Data
+@ConfigurationProperties(prefix = "wx.ma")
+public class WxMaProperties {
+    private String appId;
+    private String appSecret;
+    private String msgToken;
+    private String msgAesKey;
+    private String msgFormat;
+}

+ 1 - 1
src/main/java/com/izouma/zhumj/service/UserService.java

@@ -48,8 +48,8 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 public class UserService {
     private UserRepo               userRepo;
-    private WxMpService            wxMpService;
     private WxMaService            wxMaService;
+    private WxMpService            wxMpService;
     private SmsService             smsService;
     private SalePositionRepo       salePositionRepo;
     private ApplicationContext     applicationContext;

+ 164 - 164
src/main/resources/application.yaml

@@ -1,184 +1,184 @@
 server:
-    port: 8080
-    servlet:
-        context_path: /
-    compression:
-        enabled: true
-        mime-types: application/json,application/xml,text/html,text/xml,text/plain
+  port: 8080
+  servlet:
+    context_path: /
+  compression:
+    enabled: true
+    mime-types: application/json,application/xml,text/html,text/xml,text/plain
 spring:
-    profiles:
-        active: dev
-    datasource:
-        url: jdbc:mysql://rdsave1o67m1ido6gwp6public.mysql.rds.aliyuncs.com/pms?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
-        username: pms
-        password: 3G$KnSsSZiLZ
-        #        url: jdbc:mysql://localhost/zmj_test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
-        #        username: root
-        #        password: 123456
-        hikari:
-            minimum-idle: 10
-            maximum-pool-size: 100
-            auto-commit: true
-            idle-timeout: 600000
-            max-lifetime: 1800000
-            connection-timeout: 5000
-            connection-test-query: SELECT 1
-            validation-timeout: 3000
-            login-timeout: 1000
-            leak-detection-threshold: 10000
-        druid:
-            # 连接池的配置信息
-            # 初始化大小,最小,最大
-            initial-size: 10
-            min-idle: 10
-            maxActive: 50
-            # 配置获取连接等待超时的时间
-            maxWait: 60000
-            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-            timeBetweenEvictionRunsMillis: 60000
-            # 配置一个连接在池中最小生存的时间,单位是毫秒
-            minEvictableIdleTimeMillis: 300000
-            validationQuery: SELECT 1
-            testWhileIdle: true
-            testOnBorrow: false
-            testOnReturn: false
-            # 打开PSCache,并且指定每个连接上PSCache的大小
-            poolPreparedStatements: true
-            maxPoolPreparedStatementPerConnectionSize: 20
-            # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
-            filters: stat,wall,slf4j
-            # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
-            connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
-            remove-abandoned: true
-            remove-abandoned-timeout: 1800
-            log-abandoned: true
-            # 配置DruidStatFilter
-            web-stat-filter:
-                enabled: true
-                url-pattern: "/*"
-                exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
-            # 配置DruidStatViewServlet
-            stat-view-servlet:
-                enabled: true
-                url-pattern: "/druid/*"
-                login-username: admin
-                login-password: 123456
-            filter:
-                wall:
-                    enabled: true
-                    config:
-                        condition-and-alway-false-allow: true
-                        condition-and-alway-true-allow: true
-                        select-where-alway-true-check: false
-    jpa:
-        database: MySQL
-        database_platform: org.hibernate.dialect.MySQL5InnoDBDialect
-        hibernate:
-            ddl_auto: update
-        properties:
-            hibernate:
-                enable_lazy_load_no_trans: true
-                format_sql: false
-    #    redis:
-    #        host: 127.0.0.1
-    #        port: 6379
-    #        lettuce:
-    #            pool:
-    #                max_active: 8
-    #                max_idle: 8
-    #                min_idle: 0
-    servlet:
-        multipart:
-            max_file_size: 100MB
-            max_request_size: 100MB
+  profiles:
+    active: dev
+  datasource:
+    url: jdbc:mysql://rdsave1o67m1ido6gwp6public.mysql.rds.aliyuncs.com/pms?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
+    username: pms
+    password: 3G$KnSsSZiLZ
+    #        url: jdbc:mysql://localhost/zmj_test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
+    #        username: root
+    #        password: 123456
+    hikari:
+      minimum-idle: 10
+      maximum-pool-size: 100
+      auto-commit: true
+      idle-timeout: 600000
+      max-lifetime: 1800000
+      connection-timeout: 5000
+      connection-test-query: SELECT 1
+      validation-timeout: 3000
+      login-timeout: 1000
+      leak-detection-threshold: 10000
+    druid:
+      # 连接池的配置信息
+      # 初始化大小,最小,最大
+      initial-size: 10
+      min-idle: 10
+      maxActive: 50
+      # 配置获取连接等待超时的时间
+      maxWait: 60000
+      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+      timeBetweenEvictionRunsMillis: 60000
+      # 配置一个连接在池中最小生存的时间,单位是毫秒
+      minEvictableIdleTimeMillis: 300000
+      validationQuery: SELECT 1
+      testWhileIdle: true
+      testOnBorrow: false
+      testOnReturn: false
+      # 打开PSCache,并且指定每个连接上PSCache的大小
+      poolPreparedStatements: true
+      maxPoolPreparedStatementPerConnectionSize: 20
+      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+      filters: stat,wall,slf4j
+      # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+      connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+      remove-abandoned: true
+      remove-abandoned-timeout: 1800
+      log-abandoned: true
+      # 配置DruidStatFilter
+      web-stat-filter:
+        enabled: true
+        url-pattern: "/*"
+        exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
+      # 配置DruidStatViewServlet
+      stat-view-servlet:
+        enabled: true
+        url-pattern: "/druid/*"
+        login-username: admin
+        login-password: 123456
+      filter:
+        wall:
+          enabled: true
+          config:
+            condition-and-alway-false-allow: true
+            condition-and-alway-true-allow: true
+            select-where-alway-true-check: false
+  jpa:
+    database: MySQL
+    database_platform: org.hibernate.dialect.MySQL5InnoDBDialect
+    hibernate:
+      ddl_auto: update
+    properties:
+      hibernate:
+        enable_lazy_load_no_trans: true
+        format_sql: false
+  #    redis:
+  #        host: 127.0.0.1
+  #        port: 6379
+  #        lettuce:
+  #            pool:
+  #                max_active: 8
+  #                max_idle: 8
+  #                min_idle: 0
+  servlet:
+    multipart:
+      max_file_size: 100MB
+      max_request_size: 100MB
 jwt:
-    secret: XvAD0kboD76Dpeb1
-    header: Authorization
-    expiration: 21600 #30days
-    route:
-        authentication:
-            path: /auth
-            refresh: /refresh
+  secret: XvAD0kboD76Dpeb1
+  header: Authorization
+  expiration: 21600 #30days
+  route:
+    authentication:
+      path: /auth
+      refresh: /refresh
 wx:
-    mp:
-        app_id: wx2375cba2eec2c479
-        app_secret: 28e4829124860d9ef9e2f32aeefd1111
-    miniapp:
-        app_id: wx6517cbf58115c508
-        app_secret: 8af0e8ba28ffddfb7e574e6c7cb6aaf1
-        msg_token: msgToken
-        msg_aes_key: aesKey
-        msg_format: JSON
-    pay:
-        appId: wx2375cba2eec2c479
-        mchId: 1529090291
-        mchKey: uDusnGcUqYyWqsBdmvuioxDhtgZErwtu
-        subAppId: #服务商模式下的子商户公众账号ID
-        subMchId: #服务商模式下的子商户号
-        keyPath: classpath:/cert/apiclient_cert.p12
-        notifyUrl: http://test.zmjpms.com/wx/payNotify
-        refundNotifyUrl: http://test.zmjpms.com/wx/refundNotify
+  mp:
+    app_id: wx80d1b03fccb22538
+    app_secret: de6db180231ecbbcab24484099e3b6ba
+    ma:
+      app_id: wx80d1b03fccb22538
+      app_secret: de6db180231ecbbcab24484099e3b6ba
+      msg_token: msgToken
+      msg_aes_key: aesKey
+      msg_format: JSON
+  pay:
+    appId: wx2375cba2eec2c479
+    mchId: 1529090291
+    mchKey: uDusnGcUqYyWqsBdmvuioxDhtgZErwtu
+    subAppId: #服务商模式下的子商户公众账号ID
+    subMchId: #服务商模式下的子商户号
+    keyPath: classpath:/cert/apiclient_cert.p12
+    notifyUrl: http://test.zmjpms.com/wx/payNotify
+    refundNotifyUrl: http://test.zmjpms.com/wx/refundNotify
 storage:
-    provider: aliyun
-    local_path: /var/www/upload/
+  provider: aliyun
+  local_path: /var/www/upload/
 aliyun:
-    access-key-id: PXzJyah5rZfWHIIH
-    access-key-secret: e1MS6j0wypXJrw8CM0hObZu8qKbfah
-    oss-end-point: oss-cn-hangzhou.aliyuncs.com
-    oss-bucket-name: zhumj
-    oss-domain: https://zhumj.oss-cn-hangzhou.aliyuncs.com
+  access-key-id: PXzJyah5rZfWHIIH
+  access-key-secret: e1MS6j0wypXJrw8CM0hObZu8qKbfah
+  oss-end-point: oss-cn-hangzhou.aliyuncs.com
+  oss-bucket-name: zhumj
+  oss-domain: https://zhumj.oss-cn-hangzhou.aliyuncs.com
 generic:
-    server-address: http://192.168.50.34:8080
-    mp-address: http://192.168.50.34:8082
+  server-address: http://192.168.50.34:8080
+  mp-address: http://192.168.50.34:8082
 alipay:
-    app-id: 2021002120645023
-    gateway: https://openapi.alipay.com/gateway.do
-    private-key: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCY+rbFFUiIwo0D+3Jh6bh02SGBHssbFxysDHhB8Xi+8UZH7ZGekvGd8GVMGEYPqCscsJL/ZmSUH3D75Rf+lXS6CNohv1hPFl1NvtibCxmruExa6xc6V21fb5HyVnywBag+4mfcbrAtoSZ6T7ZkhESt0WuO77Z/QfyMKSz7qxTC3GTLKxhHMn5rYwE/ORB3k8r/wioezPzsqWbOgcu8pOzJgfoasyKocrtIj9aIa8lHneA+jzEHIUNrGxHUKX10KxvsTvAbUDGu7xu8mZWvBR6aJc1IVdsW+JzNZgV2TezJl5ZGFn8t2JALdZirXlHXDp0GyRl/91XVTIjtZAgTTaYpAgMBAAECggEAQzSJTKWf+uy1NJWnV1ps/XBSJr5XbexGXVMRFa82Y3PtczXr7iUR3le4uKhFRyWS4wSzX14lO2lgolivpNkVsZCn+4FrEzt4++mmkN5chbLuYFa9GpVD6FREYpkaJ94kXpPqGs3JuhH8rGkOcLQm09GXlfC7VMaxYwXHzDwJX9zvnkA7BQKIAvhOfVuGvrbqeWfXJKgry0SPGnxSRWq7U4jjrzSrg5t+Uq8fpDqTy+3Y6a6qP5rpLeBVuEgPoNRqTSxAESyXk9pEpQDBe6gS5x5/zTqvkRB8JiB6BYHExrus9oUmjW0Ap7oAadrK/XHjK1RL1kCQUHDK0LrCDtFMMQKBgQDvlmY3+4KR2SkCo69YymVbItSkiHh/oz+zOHk5+f05XRRkH0ZG1pFf6Q5OnpDK3RH6UPo9VUj0v8QrF/7AO+9QUQfcEE9C4xN7M8mHGvh62Vkxl3ByDZdz8++iqseFbnkyUPzeJjPUjK+xD79TzqQgnpLVs25LjWkawZFa4vjepQKBgQCjdXvkFNRhN25PHZ93MSVJJ5sr1I9dsx0oorWPFhguyL+S8Lmz9L6VDT7E9ebWWIj98tl2fR2umDDtt+jn8fHOfbnJna8B1pv8KSA82M2+cbaTSCpt4oN6wQpVQxWQ4mtQolOaH/LIYbNLD/5NsPMgrb/jesOT7sQqO/TLtXH2NQKBgCteRxyFG2p5K7I9nOTuphAsKt+pkF5SV5qCc3cqKEs07Rb+jkMOXfxFfICAtWbzQ2jTNajagj1DZSgDzOpRLw2TzV9pWF+cKQ+ZHTamjCn4o+uVJRaQHUUw98SzMzCVAb046bzwn1svKDJdzl1GP3FkIuIp+6ITc94TAdO42CG9AoGAVgsH1j3otev50wei45kpKWMB2YagmRAp7zQHInTc8fOWdIDnIAVbNRatzfwrMPWV1ye4tRiTQU63osrGfSHsyWeBHtI0R2Fy5r+3SpBNbUxqcQjx3Ln5v+pRyCPx/DxThTSNkXnz0Oss9/xJPxhAQxlzAwmiXgK3nAvHhlvSy2kCgYBL7J1Xa5F0zO6yY+qYyN1LPzCxOis9JGwv1VB7mWqAc0k2an0zz8o2dVr80q0l7b3HAPU/I0i2cvJJgCysHtIOfsm7kwDjtwn0CMZnMajW6R1Lq0tOpLNcrXgcGOxzjv5hs38r+515JrPBrD3IHRdjT248+zcKvY94g+W/EW9WWQ==
-    app-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmPq2xRVIiMKNA/tyYem4dNkhgR7LGxccrAx4QfF4vvFGR+2RnpLxnfBlTBhGD6grHLCS/2ZklB9w++UX/pV0ugjaIb9YTxZdTb7YmwsZq7hMWusXOldtX2+R8lZ8sAWoPuJn3G6wLaEmek+2ZIRErdFrju+2f0H8jCks+6sUwtxkyysYRzJ+a2MBPzkQd5PK/8IqHsz87KlmzoHLvKTsyYH6GrMiqHK7SI/WiGvJR53gPo8xByFDaxsR1Cl9dCsb7E7wG1Axru8bvJmVrwUemiXNSFXbFviczWYFdk3syZeWRhZ/LdiQC3WYq15R1w6dBskZf/dV1UyI7WQIE02mKQIDAQAB
-    ali-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Qm5hy9Y2P211NsWVQXQLxXAKOEQNMdOnis4l5eCLSYAEQ+KqAIiW97+Bs5lkk0UNjPBgKAbYUW04qQFW4yCf9OIikhTC1R9QX+hPxg0Clpa1OA0zrM14YRulfmLXdx+sQea9NG+V2cmO9Q6L0GYed69/WNofGqrfELtqDqbuTFIPKki6RGuCCMUsYmC/9DDQ93i08X7srdGEHAzeId8T+wZmnrf1iri/zxumxrt9c7XknKK4uKC5j4kbkQ/5kMKIxz4h/9snBmCth4YxodM5oLwwJmUGaDAlErdAojDCvXBHIVq8lrrmMK4D1a5m7kxjiX4yV6JENm8L316bJKJTQIDAQAB
-    apiKey: CRv5YFAOIEGY5PgVf14Y9g==
-    appCertPath: classpath:cert/appCertPublicKey_2021002120645023.crt
-    aliPubCertPath: classpath:cert/alipayCertPublicKey_RSA2.crt
-    rootCertPath: classpath:cert/alipayRootCert.crt
-    notifyUrl: http://xiongzhu.frp.izouma.com/alipay/payNotify
+  app-id: 2021002120645023
+  gateway: https://openapi.alipay.com/gateway.do
+  private-key: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCY+rbFFUiIwo0D+3Jh6bh02SGBHssbFxysDHhB8Xi+8UZH7ZGekvGd8GVMGEYPqCscsJL/ZmSUH3D75Rf+lXS6CNohv1hPFl1NvtibCxmruExa6xc6V21fb5HyVnywBag+4mfcbrAtoSZ6T7ZkhESt0WuO77Z/QfyMKSz7qxTC3GTLKxhHMn5rYwE/ORB3k8r/wioezPzsqWbOgcu8pOzJgfoasyKocrtIj9aIa8lHneA+jzEHIUNrGxHUKX10KxvsTvAbUDGu7xu8mZWvBR6aJc1IVdsW+JzNZgV2TezJl5ZGFn8t2JALdZirXlHXDp0GyRl/91XVTIjtZAgTTaYpAgMBAAECggEAQzSJTKWf+uy1NJWnV1ps/XBSJr5XbexGXVMRFa82Y3PtczXr7iUR3le4uKhFRyWS4wSzX14lO2lgolivpNkVsZCn+4FrEzt4++mmkN5chbLuYFa9GpVD6FREYpkaJ94kXpPqGs3JuhH8rGkOcLQm09GXlfC7VMaxYwXHzDwJX9zvnkA7BQKIAvhOfVuGvrbqeWfXJKgry0SPGnxSRWq7U4jjrzSrg5t+Uq8fpDqTy+3Y6a6qP5rpLeBVuEgPoNRqTSxAESyXk9pEpQDBe6gS5x5/zTqvkRB8JiB6BYHExrus9oUmjW0Ap7oAadrK/XHjK1RL1kCQUHDK0LrCDtFMMQKBgQDvlmY3+4KR2SkCo69YymVbItSkiHh/oz+zOHk5+f05XRRkH0ZG1pFf6Q5OnpDK3RH6UPo9VUj0v8QrF/7AO+9QUQfcEE9C4xN7M8mHGvh62Vkxl3ByDZdz8++iqseFbnkyUPzeJjPUjK+xD79TzqQgnpLVs25LjWkawZFa4vjepQKBgQCjdXvkFNRhN25PHZ93MSVJJ5sr1I9dsx0oorWPFhguyL+S8Lmz9L6VDT7E9ebWWIj98tl2fR2umDDtt+jn8fHOfbnJna8B1pv8KSA82M2+cbaTSCpt4oN6wQpVQxWQ4mtQolOaH/LIYbNLD/5NsPMgrb/jesOT7sQqO/TLtXH2NQKBgCteRxyFG2p5K7I9nOTuphAsKt+pkF5SV5qCc3cqKEs07Rb+jkMOXfxFfICAtWbzQ2jTNajagj1DZSgDzOpRLw2TzV9pWF+cKQ+ZHTamjCn4o+uVJRaQHUUw98SzMzCVAb046bzwn1svKDJdzl1GP3FkIuIp+6ITc94TAdO42CG9AoGAVgsH1j3otev50wei45kpKWMB2YagmRAp7zQHInTc8fOWdIDnIAVbNRatzfwrMPWV1ye4tRiTQU63osrGfSHsyWeBHtI0R2Fy5r+3SpBNbUxqcQjx3Ln5v+pRyCPx/DxThTSNkXnz0Oss9/xJPxhAQxlzAwmiXgK3nAvHhlvSy2kCgYBL7J1Xa5F0zO6yY+qYyN1LPzCxOis9JGwv1VB7mWqAc0k2an0zz8o2dVr80q0l7b3HAPU/I0i2cvJJgCysHtIOfsm7kwDjtwn0CMZnMajW6R1Lq0tOpLNcrXgcGOxzjv5hs38r+515JrPBrD3IHRdjT248+zcKvY94g+W/EW9WWQ==
+  app-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmPq2xRVIiMKNA/tyYem4dNkhgR7LGxccrAx4QfF4vvFGR+2RnpLxnfBlTBhGD6grHLCS/2ZklB9w++UX/pV0ugjaIb9YTxZdTb7YmwsZq7hMWusXOldtX2+R8lZ8sAWoPuJn3G6wLaEmek+2ZIRErdFrju+2f0H8jCks+6sUwtxkyysYRzJ+a2MBPzkQd5PK/8IqHsz87KlmzoHLvKTsyYH6GrMiqHK7SI/WiGvJR53gPo8xByFDaxsR1Cl9dCsb7E7wG1Axru8bvJmVrwUemiXNSFXbFviczWYFdk3syZeWRhZ/LdiQC3WYq15R1w6dBskZf/dV1UyI7WQIE02mKQIDAQAB
+  ali-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Qm5hy9Y2P211NsWVQXQLxXAKOEQNMdOnis4l5eCLSYAEQ+KqAIiW97+Bs5lkk0UNjPBgKAbYUW04qQFW4yCf9OIikhTC1R9QX+hPxg0Clpa1OA0zrM14YRulfmLXdx+sQea9NG+V2cmO9Q6L0GYed69/WNofGqrfELtqDqbuTFIPKki6RGuCCMUsYmC/9DDQ93i08X7srdGEHAzeId8T+wZmnrf1iri/zxumxrt9c7XknKK4uKC5j4kbkQ/5kMKIxz4h/9snBmCth4YxodM5oLwwJmUGaDAlErdAojDCvXBHIVq8lrrmMK4D1a5m7kxjiX4yV6JENm8L316bJKJTQIDAQAB
+  apiKey: CRv5YFAOIEGY5PgVf14Y9g==
+  appCertPath: classpath:cert/appCertPublicKey_2021002120645023.crt
+  aliPubCertPath: classpath:cert/alipayCertPublicKey_RSA2.crt
+  rootCertPath: classpath:cert/alipayRootCert.crt
+  notifyUrl: http://xiongzhu.frp.izouma.com/alipay/payNotify
 ---
 
 spring:
-    profiles: test
-    datasource:
-        url: jdbc:mysql://rdsave1o67m1ido6gwp6public.mysql.rds.aliyuncs.com/pms?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
-        username: pms
-        password: 3G$KnSsSZiLZ
+  profiles: test
+  datasource:
+    url: jdbc:mysql://rdsave1o67m1ido6gwp6public.mysql.rds.aliyuncs.com/pms?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
+    username: pms
+    password: 3G$KnSsSZiLZ
 wx:
-    pay:
-        notifyUrl: https://test.zmjpms.com/wx/payNotify
-        refundNotifyUrl: https://test.zmjpms.com/wx/refundNotify
+  pay:
+    notifyUrl: https://test.zmjpms.com/wx/payNotify
+    refundNotifyUrl: https://test.zmjpms.com/wx/refundNotify
 generic:
-    server-address: https://test.zmjpms.com
-    mp-address: https://test.zmjpms.com/mp
-    mb-address: https://test.zmjpms.com/mb
+  server-address: https://test.zmjpms.com
+  mp-address: https://test.zmjpms.com/mp
+  mb-address: https://test.zmjpms.com/mb
 alipay:
-    appCertPath: /var/www/zmj_test/cert/appCertPublicKey_2021002120645023.crt
-    aliPubCertPath: /var/www/zmj_test/cert/alipayCertPublicKey_RSA2.crt
-    rootCertPath: /var/www/zmj_test/cert/alipayRootCert.crt
-    notifyUrl: https://test.zmjpms.com/alipay/payNotify
+  appCertPath: /var/www/zmj_test/cert/appCertPublicKey_2021002120645023.crt
+  aliPubCertPath: /var/www/zmj_test/cert/alipayCertPublicKey_RSA2.crt
+  rootCertPath: /var/www/zmj_test/cert/alipayRootCert.crt
+  notifyUrl: https://test.zmjpms.com/alipay/payNotify
 ---
 
 spring:
-    profiles: prod
-    datasource:
-        url: jdbc:mysql://rdsave1o67m1ido6gwp6public.mysql.rds.aliyuncs.com/pms?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
-        username: pms
-        password: 3G$KnSsSZiLZ
+  profiles: prod
+  datasource:
+    url: jdbc:mysql://rdsave1o67m1ido6gwp6public.mysql.rds.aliyuncs.com/pms?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
+    username: pms
+    password: 3G$KnSsSZiLZ
 wx:
-    pay:
-        notifyUrl: https://zmjpms.com/wx/payNotify
-        refundNotifyUrl: https://zmjpms.com/wx/refundNotify
+  pay:
+    notifyUrl: https://zmjpms.com/wx/payNotify
+    refundNotifyUrl: https://zmjpms.com/wx/refundNotify
 generic:
-    server-address: https://zmjpms.com
-    mp-address: https://zmjpms.com/mp
+  server-address: https://zmjpms.com
+  mp-address: https://zmjpms.com/mp
 alipay:
-    appCertPath: /var/www/zmj/cert/appCertPublicKey_2021002120645023.crt
-    aliPubCertPath: /var/www/zmj/cert/alipayCertPublicKey_RSA2.crt
-    rootCertPath: /var/www/zmj/cert/alipayRootCert.crt
-    notifyUrl: https://zmjpms.com/alipay/payNotify
+  appCertPath: /var/www/zmj/cert/appCertPublicKey_2021002120645023.crt
+  aliPubCertPath: /var/www/zmj/cert/alipayCertPublicKey_RSA2.crt
+  rootCertPath: /var/www/zmj/cert/alipayRootCert.crt
+  notifyUrl: https://zmjpms.com/alipay/payNotify