From cc1181b93c51c60a117846f9640d3f56370e67f3 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期四, 03 八月 2023 13:32:26 +0800
Subject: [PATCH] Merge branch 'master' of ssh://sinata.cn:20202/java/HongRuiTang into master

---
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java                |    3 
 ruoyi-modules/ruoyi-shop/pom.xml                                                                   |    5 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/config/WxPayConfiguration.java               |   44 +++++++
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java |    2 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java                     |  122 ++++++++++++++++++++
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java       |   96 +--------------
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/config/WxPayProperties.java                  |   44 +++++++
 ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml                                          |    9 +
 8 files changed, 236 insertions(+), 89 deletions(-)

diff --git a/ruoyi-modules/ruoyi-shop/pom.xml b/ruoyi-modules/ruoyi-shop/pom.xml
index aacbe47..dbbee66 100644
--- a/ruoyi-modules/ruoyi-shop/pom.xml
+++ b/ruoyi-modules/ruoyi-shop/pom.xml
@@ -104,6 +104,11 @@
 
         <!-- 微信 -->
         <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-pay</artifactId>
+            <version>4.5.0</version>
+        </dependency>
+        <dependency>
             <groupId>com.github.wechatpay-apiv3</groupId>
             <artifactId>wechatpay-apache-httpclient</artifactId>
             <version>0.4.9</version>
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/config/WxPayConfiguration.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/config/WxPayConfiguration.java
new file mode 100644
index 0000000..451ba86
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/config/WxPayConfiguration.java
@@ -0,0 +1,44 @@
+package com.ruoyi.shop.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.beans.factory.annotation.Autowired;
+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;
+
+  @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()));
+
+    // 可以指定是否使用沙箱环境
+    payConfig.setUseSandboxEnv(false);
+
+    WxPayService wxPayService = new WxPayServiceImpl();
+    wxPayService.setConfig(payConfig);
+    return wxPayService;
+  }
+
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/config/WxPayProperties.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/config/WxPayProperties.java
new file mode 100644
index 0000000..c1c4841
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/config/WxPayProperties.java
@@ -0,0 +1,44 @@
+package com.ruoyi.shop.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;
+
+  /**
+   * 服务商模式下的子商户公众账号ID,普通模式请不要配置,请在配置文件中将对应项删除
+   */
+  private String subAppId;
+
+  /**
+   * 服务商模式下的子商户号,普通模式请不要配置,最好是请在配置文件中将对应项删除
+   */
+  private String subMchId;
+
+  /**
+   * apiclient_cert.p12文件的绝对路径,或者如果放在项目中,请以classpath:开头指定
+   */
+  private String keyPath;
+
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
index dcc54e9..660a4e7 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -264,7 +264,7 @@
     @RequestMapping(value = "/mgtShopAuth", method = RequestMethod.POST)
     @Log(title = "商户进件管理", businessType = BusinessType.UPDATE,operContent = "商户进件")
     @ApiOperation(value = "平台商户进件")
-    public R mgtShopAuth(@Validated @RequestBody MgtShopAuthDto mgtShopAuthDto) {
+    public R mgtShopAuth(@Validated @RequestBody MgtShopAuthDto mgtShopAuthDto) throws Exception {
         Long userId = SecurityUtils.getUserId();
         mgtShopAuthDto.setUserId(userId);
         shopService.mgtShopAuth(mgtShopAuthDto);
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
index 15d93e7..6df823e 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.binarywang.wxpay.exception.WxPayException;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
@@ -22,6 +23,8 @@
 import com.ruoyi.shop.service.task.MemberTaskService;
 import com.ruoyi.shop.service.task.ShopFileService;
 import com.ruoyi.shop.service.task.ShopTaskService;
+import com.ruoyi.shop.util.WechatPayUtils;
+import com.ruoyi.shop.util.WxShopUtils;
 import com.ruoyi.shop.util.dto.*;
 import com.ruoyi.system.api.constant.AppErrorConstant;
 import com.ruoyi.system.api.domain.dto.*;
@@ -32,6 +35,7 @@
 import com.ruoyi.system.api.domain.vo.*;
 import com.ruoyi.system.api.service.*;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -114,6 +118,9 @@
 
     @Resource
     private RedisService redisService;
+
+    @Resource
+    private WechatPayUtils wechatPayUtils;
 
     /**
      * 获取商户详情
@@ -789,8 +796,6 @@
         merHomeShopTotalVo.setShopId(shopId);
         Shop shop = this.getById(shopId);
         merHomeShopTotalVo.setShopType(shop.getShopType());
-        merHomeShopTotalVo.setPlatformCouponFlag(shop.getPlatformCouponFlag());
-        merHomeShopTotalVo.setPlatformBirthdayFlag(shop.getPlatformBirthdayFlag());
         MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
         ShopTotal shopTotal = shopTotalService.getById(shopId);
         merHomeShopTotalVo.setShopId(shopId);
@@ -957,7 +962,7 @@
      * @return  void
      */
     @Override
-    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto){
+    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException {
         ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId());
         Shop shop = this.getByShopId(shopAuthentication.getShopId());
         String applyNumber = IdUtils.simpleUUID();
@@ -965,90 +970,7 @@
         shopAuthentication.setApplyNumber(applyNumber);
         shopAuthentication.setAuditStatus(3);
         shopAuthenticationService.saveOrUpdate(shopAuthentication);
-        //生成提交类
-        SubmitInfo submitInfo = new SubmitInfo();
-        submitInfo.setOut_request_no(applyNumber);
-        if(shopAuthentication.getMainType()==2){
-            submitInfo.setOrganization_type("2");
-        }else{
-            submitInfo.setOrganization_type("4");
-        }
-        //营业执照
-        BusinessLicenseInfo business_license_info = new BusinessLicenseInfo();
-        business_license_info.setBusiness_license_copy(shopAuthentication.getBlImage());
-        business_license_info.setBusiness_license_number(shopAuthentication.getBlNumber());
-        business_license_info.setMerchant_name(shopAuthentication.getBlShopName());
-        business_license_info.setLegal_person(shopAuthentication.getBlCorporateName());
-        business_license_info.setCompany_address(shopAuthentication.getBlRegisteredAddress());
-        business_license_info.setBusiness_time(shopAuthentication.getBlBusinessDeanline());
-        submitInfo.setBusiness_license_info(business_license_info);
-        //法人证件
-        submitInfo.setId_doc_type("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
-        IdCardInfo id_card_info = new IdCardInfo();
-        id_card_info.setId_card_copy(shopAuthentication.getLpIcFront());
-        id_card_info.setId_card_national(shopAuthentication.getLpIcBack());
-        id_card_info.setId_card_name(shopAuthentication.getLpCorporateName());
-        id_card_info.setId_card_number(shopAuthentication.getLpIdCard());
-        id_card_info.setId_card_valid_time_begin(shopAuthentication.getLpIcStartDate());
-        id_card_info.setId_card_valid_time(shopAuthentication.getLpIcEndDate());
-        submitInfo.setId_card_info(id_card_info);
-        //企业填写
-        if(shopAuthentication.getMainType()==2){
-            //受益人
-            if(shopAuthentication.getOwner()==1){
-                submitInfo.setOwner(true);
-            }else{
-                submitInfo.setOwner(false);
-                List<UboInfo> ubo_info_list = new ArrayList<>();
-                UboInfo uboInfo = new UboInfo();
-                uboInfo.setUbo_id_doc_type("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
-                uboInfo.setUbo_id_doc_copy(shopAuthentication.getUboIcFront());
-                uboInfo.setUbo_id_doc_copy_back(shopAuthentication.getUboIcBack());
-                uboInfo.setUbo_id_doc_name(shopAuthentication.getUboName());
-                uboInfo.setUbo_id_doc_number(shopAuthentication.getUboIdCard());
-                uboInfo.setUbo_id_doc_address(shopAuthentication.getUboIcAddress());
-                uboInfo.setUbo_id_doc_period_begin(shopAuthentication.getUboIcStartDate());
-                uboInfo.setUbo_id_doc_period_end(shopAuthentication.getUboIcEndDate());
-                ubo_info_list.add(uboInfo);
-                submitInfo.setUbo_info_list(ubo_info_list);
-            }
-        }
-        //结算账户信息
-        AccountInfo accountInfo = new AccountInfo();
-        if(shopAuthentication.getSettlementAccountType().equals("1")){
-            accountInfo.setBank_account_type("74");
-        }else{
-            accountInfo.setBank_account_type("75");
-        }
-        accountInfo.setAccount_bank(shopAuthentication.getSaBank());
-        accountInfo.setAccount_name(shopAuthentication.getSaAccountName());
-        accountInfo.setBank_address_code(shopAuthentication.getSaBankCityCode());
-        accountInfo.setBank_name(shopAuthentication.getSaBankName());
-        accountInfo.setAccount_number(shopAuthentication.getSaNumber());
-        submitInfo.setAccount_info(accountInfo);
-        ContactInfo contactInfo = new ContactInfo();
-        contactInfo.setContact_type("65");
-        contactInfo.setContact_name(shopAuthentication.getLpCorporateName());
-        contactInfo.setContact_id_card_number(shopAuthentication.getLpIdCard());
-        contactInfo.setMobile_phone(shopAuthentication.getLpMobilePhone());
-        contactInfo.setContact_email(shopAuthentication.getLpContactEmail());
-        submitInfo.setContact_info(contactInfo);
-        //店铺信息
-        SalesSceneInfo salesSceneInfo = new SalesSceneInfo();
-        salesSceneInfo.setStore_name(shop.getShopName());
-        salesSceneInfo.setStore_url("");
-        salesSceneInfo.setStore_qr_code("");
-        submitInfo.setSales_scene_info(salesSceneInfo);
-        submitInfo.setMerchant_shortname(shop.getShopName());
-        submitInfo.setBusiness_addition_pics(shopAuthentication.getBaPics());
-        submitInfo.setBusiness_addition_desc(shopAuthentication.getBaDesc());
-        //提交审核
-        /*try {
-            WxShopUtils.ApplymentSubMch(submitInfo);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }*/
-
+        wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop);
     }
 
     /**
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
index ec140ec..5a664f1 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.binarywang.wxpay.exception.WxPayException;
 import com.ruoyi.shop.domain.dto.*;
 import com.ruoyi.shop.domain.vo.*;
 import com.ruoyi.system.api.domain.dto.MerBaseDto;
@@ -207,7 +208,7 @@
      * @param mgtShopAuthDto
      * @return  void
      */
-    void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto);
+    void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException;
 
     /**
      * @description  获取平台商户统计
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java
new file mode 100644
index 0000000..39a768f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java
@@ -0,0 +1,122 @@
+package com.ruoyi.shop.util;
+
+import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsRequest;
+import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
+import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult;
+import com.github.binarywang.wxpay.exception.WxPayException;
+import com.github.binarywang.wxpay.service.EcommerceService;
+import com.github.binarywang.wxpay.service.WxPayService;
+import com.ruoyi.shop.domain.pojo.shop.ShopAuthentication;
+import com.ruoyi.system.api.domain.poji.shop.Shop;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 微信支付
+ */
+@Component
+@AllArgsConstructor
+public class WechatPayUtils {
+    private final WxPayService wxService;
+
+    /**
+     * 电商二级商户进件(提交申请单)
+     */
+    public void ecommerceApply(ShopAuthentication shopAuthentication, String applyNumber, Shop shop) throws WxPayException {
+        EcommerceService ecommerceService = wxService.getEcommerceService();
+        ApplymentsRequest request = new ApplymentsRequest();
+        //生成提交类
+        request.setOutRequestNo(applyNumber);
+        if(shopAuthentication.getMainType()==2){
+            request.setOrganizationType("2");
+        }else{
+            request.setOrganizationType("4");
+        }
+        //营业执照
+        ApplymentsRequest.BusinessLicenseInfo business_license_info = new ApplymentsRequest.BusinessLicenseInfo();
+        business_license_info.setBusinessLicenseCopy(shopAuthentication.getBlImage());
+        business_license_info.setBusinessLicenseNumber(shopAuthentication.getBlNumber());
+        business_license_info.setMerchantName(shopAuthentication.getBlShopName());
+        business_license_info.setLegalPerson(shopAuthentication.getBlCorporateName());
+        business_license_info.setCompanyAddress(shopAuthentication.getBlRegisteredAddress());
+        business_license_info.setBusinessTime(shopAuthentication.getBlBusinessDeanline());
+        request.setBusinessLicenseInfo(business_license_info);
+        //法人证件
+        request.setIdDocType("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
+        ApplymentsRequest.IdCardInfo id_card_info = new ApplymentsRequest.IdCardInfo();
+        id_card_info.setIdCardCopy(shopAuthentication.getLpIcFront());
+        id_card_info.setIdCardNational(shopAuthentication.getLpIcBack());
+        id_card_info.setIdCardName(shopAuthentication.getLpCorporateName());
+        id_card_info.setIdCardNumber(shopAuthentication.getLpIdCard());
+        id_card_info.setIdCardValidTimeBegin(shopAuthentication.getLpIcStartDate());
+        id_card_info.setIdCardValidTime(shopAuthentication.getLpIcEndDate());
+        request.setIdCardInfo(id_card_info);
+        //企业填写
+        if(shopAuthentication.getMainType()==2){
+            //受益人
+            if(shopAuthentication.getOwner()==1){
+                request.setOwner(true);
+            }else{
+                request.setOwner(false);
+                List<ApplymentsRequest.UboInfo> ubo_info_list = new ArrayList<>();
+                ApplymentsRequest.UboInfo uboInfo = new ApplymentsRequest.UboInfo();
+                uboInfo.setUboIdDocType("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
+                uboInfo.setUboIdDocCopy(shopAuthentication.getUboIcFront());
+                uboInfo.setUboIdDocCopyBack(shopAuthentication.getUboIcBack());
+                uboInfo.setUboIdDocName(shopAuthentication.getUboName());
+                uboInfo.setUboIdDocNumber(shopAuthentication.getUboIdCard());
+                uboInfo.setUboIdDocAddress(shopAuthentication.getUboIcAddress());
+                uboInfo.setUboIdDocPeriodBegin(shopAuthentication.getUboIcStartDate());
+                uboInfo.setUboIdDocCopyBack(shopAuthentication.getUboIcEndDate());
+                ubo_info_list.add(uboInfo);
+                request.setUboInfoList(ubo_info_list);
+            }
+        }
+        //结算账户信息
+        ApplymentsRequest.AccountInfo accountInfo = new ApplymentsRequest.AccountInfo();
+        if(shopAuthentication.getSettlementAccountType().equals("1")){
+            accountInfo.setBankAccountType("74");
+        }else{
+            accountInfo.setBankAccountType("75");
+        }
+        accountInfo.setAccountBank(shopAuthentication.getSaBank());
+        accountInfo.setAccountName(shopAuthentication.getSaAccountName());
+        accountInfo.setBankAddressCode(shopAuthentication.getSaBankCityCode());
+        accountInfo.setBankName(shopAuthentication.getSaBankName());
+        accountInfo.setAccountNumber(shopAuthentication.getSaNumber());
+        request.setAccountInfo(accountInfo);
+        ApplymentsRequest.ContactInfo contactInfo = new ApplymentsRequest.ContactInfo();
+        contactInfo.setContactType("65");
+        contactInfo.setContactName(shopAuthentication.getLpCorporateName());
+        contactInfo.setContactIdCardNumber(shopAuthentication.getLpIdCard());
+        contactInfo.setMobilePhone(shopAuthentication.getLpMobilePhone());
+        contactInfo.setContactEmail(shopAuthentication.getLpContactEmail());
+        request.setContactInfo(contactInfo);
+        //店铺信息
+        ApplymentsRequest.SalesSceneInfo salesSceneInfo = new ApplymentsRequest.SalesSceneInfo();
+        salesSceneInfo.setStoreName(shop.getShopName());
+        salesSceneInfo.setStoreUrl("");
+        salesSceneInfo.setStoreQrCode("");
+        request.setSalesSceneInfo(salesSceneInfo);
+        request.setMerchantShortname(shop.getShopName());
+        request.setBusinessAdditionPics(shopAuthentication.getBaPics());
+        request.setBusinessAdditionDesc(shopAuthentication.getBaDesc());
+
+        ApplymentsResult result = ecommerceService.createApply(request);
+    }
+
+
+    /**
+     * 通过查询申请状态API查询二级商户入驻申请结果
+     * @param applyNumber 业务申请编号
+     * @return 申请状态
+     * @throws WxPayException
+     */
+    public ApplymentsStatusResult queryApplyStatusByOutRequestNo(String applyNumber) throws WxPayException {
+        return wxService.getEcommerceService().queryApplyStatusByOutRequestNo(applyNumber);
+    }
+
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml
index 5e8dd18..2ae1777 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml
@@ -25,3 +25,12 @@
         # 共享配置
         shared-configs:
           - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+
+wx:
+  pay:
+    appId: #微信公众号或者小程序等的appid
+    mchId: #微信支付商户号
+    mchKey: #微信支付商户密钥
+    subAppId: #服务商模式下的子商户公众账号ID
+    subMchId: #服务商模式下的子商户号
+    keyPath: # p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头)

--
Gitblit v1.7.1