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; }