diff --git a/README.md b/README.md
index 4219dd7..1677836 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,7 @@ Starter,支持微信优惠券,代金券、商家券、智慧商圈、商家
cn.felord
payment-spring-boot-starter
- 1.0.17.RELEASE
+ 1.0.18.RELEASE
```
diff --git a/docs/README.md b/docs/README.md
index 7dc84d4..748e750 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -35,7 +35,7 @@
cn.felord
payment-spring-boot-starter
- 1.0.17.RELEASE
+ 1.0.18.RELEASE
```
## 采用技术
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
index 6be5292..1214bf2 100644
--- a/docs/_sidebar.md
+++ b/docs/_sidebar.md
@@ -2,6 +2,6 @@
* [项目简介](README.md)
* [快速接入](quick_start.md)
* [JavaDoc](apidocs/index.html ':ignore')
-* [微信支付V3接口文档](wechat_v3_api.md)
+* [Payment微信支付V3接口文档](wechat_v3_api.md)
* [日常踩坑](stackoverflow.md)
* [更新日志](changelog.md)
diff --git a/docs/quick_start.md b/docs/quick_start.md
index 3350856..ac4e6b2 100644
--- a/docs/quick_start.md
+++ b/docs/quick_start.md
@@ -4,7 +4,7 @@
cn.felord
payment-spring-boot-starter
- 1.0.17.RELEASE
+ 1.0.18.RELEASE
```
> 基于 **Spring Boot 2.x**
diff --git a/docs/wechat_v3_api.md b/docs/wechat_v3_api.md
index 65a92b6..c8de1c8 100644
--- a/docs/wechat_v3_api.md
+++ b/docs/wechat_v3_api.md
@@ -9,8 +9,8 @@
#### 基础支付
- [x] `WechatDirectPayApi` 基础支付,通过`WechatApiProvider#directPayApi`初始化
- - [x] `jsPay` APP下单
- - [x] `appPay` JSAPI/小程序下单
+ - [x] `jsPay` JSAPI/小程序下单
+ - [x] `appPay` APP下单
- [x] `h5Pay` H5下单
- [x] `nativePay` Native下单
- [x] 查询订单
@@ -24,8 +24,8 @@
- [x] `downloadTradeBill` 申请交易账单,直接下载为gzip或者txt文件
- [x] `downloadFundFlowBill` 申请资金账单,直接下载为gzip或者txt文件
- [x] `WechatCombinePayApi` 合单支付,通过`WechatApiProvider#combinePayApi`初始化
- - [x] `jsPay` 合单APP下单
- - [x] `appPay` 合单JSAPI/小程序下单
+ - [x] `jsPay` 合单JSAPI/小程序下单
+ - [x] `appPay` 合单APP下单
- [x] `h5Pay` 合单H5下单
- [x] `nativePay` 合单Native下单
- [x] `queryTransactionByOutTradeNo` 查询订单,**合单支付目前只支持商户订单号查询**
diff --git a/payment-spring-boot-autoconfigure/pom.xml b/payment-spring-boot-autoconfigure/pom.xml
index 5633c86..3c85483 100644
--- a/payment-spring-boot-autoconfigure/pom.xml
+++ b/payment-spring-boot-autoconfigure/pom.xml
@@ -22,11 +22,11 @@
cn.felord
payment-spring-boot
- 1.0.17.RELEASE
+ 1.0.18.RELEASE
payment-spring-boot-autoconfigure
- 1.0.17.RELEASE
+ 1.0.18.RELEASE
jar
4.0.0
diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/InMemoryWechatTenantService.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/InMemoryWechatTenantService.java
index 78bc9fd..e35272b 100644
--- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/InMemoryWechatTenantService.java
+++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/InMemoryWechatTenantService.java
@@ -20,9 +20,10 @@ package cn.felord.payment.wechat;
import cn.felord.payment.wechat.v3.KeyPairFactory;
import cn.felord.payment.wechat.v3.WechatMetaBean;
import lombok.AllArgsConstructor;
-import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
+import org.springframework.core.io.ResourceLoader;
+import org.springframework.util.ResourceUtils;
import java.util.Map;
import java.util.Set;
@@ -37,6 +38,7 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class InMemoryWechatTenantService implements WechatTenantService {
private final WechatPayProperties wechatPayProperties;
+ private final ResourceLoader resourceLoader;
@Override
public Set loadTenants() {
@@ -51,7 +53,8 @@ public class InMemoryWechatTenantService implements WechatTenantService {
String certAbsolutePath = v3.getCertAbsolutePath();
String mchId = v3.getMchId();
Resource resource = certAbsolutePath != null ? new FileSystemResource(certAbsolutePath) :
- new ClassPathResource(certPath == null ? "wechat/apiclient_cert.p12" : certPath);
+ resourceLoader.getResource(certPath == null ? "classpath:wechat/apiclient_cert.p12" :
+ certPath.startsWith(ResourceUtils.CLASSPATH_URL_PREFIX) ? certPath : ResourceUtils.CLASSPATH_URL_PREFIX + certPath);
WechatMetaBean wechatMetaBean = keyPairFactory.initWechatMetaBean(resource, mchId);
wechatMetaBean.setV3(v3);
wechatMetaBean.setTenantId(tenantId);
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 f2c77c5..56b3a04 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
@@ -43,9 +43,7 @@ public class WechatPayConfiguration {
@Bean
@ConditionalOnMissingBean
WechatMetaContainer wechatMetaContainer(WechatTenantService wechatTenantService) {
- WechatMetaContainer container = new WechatMetaContainer();
- container.addWechatMetas(wechatTenantService.loadTenants());
- return container;
+ return new WechatMetaContainer(wechatTenantService);
}
/**
diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatTenantServiceConfiguration.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatTenantServiceConfiguration.java
index a34e312..575c93e 100644
--- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatTenantServiceConfiguration.java
+++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatTenantServiceConfiguration.java
@@ -22,6 +22,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.ResourceLoader;
/**
* The type Wechat tenant service configuration.
@@ -42,7 +43,7 @@ public class WechatTenantServiceConfiguration {
*/
@Bean
@ConditionalOnMissingBean
- public WechatTenantService wechatTenantService(WechatPayProperties wechatPayProperties) {
- return new InMemoryWechatTenantService(wechatPayProperties);
+ public WechatTenantService wechatTenantService(WechatPayProperties wechatPayProperties, ResourceLoader resourceLoader) {
+ return new InMemoryWechatTenantService(wechatPayProperties, resourceLoader);
}
}
diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v2/model/RefundModel.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v2/model/RefundModel.java
deleted file mode 100644
index 8f094c6..0000000
--- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v2/model/RefundModel.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2019-2022 felord.cn
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- * Website:
- * https://felord.cn
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package cn.felord.payment.wechat.v2.model;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author felord.cn
- * @since 1.0.4.RELEASE
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-public class RefundModel extends BaseModel {
-
- private String appid;
- private String mchId;
- private String signType="MD5";
- private String transactionId;
- private String outTradeNo;
- private String outRefundNo;
- private Integer totalFee;
- private Integer refundFee;
- private String refundFeeType="CNY";
- private String refundDesc;
- private String refundAccount;
- private String notifyUrl;
-
-}
diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v2/model/RefundQueryModel.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v2/model/RefundQueryModel.java
deleted file mode 100644
index 6c9c415..0000000
--- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v2/model/RefundQueryModel.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2019-2022 felord.cn
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- * Website:
- * https://felord.cn
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package cn.felord.payment.wechat.v2.model;
-
-/**
- * @author felord.cn
- * @since 1.0.4.RELEASE
- */
-public class RefundQueryModel {
-}
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 5109bec..d82c0ca 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
@@ -17,6 +17,9 @@
package cn.felord.payment.wechat.v3;
+import cn.felord.payment.wechat.WechatTenantService;
+import lombok.AllArgsConstructor;
+
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListSet;
@@ -27,10 +30,11 @@ import java.util.concurrent.ConcurrentSkipListSet;
* @author felord.cn
* @since 1.0.0.RELEASE
*/
+@AllArgsConstructor
public class WechatMetaContainer {
private final Map wechatMetaBeanMap = new ConcurrentHashMap<>();
private final Set tenantIds = new ConcurrentSkipListSet<>();
-
+ private final WechatTenantService wechatTenantService;
/**
* Add wechat metas.
@@ -66,7 +70,14 @@ public class WechatMetaContainer {
* @return the wechat meta
*/
public WechatMetaBean getWechatMeta(String tenantId) {
- return Objects.requireNonNull(this.wechatMetaBeanMap.get(tenantId));
+ WechatMetaBean wechatMetaBean = this.wechatMetaBeanMap.get(tenantId);
+ if (Objects.nonNull(wechatMetaBean)) {
+ return wechatMetaBean;
+ } else {
+ this.addWechatMetas(wechatTenantService.loadTenants());
+ return Objects.requireNonNull(this.wechatMetaBeanMap.get(tenantId),
+ "cant obtain the config with tenant: "+tenantId);
+ }
}
/**
diff --git a/payment-spring-boot-starter/pom.xml b/payment-spring-boot-starter/pom.xml
index d02ac7a..9469996 100644
--- a/payment-spring-boot-starter/pom.xml
+++ b/payment-spring-boot-starter/pom.xml
@@ -22,11 +22,11 @@
cn.felord
payment-spring-boot
- 1.0.17.RELEASE
+ 1.0.18.RELEASE
payment-spring-boot-starter
- 1.0.17.RELEASE
+ 1.0.18.RELEASE
jar
4.0.0
diff --git a/pom.xml b/pom.xml
index 40fe902..eae2276 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
cn.felord
payment-spring-boot
- 1.0.17.RELEASE
+ 1.0.18.RELEASE
pom
4.0.0
@@ -47,7 +47,7 @@
- payment-spring-boot-1.0.14.RELEASE
+ payment-spring-boot-1.0.18.RELEASE
https://github.com/NotFound403/payment-spring-boot
scm:git:https://github.com/NotFound403/payment-spring-boot.git
scm:git:https://github.com/NotFound403/payment-spring-boot.git