From 8127af7e98a14e17e0285ac0a4ae4211a709344d Mon Sep 17 00:00:00 2001 From: xiafang Date: Fri, 11 Dec 2020 11:35:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/quick_start.md | 12 ++++++++++++ .../wechat/WechatPayConfiguration.java | 6 ++++-- .../wechat/v3/WechatMetaContainer.java | 19 +++++-------------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/docs/quick_start.md b/docs/quick_start.md index de518a5..e42d164 100644 --- a/docs/quick_start.md +++ b/docs/quick_start.md @@ -2,6 +2,18 @@ > ❗注意:目前并没有上传到Maven中央仓库,等稳定后会进行支持。 + +## Spring Boot 版本适配 + +克隆项目后修改根目录下的`pom.xml`以下配置项: +```xml + + + 2.4.0 + +``` + + ## 自行安装 以**Spring Boot Starter**的形式集成到项目中。从[GitHub项目地址](https://github.com/NotFound403/payment-spring-boot)拉取`release`分支到本地后使用以下两种方式之一进行环境集成: diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java index 2a7eb43..dec0ba0 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java @@ -2,6 +2,7 @@ package cn.felord.payment.wechat; import cn.felord.payment.wechat.v3.*; +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; @@ -23,19 +24,20 @@ public class WechatPayConfiguration { * @return the wechat cert bean */ @Bean + @ConditionalOnMissingBean WechatMetaContainer wechatMetaContainer(WechatPayProperties wechatPayProperties) { Map v3Map = wechatPayProperties.getV3(); WechatMetaContainer container = new WechatMetaContainer(); + KeyPairFactory keyPairFactory = new KeyPairFactory(); v3Map.keySet().forEach(tenantId -> { WechatPayProperties.V3 v3 = v3Map.get(tenantId); String certPath = v3.getCertPath(); String mchId = v3.getMchId(); - WechatMetaBean wechatMetaBean = new KeyPairFactory().createPKCS12(certPath, CERT_ALIAS, mchId); + WechatMetaBean wechatMetaBean = keyPairFactory.createPKCS12(certPath, CERT_ALIAS, mchId); wechatMetaBean.setV3(v3); wechatMetaBean.setTenantId(tenantId); container.addWechatMeta(tenantId, wechatMetaBean); - container.addTenant(tenantId); }); return container; } diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java index 2fcdd73..698ba00 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java @@ -1,6 +1,5 @@ package cn.felord.payment.wechat.v3; -import lombok.Data; import java.util.*; @@ -18,12 +17,13 @@ public class WechatMetaContainer { /** * Add wechat meta boolean. * - * @param tenantId the tenantId + * @param tenantId the tenantId * @param wechatMetaBean the wechat meta bean * @return the boolean */ - public boolean addWechatMeta(String tenantId, WechatMetaBean wechatMetaBean) { - return Objects.nonNull(this.wechatMetaBeanMap.put(tenantId, wechatMetaBean)); + public WechatMetaBean addWechatMeta(String tenantId, WechatMetaBean wechatMetaBean) { + tenantIds.add(tenantId); + return this.wechatMetaBeanMap.put(tenantId, wechatMetaBean); } /** @@ -33,6 +33,7 @@ public class WechatMetaContainer { * @return the wechat meta bean */ public WechatMetaBean removeWechatMeta(String tenantId) { + tenantIds.remove(tenantId); return this.wechatMetaBeanMap.remove(tenantId); } @@ -46,16 +47,6 @@ public class WechatMetaContainer { return Objects.requireNonNull(this.wechatMetaBeanMap.get(tenantId)); } - /** - * Add key boolean. - * - * @param tenantId the tenant id - * @return the boolean - */ - public boolean addTenant(String tenantId) { - return tenantIds.add(tenantId); - } - /** * Gets properties keys. *