mirror of
https://gitee.com/egzosn/pay-java-parent.git
synced 2026-09-03 05:24:28 +08:00
@@ -22,7 +22,7 @@
|
||||
<dependency>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<artifactId>{module-name}</artifactId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</dependency>
|
||||
|
||||
```
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>pay-java-ali</artifactId>
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory;
|
||||
import com.egzosn.pay.common.bean.result.PayException;
|
||||
import com.egzosn.pay.common.exception.PayErrorException;
|
||||
import com.egzosn.pay.common.util.IOUtils;
|
||||
import com.egzosn.pay.common.util.sign.SignUtils;
|
||||
import com.egzosn.pay.common.util.sign.encrypt.Base64;
|
||||
import com.egzosn.pay.common.util.str.StringUtils;
|
||||
|
||||
@@ -41,7 +42,9 @@ import com.egzosn.pay.common.util.str.StringUtils;
|
||||
public class AntCertificationUtil {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(AntCertificationUtil.class);
|
||||
|
||||
|
||||
static {
|
||||
SignUtils.initBc();
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证证书是否可信
|
||||
@@ -54,7 +57,8 @@ public class AntCertificationUtil {
|
||||
X509Certificate[] certificates;
|
||||
try {
|
||||
certificates = readPemCertChain(certContent);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
catch (Exception e) {
|
||||
LOGGER.error("读取证书失败", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
@@ -63,7 +67,8 @@ public class AntCertificationUtil {
|
||||
try {
|
||||
X509Certificate[] certs = readPemCertChain(rootCertContent);
|
||||
rootCerts.addAll(Arrays.asList(certs));
|
||||
} catch (Exception e) {
|
||||
}
|
||||
catch (Exception e) {
|
||||
LOGGER.error("读取根证书失败", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
@@ -81,10 +86,12 @@ public class AntCertificationUtil {
|
||||
private static boolean verifyCert(X509Certificate cert, X509Certificate[] rootCerts) {
|
||||
try {
|
||||
cert.checkValidity();
|
||||
} catch (CertificateExpiredException e) {
|
||||
}
|
||||
catch (CertificateExpiredException e) {
|
||||
LOGGER.error("证书已经过期", e);
|
||||
return false;
|
||||
} catch (CertificateNotYetValidException e) {
|
||||
}
|
||||
catch (CertificateNotYetValidException e) {
|
||||
LOGGER.error("证书未激活", e);
|
||||
return false;
|
||||
}
|
||||
@@ -104,7 +111,8 @@ public class AntCertificationUtil {
|
||||
try {
|
||||
PublicKey publicKey = issuer.getPublicKey();
|
||||
verifySignature(publicKey, cert);
|
||||
} catch (PayErrorException e) {
|
||||
}
|
||||
catch (PayErrorException e) {
|
||||
LOGGER.error("证书链验证失败", e);
|
||||
return false;
|
||||
}
|
||||
@@ -155,10 +163,12 @@ public class AntCertificationUtil {
|
||||
private static boolean checkValidity(X509Certificate cert) {
|
||||
try {
|
||||
cert.checkValidity();
|
||||
} catch (CertificateExpiredException e) {
|
||||
}
|
||||
catch (CertificateExpiredException e) {
|
||||
LOGGER.error("证书已经过期");
|
||||
return false;
|
||||
} catch (CertificateNotYetValidException e) {
|
||||
}
|
||||
catch (CertificateNotYetValidException e) {
|
||||
LOGGER.error("证书未激活");
|
||||
return false;
|
||||
}
|
||||
@@ -169,7 +179,8 @@ public class AntCertificationUtil {
|
||||
private static void verifySignature(PublicKey publicKey, X509Certificate cert) {
|
||||
try {
|
||||
cert.verify(publicKey);
|
||||
} catch (GeneralSecurityException e) {
|
||||
}
|
||||
catch (GeneralSecurityException e) {
|
||||
throw new PayErrorException(new PayException("证书校验失败", e.getMessage()));
|
||||
}
|
||||
}
|
||||
@@ -276,10 +287,12 @@ public class AntCertificationUtil {
|
||||
private static X509Certificate[] readPemCertChain(String cert) {
|
||||
ByteArrayInputStream inputStream = new ByteArrayInputStream(cert.getBytes());
|
||||
try {
|
||||
CertificateFactory factory = CertificateFactory.getInstance("X.509", "BC");;
|
||||
CertificateFactory factory = CertificateFactory.getInstance("X.509", "BC");
|
||||
;
|
||||
Collection<? extends Certificate> certificates = factory.generateCertificates(inputStream);
|
||||
return certificates.toArray(new X509Certificate[certificates.size()]);
|
||||
} catch (GeneralSecurityException e) {
|
||||
}
|
||||
catch (GeneralSecurityException e) {
|
||||
LOGGER.error("提取根证书失败", e);
|
||||
}
|
||||
return null;
|
||||
@@ -308,13 +321,15 @@ public class AntCertificationUtil {
|
||||
certSN = fillMD5(certSN);
|
||||
if (StringUtils.isEmpty(rootCertSN)) {
|
||||
rootCertSN = certSN;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
rootCertSN = rootCertSN + "_" + certSN;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
}
|
||||
catch (NoSuchAlgorithmException e) {
|
||||
LOGGER.error("提取根证书失败", e);
|
||||
}
|
||||
return rootCertSN;
|
||||
@@ -332,7 +347,8 @@ public class AntCertificationUtil {
|
||||
CertificateFactory factory = CertificateFactory.getInstance("X.509", "BC");
|
||||
X509Certificate cert = (X509Certificate) factory.generateCertificate(inputStream);
|
||||
return md5((cert.getIssuerX500Principal().getName() + cert.getSerialNumber()).getBytes());
|
||||
} catch (GeneralSecurityException e) {
|
||||
}
|
||||
catch (GeneralSecurityException e) {
|
||||
throw new PayErrorException(new PayException(" 获取公钥证书序列号异常", e.getMessage()));
|
||||
}
|
||||
}
|
||||
@@ -368,7 +384,8 @@ public class AntCertificationUtil {
|
||||
CertificateFactory factory = CertificateFactory.getInstance("X.509", "BC");
|
||||
X509Certificate cert = (X509Certificate) factory.generateCertificate(inputStream);
|
||||
return Base64.encode(cert.getPublicKey().getEncoded());
|
||||
} catch (GeneralSecurityException e) {
|
||||
}
|
||||
catch (GeneralSecurityException e) {
|
||||
throw new PayErrorException(new PayException(" 提取公钥证书中的公钥异常", e.getMessage()));
|
||||
}
|
||||
}
|
||||
@@ -377,7 +394,8 @@ public class AntCertificationUtil {
|
||||
public static String readFromInputStream(InputStream cert) {
|
||||
try {
|
||||
return new String(IOUtils.toByteArray(cert), StandardCharsets.UTF_8);
|
||||
} catch (IOException e) {
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new PayErrorException(new PayException("读取证书异常", e.getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>pay-java-baidu</artifactId>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
@@ -94,6 +94,7 @@ public abstract class BasePayService<PC extends PayConfigStorage> implements Pay
|
||||
}
|
||||
|
||||
|
||||
|
||||
public BasePayService(PC payConfigStorage) {
|
||||
this(payConfigStorage, null);
|
||||
}
|
||||
@@ -101,15 +102,11 @@ public abstract class BasePayService<PC extends PayConfigStorage> implements Pay
|
||||
public BasePayService(PC payConfigStorage, HttpConfigStorage configStorage) {
|
||||
setPayConfigStorage(payConfigStorage);
|
||||
setRequestTemplateConfigStorage(configStorage);
|
||||
initAfter();
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化之后执行
|
||||
*/
|
||||
protected void initAfter(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Generate a Base64 encoded String from user , password
|
||||
*
|
||||
|
||||
@@ -428,7 +428,7 @@ public class HttpRequestTemplate {
|
||||
return new ResponseEntity<>(statusCode, allHeaders, body);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new PayErrorException(new PayException("IOException", e.getLocalizedMessage()));
|
||||
throw new PayErrorException(new PayException("IOException", e.getLocalizedMessage()), e);
|
||||
}
|
||||
finally {
|
||||
httpRequest.releaseConnection();
|
||||
|
||||
@@ -1,33 +1,15 @@
|
||||
package com.egzosn.pay.common.util.sign;
|
||||
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.security.Security;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.SortedMap;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.crypto.Mac;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
||||
|
||||
import static com.egzosn.pay.common.util.sign.SignTextUtils.parameterText;
|
||||
|
||||
import com.egzosn.pay.common.bean.SignType;
|
||||
import com.egzosn.pay.common.bean.result.PayException;
|
||||
import com.egzosn.pay.common.exception.PayErrorException;
|
||||
import com.egzosn.pay.common.util.sign.encrypt.HmacSha256;
|
||||
import com.egzosn.pay.common.util.str.StringUtils;
|
||||
|
||||
/**
|
||||
* 签名 工具
|
||||
@@ -209,5 +191,15 @@ public enum SignUtils implements SignType {
|
||||
return this.verify(parameterText(params), sign, key, characterEncoding);
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化BC
|
||||
*/
|
||||
public static void initBc() {
|
||||
if (null == Security.getProvider("BC")) {
|
||||
Security.removeProvider("SunEC");
|
||||
Security.addProvider(new BouncyCastleProvider());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,13 +2,13 @@ package com.egzosn.pay.common.util.sign.encrypt;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.security.GeneralSecurityException;
|
||||
import java.security.Security;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
||||
|
||||
import com.egzosn.pay.common.util.sign.SignUtils;
|
||||
|
||||
/**
|
||||
* AES 加解密
|
||||
@@ -30,12 +30,10 @@ public class AES {
|
||||
private static final String ALGORITHM_MODE_PADDING = "AES/ECB/PKCS7Padding";
|
||||
|
||||
static {
|
||||
if (null == Security.getProvider("BC")) {
|
||||
Security.removeProvider("SunEC");
|
||||
Security.addProvider(new BouncyCastleProvider());
|
||||
}
|
||||
SignUtils.initBc();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 解密
|
||||
*
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>war</packaging>
|
||||
|
||||
@@ -87,10 +87,10 @@ public class AliPayController {
|
||||
aliPayConfigStorage.setAppId("2016080400165436");
|
||||
// aliPayConfigStorage.setAppAuthToken("ISV代商户代用,指定appAuthToken");
|
||||
//普通公钥方式与证书公钥方式为两者取其一的方式
|
||||
// keyPublic(aliPayConfigStorage);
|
||||
// aliPayConfigStorage.setKeyPrivate("MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKroe/8h5vC4L6T+B2WdXiVwGsMvUKgb2XsKix6VY3m2wcf6tyzpNRDCNykbIwGtaeo7FshN+qZxdXHLiIam9goYncBit/8ojfLGy2gLxO/PXfzGxYGs0KsDZ+ryVPPmE34ZZ8jiJpR0ygzCFl8pN3QJPJRGTJn5+FTT9EF/9zyZAgMBAAECgYAktngcYC35u7cQXDk+jMVyiVhWYU2ULxdSpPspgLGzrZyG1saOcTIi/XVX8Spd6+B6nmLQeF/FbU3rOeuD8U2clzul2Z2YMbJ0FYay9oVZFfp5gTEFpFRTVfzqUaZQBIjJe/xHL9kQVqc5xHlE/LVA27/Kx3dbC35Y7B4EVBDYAQJBAOhsX8ZreWLKPhXiXHTyLmNKhOHJc+0tFH7Ktise/0rNspojU7o9prOatKpNylp9v6kux7migcMRdVUWWiVe+4ECQQC8PqsuEz7B0yqirQchRg1DbHjh64bw9Kj82EN1/NzOUd53tP9tg+SO97EzsibK1F7tOcuwqsa7n2aY48mQ+y0ZAkBndA2xcRcnvOOjtAz5VO8G7R12rse181HjGfG6AeMadbKg30aeaGCyIxN1loiSfNR5xsPJwibGIBg81mUrqzqBAkB+K6rkaPXJR9XtzvdWb/N3235yPkDlw7Z4MiOVM3RzvR/VMDV7m8lXoeDde2zQyeMOMYy6ztwA6WgE1bhGOnQRAkEAouUBv1sVdSBlsexX15qphOmAevzYrpufKgJIRLFWQxroXMS7FTesj+f+FmGrpPCxIde1dqJ8lqYLTyJmbzMPYw==");
|
||||
certKeyPublic(aliPayConfigStorage);
|
||||
aliPayConfigStorage.setKeyPrivate("MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCw7MD2Cwv/jnXssFjXnGx3JlGF57gJa2aYbJRV8MnNiPVpX4Ha+8ZjnQDhvkrWH4hHmzcujOr213HqloMpUSYBzCPiXGVRUUvdimejcHHTod7nI4g6nztzzfey/TXNDHmp7vY3pOIcjB0Zn0pkNAz2tKAFkqb4raHOqTB0QA0zD24Cn+26J2UJyYRcgeH0GtSQuUrm7yaGsuKakh+qtgWF6R71n5PMGOTQ5LH3i0WVHfCBkNGgJC6yC96HR4D7cosoyKD0+lp8UB/NVUWl7Tt/KLOgFUwh0GKSYFfv56O/VBV2+xqCGE4PlZESfVuOqz5vjjxzw3xDAUJrV8hSX/AJAgMBAAECggEBAKE0d3U4B4yo/2XUIH8EdgfykCFUSum6RFbpyBauORHfksyaSzV+ZvtomN8XhhSn0oJ8OMFfgM+86nz2+zdwSxMkMCYWTfLUAi4v59KRqAVO3kz4oS3Y3FDeAK3D7XuRvGFL7GgzAhtEx1cLPrsiehVn6s5pG15GxsIIgq/JlL1J88wn1zENLrVHmD6z/JpXvfb/RS1yR+5lyoohp4g0Ph9jJ3bCyUbRpK0QkPEzgAuWL0K2ITCL7PYHNAplI8d2xHHOLF9Qdjyx+ZrQ/RxtqzfyWzhqjsmp2qlgNCxWlt3woS9UhDB+nRvjEoWTJmIOszAMYuj8wGlX+3Ui3ALOdQECgYEA25EqnFPFinUnzgNvB6NYmh5STmZun6s4bUOLqwefKtEvrOtRwTu7sB7NIf37fizG3/MJUWHxiLy2/3ub4d2JxdDNBtJoEqnp6QB12qglCNa4CajdjtJa1dR81F9QvytsqEkmPYXFPPyviB0FcSIDAGMb3IbwvIfzBPY9WY8dJnECgYEAzkg3yKEFBZ8BU0WQ+3hyfKUoAhBEnxouxRSTBcXxwstJRiqaGTVe5aoJGQI+0xS7Z6q07XDtN2t97s6DnRLWbljsX6B64itzNhXRyzjdD3iZDU/KSw7khjhXf8XOZaj9eXmACDiUnkEn1xsM8bLiRGqB8y5f3aMY/RpuACGXnxkCgYEAx/zwT9Vpr1RIfjfYcJ+Su0X0994K0roUukj0tUJK8qf4gcsQ+y1aJe/YLib1ZBaKyj7G9O5+HmqtUAUZld/AdoJZzOXmz2EeYhD+R7wxh1xz4rCBpW3qOKvDS3jJxmZaIOoHv6/RWFxb0WGFrGcrTrX3EaWDLmWxr4pNlP5qsbECgYATllntrBR8/ycyEAX/SuWcHlaZM5BAh0zvm8+GGdCmDYWMqxjs0duL9URd4o+ynWJaKqR5c2KjA4r2tRdcP+Cqo7j2L5fbiAKtnQ7JvEGJaYsm72+nBuf+MrVkRZUepBhFg5r7rNu31zoAO+pTvQetNWvXeozRz93ckrjlPEtYaQKBgQDFwbV92rlRMLjZzlY+o0knoeJBjPQmPdiBTpGNimdy9L4c2Ure7affjcUiYhkKqrK5k5SScJTATgyQ7JF346FdtUtZ/6Kkj1RwJmmprPrDa9CATLoTle7g9OVd4sHT2ITHZMzPaF3ILvzcwJ70AD1xcxCQb+/7sDPmw7Mc8gOA7Q==");
|
||||
keyPublic(aliPayConfigStorage);
|
||||
aliPayConfigStorage.setKeyPrivate("MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKroe/8h5vC4L6T+B2WdXiVwGsMvUKgb2XsKix6VY3m2wcf6tyzpNRDCNykbIwGtaeo7FshN+qZxdXHLiIam9goYncBit/8ojfLGy2gLxO/PXfzGxYGs0KsDZ+ryVPPmE34ZZ8jiJpR0ygzCFl8pN3QJPJRGTJn5+FTT9EF/9zyZAgMBAAECgYAktngcYC35u7cQXDk+jMVyiVhWYU2ULxdSpPspgLGzrZyG1saOcTIi/XVX8Spd6+B6nmLQeF/FbU3rOeuD8U2clzul2Z2YMbJ0FYay9oVZFfp5gTEFpFRTVfzqUaZQBIjJe/xHL9kQVqc5xHlE/LVA27/Kx3dbC35Y7B4EVBDYAQJBAOhsX8ZreWLKPhXiXHTyLmNKhOHJc+0tFH7Ktise/0rNspojU7o9prOatKpNylp9v6kux7migcMRdVUWWiVe+4ECQQC8PqsuEz7B0yqirQchRg1DbHjh64bw9Kj82EN1/NzOUd53tP9tg+SO97EzsibK1F7tOcuwqsa7n2aY48mQ+y0ZAkBndA2xcRcnvOOjtAz5VO8G7R12rse181HjGfG6AeMadbKg30aeaGCyIxN1loiSfNR5xsPJwibGIBg81mUrqzqBAkB+K6rkaPXJR9XtzvdWb/N3235yPkDlw7Z4MiOVM3RzvR/VMDV7m8lXoeDde2zQyeMOMYy6ztwA6WgE1bhGOnQRAkEAouUBv1sVdSBlsexX15qphOmAevzYrpufKgJIRLFWQxroXMS7FTesj+f+FmGrpPCxIde1dqJ8lqYLTyJmbzMPYw==");
|
||||
// certKeyPublic(aliPayConfigStorage);
|
||||
// aliPayConfigStorage.setKeyPrivate("MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCw7MD2Cwv/jnXssFjXnGx3JlGF57gJa2aYbJRV8MnNiPVpX4Ha+8ZjnQDhvkrWH4hHmzcujOr213HqloMpUSYBzCPiXGVRUUvdimejcHHTod7nI4g6nztzzfey/TXNDHmp7vY3pOIcjB0Zn0pkNAz2tKAFkqb4raHOqTB0QA0zD24Cn+26J2UJyYRcgeH0GtSQuUrm7yaGsuKakh+qtgWF6R71n5PMGOTQ5LH3i0WVHfCBkNGgJC6yC96HR4D7cosoyKD0+lp8UB/NVUWl7Tt/KLOgFUwh0GKSYFfv56O/VBV2+xqCGE4PlZESfVuOqz5vjjxzw3xDAUJrV8hSX/AJAgMBAAECggEBAKE0d3U4B4yo/2XUIH8EdgfykCFUSum6RFbpyBauORHfksyaSzV+ZvtomN8XhhSn0oJ8OMFfgM+86nz2+zdwSxMkMCYWTfLUAi4v59KRqAVO3kz4oS3Y3FDeAK3D7XuRvGFL7GgzAhtEx1cLPrsiehVn6s5pG15GxsIIgq/JlL1J88wn1zENLrVHmD6z/JpXvfb/RS1yR+5lyoohp4g0Ph9jJ3bCyUbRpK0QkPEzgAuWL0K2ITCL7PYHNAplI8d2xHHOLF9Qdjyx+ZrQ/RxtqzfyWzhqjsmp2qlgNCxWlt3woS9UhDB+nRvjEoWTJmIOszAMYuj8wGlX+3Ui3ALOdQECgYEA25EqnFPFinUnzgNvB6NYmh5STmZun6s4bUOLqwefKtEvrOtRwTu7sB7NIf37fizG3/MJUWHxiLy2/3ub4d2JxdDNBtJoEqnp6QB12qglCNa4CajdjtJa1dR81F9QvytsqEkmPYXFPPyviB0FcSIDAGMb3IbwvIfzBPY9WY8dJnECgYEAzkg3yKEFBZ8BU0WQ+3hyfKUoAhBEnxouxRSTBcXxwstJRiqaGTVe5aoJGQI+0xS7Z6q07XDtN2t97s6DnRLWbljsX6B64itzNhXRyzjdD3iZDU/KSw7khjhXf8XOZaj9eXmACDiUnkEn1xsM8bLiRGqB8y5f3aMY/RpuACGXnxkCgYEAx/zwT9Vpr1RIfjfYcJ+Su0X0994K0roUukj0tUJK8qf4gcsQ+y1aJe/YLib1ZBaKyj7G9O5+HmqtUAUZld/AdoJZzOXmz2EeYhD+R7wxh1xz4rCBpW3qOKvDS3jJxmZaIOoHv6/RWFxb0WGFrGcrTrX3EaWDLmWxr4pNlP5qsbECgYATllntrBR8/ycyEAX/SuWcHlaZM5BAh0zvm8+GGdCmDYWMqxjs0duL9URd4o+ynWJaKqR5c2KjA4r2tRdcP+Cqo7j2L5fbiAKtnQ7JvEGJaYsm72+nBuf+MrVkRZUepBhFg5r7rNu31zoAO+pTvQetNWvXeozRz93ckrjlPEtYaQKBgQDFwbV92rlRMLjZzlY+o0knoeJBjPQmPdiBTpGNimdy9L4c2Ure7affjcUiYhkKqrK5k5SScJTATgyQ7JF346FdtUtZ/6Kkj1RwJmmprPrDa9CATLoTle7g9OVd4sHT2ITHZMzPaF3ILvzcwJ70AD1xcxCQb+/7sDPmw7Mc8gOA7Q==");
|
||||
aliPayConfigStorage.setNotifyUrl("http://pay.egzosn.com/payBack.json");
|
||||
aliPayConfigStorage.setReturnUrl("http://pay.egzosn.com/payBack.html");
|
||||
aliPayConfigStorage.setSignType(SignUtils.RSA2.name());
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>pay-java-fuiou</artifactId>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>pay-java-payoneer</artifactId>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>pay-java-wx-youdian</artifactId>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>pay-java-wx</artifactId>
|
||||
|
||||
@@ -98,6 +98,7 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> {
|
||||
*/
|
||||
public WxPayService(WxPayConfigStorage payConfigStorage) {
|
||||
super(payConfigStorage);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -109,7 +110,9 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> {
|
||||
public WxPayService(WxPayConfigStorage payConfigStorage, HttpConfigStorage configStorage) {
|
||||
super(payConfigStorage, configStorage);
|
||||
}
|
||||
|
||||
{
|
||||
initAfter();
|
||||
}
|
||||
|
||||
/**
|
||||
* 辅助api
|
||||
@@ -132,7 +135,6 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> {
|
||||
/**
|
||||
* 初始化之后执行
|
||||
*/
|
||||
@Override
|
||||
protected void initAfter() {
|
||||
payConfigStorage.setPartner(StringUtils.isNotEmpty(payConfigStorage.getSubMchId()));
|
||||
// new Thread(() -> {
|
||||
|
||||
@@ -69,10 +69,10 @@ public class WxProfitSharingService extends WxPayService implements ProfitSharin
|
||||
*/
|
||||
@Override
|
||||
protected void initAfter() {
|
||||
new Thread(() -> {
|
||||
// new Thread(() -> {
|
||||
payConfigStorage.loadCertEnvironment();
|
||||
getAssistService();
|
||||
}).start();
|
||||
// }).start();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import javax.crypto.spec.SecretKeySpec;
|
||||
import javax.management.openmbean.InvalidKeyException;
|
||||
|
||||
import com.egzosn.pay.common.exception.PayErrorException;
|
||||
import com.egzosn.pay.common.util.sign.SignUtils;
|
||||
import com.egzosn.pay.common.util.sign.encrypt.Base64;
|
||||
import com.egzosn.pay.wx.bean.WxPayError;
|
||||
import com.egzosn.pay.wx.v3.bean.CertEnvironment;
|
||||
@@ -54,7 +55,7 @@ public final class AntCertificationUtil {
|
||||
if (javaVersion.contains("1.8") || javaVersion.startsWith("8")){
|
||||
Security.setProperty("crypto.policy", "unlimited");
|
||||
}
|
||||
|
||||
SignUtils.initBc();
|
||||
try {
|
||||
PKCS12_KEY_STORE = KeyStore.getInstance("PKCS12");
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<groupId>com.egzosn</groupId>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
9
pom.xml
9
pom.xml
@@ -7,7 +7,7 @@
|
||||
<groupId>com.egzosn</groupId>
|
||||
<artifactId>pay-java-parent</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>2.14.4</version>
|
||||
<version>2.14.4-fix</version>
|
||||
|
||||
<name>Pay Java - Parent</name>
|
||||
<description>Pay Java Parent</description>
|
||||
@@ -39,11 +39,6 @@
|
||||
<email>hocgin@gmail.com</email>
|
||||
<url>https://github.com/hocgin</url>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Menjoe</name>
|
||||
<email>1030009014@qq.com</email>
|
||||
<url>https://gitee.com/menjoe-z</url>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/egzosn/pay-java-parent.git</connection>
|
||||
@@ -70,7 +65,7 @@
|
||||
|
||||
|
||||
<properties>
|
||||
<pay.version>2.14.4</pay.version>
|
||||
<pay.version>2.14.4-fix</pay.version>
|
||||
<httpmime.version>4.5.4</httpmime.version>
|
||||
<log4j.version>1.2.17</log4j.version>
|
||||
<fastjson.version>1.2.73</fastjson.version>
|
||||
|
||||
Reference in New Issue
Block a user