From 573f0f5e6fee9b0ac1e2b75690c9e6b9f387984f Mon Sep 17 00:00:00 2001 From: 96XL <41610506+96XL@users.noreply.github.com> Date: Mon, 4 Mar 2024 16:15:23 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20#3242=20=E3=80=90=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E3=80=91=E4=BF=AE=E6=94=B9=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AF=81=E4=B9=A6=E6=8E=A5=E5=8F=A3=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=EF=BC=8C=E4=BD=BF=E7=94=A8WxPayConfig=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E7=9A=84payBaseUrl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binarywang/wxpay/config/WxPayConfig.java | 2 +- .../v3/auth/AutoUpdateCertificatesVerifier.java | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java index daf8592f6..b87b3168a 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java @@ -278,7 +278,7 @@ public class WxPayConfig { AutoUpdateCertificatesVerifier certificatesVerifier = new AutoUpdateCertificatesVerifier( new WxPayCredentials(mchId, new PrivateKeySigner(certSerialNo, merchantPrivateKey)), - this.getApiV3Key().getBytes(StandardCharsets.UTF_8), this.getCertAutoUpdateTime(), wxPayHttpProxy); + this.getApiV3Key().getBytes(StandardCharsets.UTF_8), this.getCertAutoUpdateTime(), this.getPayBaseUrl(), wxPayHttpProxy); WxPayV3HttpClientBuilder wxPayV3HttpClientBuilder = WxPayV3HttpClientBuilder.create() .withMerchant(mchId, certSerialNo, merchantPrivateKey) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/AutoUpdateCertificatesVerifier.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/AutoUpdateCertificatesVerifier.java index 7b39aad36..abcae7dff 100755 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/AutoUpdateCertificatesVerifier.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/AutoUpdateCertificatesVerifier.java @@ -46,7 +46,7 @@ public class AutoUpdateCertificatesVerifier implements Verifier { /** * 证书下载地址 */ - private static final String CERT_DOWNLOAD_PATH = "https://api.mch.weixin.qq.com/v3/certificates"; + private static final String CERT_DOWNLOAD_PATH = "/v3/certificates"; /** * 上次更新时间 @@ -64,6 +64,8 @@ public class AutoUpdateCertificatesVerifier implements Verifier { private final byte[] apiV3Key; + private String payBaseUrl ; + private final ReentrantLock lock = new ReentrantLock(); /** @@ -93,18 +95,19 @@ public class AutoUpdateCertificatesVerifier implements Verifier { private final int minutes; } - public AutoUpdateCertificatesVerifier(Credentials credentials, byte[] apiV3Key) { - this(credentials, apiV3Key, TimeInterval.OneHour.getMinutes()); + public AutoUpdateCertificatesVerifier(Credentials credentials, byte[] apiV3Key, String payBaseUrl) { + this(credentials, apiV3Key, TimeInterval.OneHour.getMinutes(), payBaseUrl); } - public AutoUpdateCertificatesVerifier(Credentials credentials, byte[] apiV3Key, int minutesInterval) { - this(credentials,apiV3Key,minutesInterval,null); + public AutoUpdateCertificatesVerifier(Credentials credentials, byte[] apiV3Key, int minutesInterval, String payBaseUrl) { + this(credentials, apiV3Key, minutesInterval, payBaseUrl, null); } - public AutoUpdateCertificatesVerifier(Credentials credentials, byte[] apiV3Key, int minutesInterval,WxPayHttpProxy wxPayHttpProxy) { + public AutoUpdateCertificatesVerifier(Credentials credentials, byte[] apiV3Key, int minutesInterval, String payBaseUrl, WxPayHttpProxy wxPayHttpProxy) { this.credentials = credentials; this.apiV3Key = apiV3Key; this.minutesInterval = minutesInterval; + this.payBaseUrl = payBaseUrl; this.wxPayHttpProxy = wxPayHttpProxy; //构造时更新证书 try { @@ -153,7 +156,7 @@ public class AutoUpdateCertificatesVerifier implements Verifier { CloseableHttpClient httpClient = wxPayV3HttpClientBuilder.build(); - HttpGet httpGet = new HttpGet(CERT_DOWNLOAD_PATH); + HttpGet httpGet = new HttpGet(this.payBaseUrl + CERT_DOWNLOAD_PATH); httpGet.addHeader("Accept", "application/json"); CloseableHttpResponse response = httpClient.execute(httpGet);