From c5604f5d3a9319bcbd10dfe8bb05af8cf910ace8 Mon Sep 17 00:00:00 2001 From: egzosn Date: Mon, 12 Oct 2020 22:51:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/demo/controller/AliPayController.java | 29 ++++++++++++++++++- .../pay/paypal/api/PayPalConfigStorage.java | 6 +++- .../pay/union/api/UnionPayConfigStorage.java | 17 +++++++++-- .../egzosn/pay/union/api/UnionPayService.java | 2 +- .../api/WxYouDianPayConfigStorage.java | 12 +++++--- 5 files changed, 57 insertions(+), 9 deletions(-) diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/AliPayController.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/AliPayController.java index 2f528e7..b71161f 100644 --- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/AliPayController.java +++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/AliPayController.java @@ -9,6 +9,7 @@ import com.egzosn.pay.ali.bean.AliTransactionType; import com.egzosn.pay.ali.bean.AliTransferOrder; import com.egzosn.pay.ali.bean.AliTransferType; import com.egzosn.pay.ali.bean.OrderSettle; +import com.egzosn.pay.common.bean.CertStoreType; import com.egzosn.pay.common.bean.PayOrder; import com.egzosn.pay.common.bean.RefundOrder; import com.egzosn.pay.common.http.HttpConfigStorage; @@ -47,13 +48,39 @@ public class AliPayController { private AliPayService service = null; @Resource private AutowireCapableBeanFactory spring; + /** + * 设置普通公钥的方式 + * 普通公钥方式与证书公钥方式为两者取其一的方式 + * @param aliPayConfigStorage 支付宝配置信息 + * + */ + private static void keyPublic(AliPayConfigStorage aliPayConfigStorage){ + aliPayConfigStorage.setKeyPublic("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB"); + } + + /** + * 设置证书公钥信息 + * 普通公钥方式与证书公钥方式为两者取其一的方式 + * @param aliPayConfigStorage 支付宝配置信息 + */ + private static void certKeyPublic(AliPayConfigStorage aliPayConfigStorage){ + //设置为证书方式 + aliPayConfigStorage.setCertSign(true); + //设置证书存储方式,这里为路径 + aliPayConfigStorage.setCertStoreType(CertStoreType.PATH); + aliPayConfigStorage.setMerchantCert("请填写您的应用公钥证书文件路径,例如:d:/appCertPublicKey_2019051064521003.crt"); + aliPayConfigStorage.setAliPayCert("请填写您的支付宝公钥证书文件路径,例如:d:/alipayCertPublicKey_RSA2.crt"); + aliPayConfigStorage.setAliPayRootCert("请填写您的支付宝根证书文件路径,例如:d:/alipayRootCert.crt"); + } @PostConstruct public void init() { AliPayConfigStorage aliPayConfigStorage = new AliPayConfigStorage(); aliPayConfigStorage.setPid("2088102169916436"); aliPayConfigStorage.setAppid("2016080400165436"); - aliPayConfigStorage.setKeyPublic("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB"); + //普通公钥方式与证书公钥方式为两者取其一的方式 + keyPublic(aliPayConfigStorage); +// certKeyPublic(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=="); aliPayConfigStorage.setNotifyUrl("http://pay.egzosn.com/payBack.json"); aliPayConfigStorage.setReturnUrl("http://pay.egzosn.com/payBack.html"); diff --git a/pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalConfigStorage.java b/pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalConfigStorage.java index 8169fa7..ccffe2e 100644 --- a/pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalConfigStorage.java +++ b/pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalConfigStorage.java @@ -1,5 +1,7 @@ package com.egzosn.pay.paypal.api; +import java.util.concurrent.locks.ReentrantLock; + import com.egzosn.pay.common.api.BasePayConfigStorage; /** @@ -62,5 +64,7 @@ public class PayPalConfigStorage extends BasePayConfigStorage { return getNotifyUrl(); } - + public PayPalConfigStorage() { + setAccessTokenLock(new ReentrantLock()); + } } diff --git a/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayConfigStorage.java b/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayConfigStorage.java index 24864d3..5497b07 100644 --- a/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayConfigStorage.java +++ b/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayConfigStorage.java @@ -41,6 +41,10 @@ public class UnionPayConfigStorage extends BasePayConfigStorage { * 应用私钥证书 */ private Object keyPrivateCert; + /** + * 应用私钥证书,rsa_private pkcs8格式 生成签名时使用 + */ + private String keyPrivateCertPwd; /** * 中级证书 @@ -55,6 +59,7 @@ public class UnionPayConfigStorage extends BasePayConfigStorage { * 证书存储类型 */ private CertStoreType certStoreType; + /** * 设置私钥证书 * @@ -128,9 +133,17 @@ public class UnionPayConfigStorage extends BasePayConfigStorage { return certStoreType.getInputStream(acpRootCert); } + /** + * 获取私钥证书密码 + * @return 私钥证书密码 + */ + public String getKeyPrivateCertPwd() { + return keyPrivateCertPwd; + } - - + public void setKeyPrivateCertPwd(String keyPrivateCertPwd) { + this.keyPrivateCertPwd = keyPrivateCertPwd; + } @Override public String getAppid() { return null; diff --git a/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayService.java b/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayService.java index 953c645..d1ef681 100644 --- a/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayService.java +++ b/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayService.java @@ -70,7 +70,7 @@ public class UnionPayService extends BasePayService { * @param payConfigStorage 支付配置 */ public UnionPayService(UnionPayConfigStorage payConfigStorage) { - super(payConfigStorage); + this(payConfigStorage, null); } public UnionPayService(UnionPayConfigStorage payConfigStorage, HttpConfigStorage configStorage) { diff --git a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayConfigStorage.java b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayConfigStorage.java index 7548278..be789e9 100644 --- a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayConfigStorage.java +++ b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayConfigStorage.java @@ -1,14 +1,16 @@ package com.egzosn.pay.wx.youdian.api; +import java.util.concurrent.locks.ReentrantLock; + import com.egzosn.pay.common.api.BasePayConfigStorage; /** * 支付客户端配置存储 * * @author egan - *

- * email egzosn@gmail.com - * date 2017/01/12 22:58 + *

+ * email egzosn@gmail.com + * date 2017/01/12 22:58 */ public class WxYouDianPayConfigStorage extends BasePayConfigStorage { @@ -49,5 +51,7 @@ public class WxYouDianPayConfigStorage extends BasePayConfigStorage { return getAccessToken(); } - + public WxYouDianPayConfigStorage() { + setAccessTokenLock(new ReentrantLock()); + } }