Skip to content

Commit 581144c

Browse files
Copilotbinarywang
andcommitted
修复完全公钥模式配置:在 Spring Boot Starter 和 Solon 插件中添加 fullPublicKeyModel 和 strictlyNeedWechatPaySerial 属性支持
Co-authored-by: binarywang <1343140+binarywang@users.noreply.github.com>
1 parent 5761f16 commit 581144c

4 files changed

Lines changed: 55 additions & 0 deletions

File tree

solon-plugins/wx-java-pay-solon-plugin/src/main/java/com/binarywang/solon/wxjava/pay/config/WxPayAutoConfiguration.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,17 @@ public WxPayService wxPayService() {
4949
//以下是apiv3以及支付分相关
5050
payConfig.setServiceId(StringUtils.trimToNull(this.properties.getServiceId()));
5151
payConfig.setPayScoreNotifyUrl(StringUtils.trimToNull(this.properties.getPayScoreNotifyUrl()));
52+
payConfig.setPayScorePermissionNotifyUrl(StringUtils.trimToNull(this.properties.getPayScorePermissionNotifyUrl()));
5253
payConfig.setPrivateKeyPath(StringUtils.trimToNull(this.properties.getPrivateKeyPath()));
5354
payConfig.setPrivateCertPath(StringUtils.trimToNull(this.properties.getPrivateCertPath()));
5455
payConfig.setCertSerialNo(StringUtils.trimToNull(this.properties.getCertSerialNo()));
5556
payConfig.setApiV3Key(StringUtils.trimToNull(this.properties.getApiv3Key()));
57+
payConfig.setPublicKeyId(StringUtils.trimToNull(this.properties.getPublicKeyId()));
58+
payConfig.setPublicKeyPath(StringUtils.trimToNull(this.properties.getPublicKeyPath()));
59+
payConfig.setApiHostUrl(StringUtils.trimToNull(this.properties.getApiHostUrl()));
60+
payConfig.setNotifyUrl(StringUtils.trimToNull(this.properties.getNotifyUrl()));
61+
payConfig.setStrictlyNeedWechatPaySerial(this.properties.isStrictlyNeedWechatPaySerial());
62+
payConfig.setFullPublicKeyModel(this.properties.isFullPublicKeyModel());
5663

5764
wxPayService.setConfig(payConfig);
5865
return wxPayService;

solon-plugins/wx-java-pay-solon-plugin/src/main/java/com/binarywang/solon/wxjava/pay/properties/WxPayProperties.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,40 @@ public class WxPayProperties {
8282
*/
8383
private boolean useSandboxEnv;
8484

85+
/**
86+
* 微信支付异步回调地址,通知url必须为直接可访问的url,不能携带参数
87+
*/
88+
private String notifyUrl;
89+
90+
/**
91+
* 微信支付分授权回调地址
92+
*/
93+
private String payScorePermissionNotifyUrl;
94+
95+
/**
96+
* 公钥ID
97+
*/
98+
private String publicKeyId;
99+
100+
/**
101+
* pub_key.pem证书文件的绝对路径或者以classpath:开头的类路径.
102+
*/
103+
private String publicKeyPath;
104+
105+
/**
106+
* 自定义API主机地址,用于替换默认的 https://api.mch.weixin.qq.com
107+
* 例如:http://proxy.company.com:8080
108+
*/
109+
private String apiHostUrl;
110+
111+
/**
112+
* 是否将全部v3接口的请求都添加Wechatpay-Serial请求头,默认不添加
113+
*/
114+
private boolean strictlyNeedWechatPaySerial = false;
115+
116+
/**
117+
* 是否完全使用公钥模式(用以微信从平台证书到公钥的灰度切换),默认不使用
118+
*/
119+
private boolean fullPublicKeyModel = false;
120+
85121
}

spring-boot-starters/wx-java-pay-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/pay/config/WxPayAutoConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ public WxPayService wxPayService() {
6262
payConfig.setPublicKeyId(StringUtils.trimToNull(this.properties.getPublicKeyId()));
6363
payConfig.setPublicKeyPath(StringUtils.trimToNull(this.properties.getPublicKeyPath()));
6464
payConfig.setApiHostUrl(StringUtils.trimToNull(this.properties.getApiHostUrl()));
65+
payConfig.setStrictlyNeedWechatPaySerial(this.properties.isStrictlyNeedWechatPaySerial());
66+
payConfig.setFullPublicKeyModel(this.properties.isFullPublicKeyModel());
6567

6668
wxPayService.setConfig(payConfig);
6769
return wxPayService;

spring-boot-starters/wx-java-pay-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/pay/properties/WxPayProperties.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,14 @@ public class WxPayProperties {
106106
*/
107107
private String apiHostUrl;
108108

109+
/**
110+
* 是否将全部v3接口的请求都添加Wechatpay-Serial请求头,默认不添加
111+
*/
112+
private boolean strictlyNeedWechatPaySerial = false;
113+
114+
/**
115+
* 是否完全使用公钥模式(用以微信从平台证书到公钥的灰度切换),默认不使用
116+
*/
117+
private boolean fullPublicKeyModel = false;
118+
109119
}

0 commit comments

Comments
 (0)