diff --git a/weixin-java-pay/pom.xml b/weixin-java-pay/pom.xml
index e9df87aa0..01517f738 100644
--- a/weixin-java-pay/pom.xml
+++ b/weixin-java-pay/pom.xml
@@ -13,11 +13,6 @@
WxJava - PAY Java SDK
微信支付 Java SDK
-
- 1.8
- 1.8
-
-
com.github.binarywang
@@ -84,6 +79,11 @@
com.google.code.gson
gson
+
+ joda-time
+ joda-time
+ compile
+
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 fe4b22805..6d9bebdc6 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
@@ -4,8 +4,8 @@ import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.v3.WxPayV3HttpClientBuilder;
import com.github.binarywang.wxpay.v3.auth.AutoUpdateCertificatesVerifier;
import com.github.binarywang.wxpay.v3.auth.PrivateKeySigner;
-import com.github.binarywang.wxpay.v3.auth.WechatPay2Credentials;
-import com.github.binarywang.wxpay.v3.auth.WechatPay2Validator;
+import com.github.binarywang.wxpay.v3.auth.WxPayCredentials;
+import com.github.binarywang.wxpay.v3.auth.WxPayValidator;
import com.github.binarywang.wxpay.v3.util.PemUtils;
import jodd.util.ResourcesUtil;
import lombok.Data;
@@ -300,8 +300,8 @@ public class WxPayConfig {
CloseableHttpClient httpClient = WxPayV3HttpClientBuilder.create()
.withMerchant(mchId, certSerialNo, merchantPrivateKey)
.withWechatpay(Collections.singletonList(PemUtils.loadCertificate(certInputStream)))
- .withValidator(new WechatPay2Validator(new AutoUpdateCertificatesVerifier(
- new WechatPay2Credentials(mchId, new PrivateKeySigner(certSerialNo, merchantPrivateKey)),
+ .withValidator(new WxPayValidator(new AutoUpdateCertificatesVerifier(
+ new WxPayCredentials(mchId, new PrivateKeySigner(certSerialNo, merchantPrivateKey)),
apiV3Key.getBytes(StandardCharsets.UTF_8))))
.build();
this.apiV3HttpClient = httpClient;
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/WxPayV3HttpClientBuilder.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/WxPayV3HttpClientBuilder.java
index 87f4b0558..986a8f4cb 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/WxPayV3HttpClientBuilder.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/WxPayV3HttpClientBuilder.java
@@ -7,8 +7,8 @@ import java.util.List;
import com.github.binarywang.wxpay.v3.auth.CertificatesVerifier;
import com.github.binarywang.wxpay.v3.auth.PrivateKeySigner;
-import com.github.binarywang.wxpay.v3.auth.WechatPay2Credentials;
-import com.github.binarywang.wxpay.v3.auth.WechatPay2Validator;
+import com.github.binarywang.wxpay.v3.auth.WxPayCredentials;
+import com.github.binarywang.wxpay.v3.auth.WxPayValidator;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.execchain.ClientExecChain;
@@ -37,7 +37,7 @@ public class WxPayV3HttpClientBuilder extends HttpClientBuilder {
public WxPayV3HttpClientBuilder withMerchant(String merchantId, String serialNo, PrivateKey privateKey) {
this.credentials =
- new WechatPay2Credentials(merchantId, new PrivateKeySigner(serialNo, privateKey));
+ new WxPayCredentials(merchantId, new PrivateKeySigner(serialNo, privateKey));
return this;
}
@@ -47,7 +47,7 @@ public class WxPayV3HttpClientBuilder extends HttpClientBuilder {
}
public WxPayV3HttpClientBuilder withWechatpay(List certificates) {
- this.validator = new WechatPay2Validator(new CertificatesVerifier(certificates));
+ this.validator = new WxPayValidator(new CertificatesVerifier(certificates));
return this;
}
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 2110b2d7e..59ad93cb7 100644
--- 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
@@ -3,6 +3,7 @@ package com.github.binarywang.wxpay.v3.auth;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.binarywang.wxpay.v3.Credentials;
+import com.github.binarywang.wxpay.v3.Validator;
import com.github.binarywang.wxpay.v3.WxPayV3HttpClientBuilder;
import com.github.binarywang.wxpay.v3.util.AesUtils;
import com.github.binarywang.wxpay.v3.util.PemUtils;
@@ -13,6 +14,8 @@ import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils;
+import org.joda.time.Instant;
+import org.joda.time.Minutes;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -21,8 +24,6 @@ import java.security.GeneralSecurityException;
import java.security.cert.CertificateExpiredException;
import java.security.cert.CertificateNotYetValidException;
import java.security.cert.X509Certificate;
-import java.time.Duration;
-import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.locks.ReentrantLock;
@@ -98,7 +99,7 @@ public class AutoUpdateCertificatesVerifier implements Verifier {
@Override
public boolean verify(String serialNumber, byte[] message, String signature) {
- if (instant == null || Duration.between(instant, Instant.now()).toMinutes() >= minutesInterval) {
+ if (instant == null || Minutes.minutesBetween(instant, Instant.now()).getMinutes() >= minutesInterval) {
if (lock.tryLock()) {
try {
autoUpdateCert();
@@ -117,7 +118,12 @@ public class AutoUpdateCertificatesVerifier implements Verifier {
private void autoUpdateCert() throws IOException, GeneralSecurityException {
CloseableHttpClient httpClient = WxPayV3HttpClientBuilder.create()
.withCredentials(credentials)
- .withValidator(verifier == null ? (response) -> true : new WechatPay2Validator(verifier))
+ .withValidator(verifier == null ? new Validator() {
+ @Override
+ public boolean validate(CloseableHttpResponse response) throws IOException {
+ return true;
+ }
+ } : new WxPayValidator(verifier))
.build();
HttpGet httpGet = new HttpGet(CERT_DOWNLOAD_PATH);
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WechatPay2Credentials.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WxPayCredentials.java
similarity index 92%
rename from weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WechatPay2Credentials.java
rename to weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WxPayCredentials.java
index a0730bdda..2654e8675 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WechatPay2Credentials.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WxPayCredentials.java
@@ -6,22 +6,22 @@ import java.net.URI;
import java.security.SecureRandom;
import com.github.binarywang.wxpay.v3.Credentials;
+import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class WechatPay2Credentials implements Credentials {
- private static final Logger log = LoggerFactory.getLogger(WechatPay2Credentials.class);
-
+@Slf4j
+public class WxPayCredentials implements Credentials {
private static final String SYMBOLS =
"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static final SecureRandom RANDOM = new SecureRandom();
protected String merchantId;
protected Signer signer;
- public WechatPay2Credentials(String merchantId, Signer signer) {
+ public WxPayCredentials(String merchantId, Signer signer) {
this.merchantId = merchantId;
this.signer = signer;
}
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WechatPay2Validator.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WxPayValidator.java
similarity index 89%
rename from weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WechatPay2Validator.java
rename to weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WxPayValidator.java
index 38735c61c..c83f8853e 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WechatPay2Validator.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/WxPayValidator.java
@@ -4,20 +4,18 @@ package com.github.binarywang.wxpay.v3.auth;
import java.io.IOException;
import com.github.binarywang.wxpay.v3.Validator;
+import lombok.extern.slf4j.Slf4j;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-public class WechatPay2Validator implements Validator {
-
- private static final Logger log = LoggerFactory.getLogger(WechatPay2Validator.class);
-
+@Slf4j
+public class WxPayValidator implements Validator {
private Verifier verifier;
- public WechatPay2Validator(Verifier verifier) {
+ public WxPayValidator(Verifier verifier) {
this.verifier = verifier;
}