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