From e9d80cecc7121bee9c6b71dc331ac7204a164d1a Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sun, 27 Apr 2025 04:33:33 +0800
Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=EF=BC=8C=E6=94=AF=E6=8C=81?=
=?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=96=B0=E7=9A=84=E5=85=AC=E9=92=A5=E6=94=AF?=
=?UTF-8?q?=E4=BB=98=E6=A8=A1=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../basic/pay/adapter/WxMpPayAdapter.java | 27 ++++++++++++++-----
.../ycwl/basic/pay/entity/WxMpPayConfig.java | 2 ++
3 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/pom.xml b/pom.xml
index fe62cb4..79815d8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,7 +36,7 @@
com.github.wechatpay-apiv3
wechatpay-java
- 0.2.12
+ 0.2.14
diff --git a/src/main/java/com/ycwl/basic/pay/adapter/WxMpPayAdapter.java b/src/main/java/com/ycwl/basic/pay/adapter/WxMpPayAdapter.java
index ca57307..0e35f4e 100644
--- a/src/main/java/com/ycwl/basic/pay/adapter/WxMpPayAdapter.java
+++ b/src/main/java/com/ycwl/basic/pay/adapter/WxMpPayAdapter.java
@@ -2,6 +2,7 @@ package com.ycwl.basic.pay.adapter;
import com.wechat.pay.java.core.Config;
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.NotificationParser;
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.WxMpPayConfig;
import com.ycwl.basic.pay.exceptions.PayWrongConfigException;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Base64Utils;
import javax.servlet.ServletInputStream;
@@ -72,6 +74,8 @@ public class WxMpPayAdapter implements IPayAdapter {
this.config.setAppId(_config.get("appId"));
this.config.setPrivateKey(_config.get("privateKey"));
this.config.setSerialNumber(_config.get("serialNumber"));
+ this.config.setWxPublicKey(_config.get("wxPublicKey"));
+ this.config.setWxPublicKeyId(_config.get("wxPublicKeyId"));
this.config.setApiV3Key(_config.get("apiV3Key"));
}
}
@@ -80,12 +84,23 @@ public class WxMpPayAdapter implements IPayAdapter {
private Config getConfig() {
if (clientConfig == null) {
- clientConfig = new RSAAutoCertificateConfig.Builder()
- .merchantId(config.getMerchantId())
- .privateKey(config.getPrivateKey())
- .merchantSerialNumber(config.getSerialNumber())
- .apiV3Key(config.getApiV3Key())
- .build();
+ if (StringUtils.isNotBlank(config.getWxPublicKeyId())) {
+ clientConfig = new RSAPublicKeyConfig.Builder()
+ .merchantId(config.getMerchantId())
+ .privateKey(config.getPrivateKey())
+ .merchantSerialNumber(config.getSerialNumber())
+ .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;
}
diff --git a/src/main/java/com/ycwl/basic/pay/entity/WxMpPayConfig.java b/src/main/java/com/ycwl/basic/pay/entity/WxMpPayConfig.java
index 6d2ade4..600fabc 100644
--- a/src/main/java/com/ycwl/basic/pay/entity/WxMpPayConfig.java
+++ b/src/main/java/com/ycwl/basic/pay/entity/WxMpPayConfig.java
@@ -7,6 +7,8 @@ public class WxMpPayConfig {
private String merchantId;
private String appId;
private String privateKey;
+ private String wxPublicKey;
+ private String wxPublicKeyId;
private String serialNumber;
private String apiV3Key;
}