You've already forked FrameTour-BE
支付,支持微信新的公钥支付模式
This commit is contained in:
2
pom.xml
2
pom.xml
@ -36,7 +36,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.wechatpay-apiv3</groupId>
|
<groupId>com.github.wechatpay-apiv3</groupId>
|
||||||
<artifactId>wechatpay-java</artifactId>
|
<artifactId>wechatpay-java</artifactId>
|
||||||
<version>0.2.12</version>
|
<version>0.2.14</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- 引入aop相关 -->
|
<!-- 引入aop相关 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -2,6 +2,7 @@ package com.ycwl.basic.pay.adapter;
|
|||||||
|
|
||||||
import com.wechat.pay.java.core.Config;
|
import com.wechat.pay.java.core.Config;
|
||||||
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
|
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
|
||||||
|
import com.wechat.pay.java.core.RSAPublicKeyConfig;
|
||||||
import com.wechat.pay.java.core.notification.NotificationConfig;
|
import com.wechat.pay.java.core.notification.NotificationConfig;
|
||||||
import com.wechat.pay.java.core.notification.NotificationParser;
|
import com.wechat.pay.java.core.notification.NotificationParser;
|
||||||
import com.wechat.pay.java.core.notification.RequestParam;
|
import com.wechat.pay.java.core.notification.RequestParam;
|
||||||
@ -30,6 +31,7 @@ import com.ycwl.basic.pay.entity.RefundOrderRequest;
|
|||||||
import com.ycwl.basic.pay.entity.RefundOrderResponse;
|
import com.ycwl.basic.pay.entity.RefundOrderResponse;
|
||||||
import com.ycwl.basic.pay.entity.WxMpPayConfig;
|
import com.ycwl.basic.pay.entity.WxMpPayConfig;
|
||||||
import com.ycwl.basic.pay.exceptions.PayWrongConfigException;
|
import com.ycwl.basic.pay.exceptions.PayWrongConfigException;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.util.Base64Utils;
|
import org.springframework.util.Base64Utils;
|
||||||
|
|
||||||
import javax.servlet.ServletInputStream;
|
import javax.servlet.ServletInputStream;
|
||||||
@ -72,6 +74,8 @@ public class WxMpPayAdapter implements IPayAdapter {
|
|||||||
this.config.setAppId(_config.get("appId"));
|
this.config.setAppId(_config.get("appId"));
|
||||||
this.config.setPrivateKey(_config.get("privateKey"));
|
this.config.setPrivateKey(_config.get("privateKey"));
|
||||||
this.config.setSerialNumber(_config.get("serialNumber"));
|
this.config.setSerialNumber(_config.get("serialNumber"));
|
||||||
|
this.config.setWxPublicKey(_config.get("wxPublicKey"));
|
||||||
|
this.config.setWxPublicKeyId(_config.get("wxPublicKeyId"));
|
||||||
this.config.setApiV3Key(_config.get("apiV3Key"));
|
this.config.setApiV3Key(_config.get("apiV3Key"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -80,12 +84,23 @@ public class WxMpPayAdapter implements IPayAdapter {
|
|||||||
|
|
||||||
private Config getConfig() {
|
private Config getConfig() {
|
||||||
if (clientConfig == null) {
|
if (clientConfig == null) {
|
||||||
clientConfig = new RSAAutoCertificateConfig.Builder()
|
if (StringUtils.isNotBlank(config.getWxPublicKeyId())) {
|
||||||
.merchantId(config.getMerchantId())
|
clientConfig = new RSAPublicKeyConfig.Builder()
|
||||||
.privateKey(config.getPrivateKey())
|
.merchantId(config.getMerchantId())
|
||||||
.merchantSerialNumber(config.getSerialNumber())
|
.privateKey(config.getPrivateKey())
|
||||||
.apiV3Key(config.getApiV3Key())
|
.merchantSerialNumber(config.getSerialNumber())
|
||||||
.build();
|
.publicKey(config.getWxPublicKey())
|
||||||
|
.publicKeyId(config.getWxPublicKeyId())
|
||||||
|
.apiV3Key(config.getApiV3Key())
|
||||||
|
.build();
|
||||||
|
} else {
|
||||||
|
clientConfig = new RSAAutoCertificateConfig.Builder()
|
||||||
|
.merchantId(config.getMerchantId())
|
||||||
|
.privateKey(config.getPrivateKey())
|
||||||
|
.merchantSerialNumber(config.getSerialNumber())
|
||||||
|
.apiV3Key(config.getApiV3Key())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return clientConfig;
|
return clientConfig;
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,8 @@ public class WxMpPayConfig {
|
|||||||
private String merchantId;
|
private String merchantId;
|
||||||
private String appId;
|
private String appId;
|
||||||
private String privateKey;
|
private String privateKey;
|
||||||
|
private String wxPublicKey;
|
||||||
|
private String wxPublicKeyId;
|
||||||
private String serialNumber;
|
private String serialNumber;
|
||||||
private String apiV3Key;
|
private String apiV3Key;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user