diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/bean/CertEnvironment.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/bean/CertEnvironment.java index f8b262c..79dcb82 100644 --- a/pay-java-ali/src/main/java/com/egzosn/pay/ali/bean/CertEnvironment.java +++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/bean/CertEnvironment.java @@ -44,7 +44,7 @@ public class CertEnvironment { /** * 缓存的不同支付宝公钥证书序列号对应的支付宝公钥 */ - private Map cachedAliPayPublicKey = new ConcurrentHashMap(); + private static final Map CACHED_ALI_PAY_PUBLIC_KEY = new ConcurrentHashMap(); /** * 构造证书运行环境 @@ -64,7 +64,7 @@ public class CertEnvironment { String aliPayPublicCertContent = AntCertificationUtil.readFromInputStream(aliPayCert); aliPayPublicKeySN = AntCertificationUtil.getCertSN(aliPayPublicCertContent); - cachedAliPayPublicKey.put(aliPayPublicKeySN, + CACHED_ALI_PAY_PUBLIC_KEY.put(aliPayPublicKeySN, AntCertificationUtil.getCertPublicKey(aliPayPublicCertContent)); } @@ -79,11 +79,11 @@ public class CertEnvironment { public String getAliPayPublicKey(String sn) { //如果没有指定sn,则默认取缓存中的第一个值 if (StringUtils.isEmpty(sn)) { - return cachedAliPayPublicKey.values().iterator().next(); + return CACHED_ALI_PAY_PUBLIC_KEY.values().iterator().next(); } - if (cachedAliPayPublicKey.containsKey(sn)) { - return cachedAliPayPublicKey.get(sn); + if (CACHED_ALI_PAY_PUBLIC_KEY.containsKey(sn)) { + return CACHED_ALI_PAY_PUBLIC_KEY.get(sn); } else { //网关在支付宝公钥证书变更前,一定会确认通知到商户并在商户做出反馈后,才会更新该商户的支付宝公钥证书 //TODO: 后续可以考虑加入自动升级支付宝公钥证书逻辑,注意并发更新冲突问题 diff --git a/pay-java-ali/src/test/java/PayTest.java b/pay-java-ali/src/test/java/PayTest.java index b22ba22..416ec15 100644 --- a/pay-java-ali/src/test/java/PayTest.java +++ b/pay-java-ali/src/test/java/PayTest.java @@ -16,8 +16,8 @@ import java.util.UUID; * * 支付宝测试 * @author egan - * @email egzosn@gmail.com - * @date 2017/8/18 + * email egzosn@gmail.com + * date 2017/8/18 */ public class PayTest { diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/CertDescriptor.java b/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/CertDescriptor.java index 2419571..947c7e1 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/CertDescriptor.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/CertDescriptor.java @@ -14,20 +14,25 @@ */ package com.egzosn.pay.common.util.sign; -import com.egzosn.pay.common.util.str.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; -import java.security.*; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.UnrecoverableKeyException; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.util.Enumeration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.egzosn.pay.common.util.str.StringUtils; + /** * acpsdk证书工具类,主要用于对证书的加载和使用 @@ -69,13 +74,16 @@ public class CertDescriptor { if (LOG.isWarnEnabled()) { LOG.warn("[CertId=" + encryptCertTemp.getSerialNumber().toString() + "]"); } - } catch (CertificateException e) { + } + catch (CertificateException e) { LOG.error("InitCert Error", e); - } finally { + } + finally { if (null != certIn) { try { certIn.close(); - } catch (IOException e) { + } + catch (IOException e) { LOG.error(e.toString()); } } @@ -96,7 +104,8 @@ public class CertDescriptor { try { in = new FileInputStream(path); encryptCertTemp = initCert(in); - } catch (FileNotFoundException e) { + } + catch (FileNotFoundException e) { LOG.error("InitCert Error File Not Found", e); } return encryptCertTemp; @@ -115,16 +124,18 @@ public class CertDescriptor { if (aliasenum.hasMoreElements()) { keyAlias = aliasenum.nextElement(); } - PrivateKey privateKey = (PrivateKey) keyStore.getKey(keyAlias, - pwd.toCharArray()); + PrivateKey privateKey = (PrivateKey) keyStore.getKey(keyAlias, pwd.toCharArray()); return privateKey; - } catch (KeyStoreException e) { + } + catch (KeyStoreException e) { LOG.error("getSignCertPrivateKey Error", e); return null; - } catch (UnrecoverableKeyException e) { + } + catch (UnrecoverableKeyException e) { LOG.error("getSignCertPrivateKey Error", e); return null; - } catch (NoSuchAlgorithmException e) { + } + catch (NoSuchAlgorithmException e) { LOG.error("getSignCertPrivateKey Error", e); return null; } @@ -145,7 +156,8 @@ public class CertDescriptor { } X509Certificate cert = (X509Certificate) keyStore.getCertificate(keyAlias); return cert.getSerialNumber().toString(); - } catch (Exception e) { + } + catch (Exception e) { LOG.error("getSignCertId Error", e); return null; } @@ -168,7 +180,8 @@ public class CertDescriptor { if (LOG.isInfoEnabled()) { LOG.info("InitSignCert Successful. CertId=[" + getSignCertId() + "]"); } - } catch (IOException e) { + } + catch (IOException e) { LOG.error("InitSignCert Error", e); } } @@ -231,14 +244,17 @@ public class CertDescriptor { ks.load(fxKeyFile, nPassword); } return ks; - } catch (Exception e) { + } + catch (Exception e) { LOG.error("getKeyInfo Error", e); return null; - } finally { + } + finally { if (null != fxKeyFile) { try { fxKeyFile.close(); - } catch (IOException e) { + } + catch (IOException e) { LOG.error("getKeyInfo Error", e); } } @@ -263,7 +279,8 @@ public class CertDescriptor { X509Certificate cert = (X509Certificate) keyStore .getCertificate(keyAlias); return cert.getSerialNumber().toString(); - } catch (KeyStoreException e) { + } + catch (KeyStoreException e) { LOG.error("getCertIdIdByStore Error", e); return null; } @@ -281,7 +298,8 @@ public class CertDescriptor { if (LOG.isInfoEnabled()) { LOG.info("Load PublicKeyCert Successful"); } - } else if (LOG.isInfoEnabled()) { + } + else if (LOG.isInfoEnabled()) { LOG.info("PublicKeyCert is empty"); } } @@ -297,7 +315,8 @@ public class CertDescriptor { if (LOG.isInfoEnabled()) { LOG.info("Load PublicKeyCert Successful"); } - } else if (LOG.isInfoEnabled()) { + } + else if (LOG.isInfoEnabled()) { LOG.info("PublicKeyCert is empty"); } } @@ -311,14 +330,17 @@ public class CertDescriptor { if (!StringUtils.isEmpty(certPath)) { try { initRootCert(new FileInputStream(certPath)); - } catch (FileNotFoundException e) { + } + catch (FileNotFoundException e) { LOG.info("RootCert is empty"); } - } else if (LOG.isInfoEnabled()) { + } + else if (LOG.isInfoEnabled()) { LOG.info("RootCert is empty"); } } + /** * 加载根证书 * @@ -330,7 +352,8 @@ public class CertDescriptor { if (LOG.isInfoEnabled()) { LOG.info("Load RootCert Successful"); } - } else if (LOG.isInfoEnabled()) { + } + else if (LOG.isInfoEnabled()) { LOG.info("RootCert is empty"); } } diff --git a/pay-java-demo/README.md b/pay-java-demo/README.md index 869d81c..d4f5301 100644 --- a/pay-java-demo/README.md +++ b/pay-java-demo/README.md @@ -7,8 +7,8 @@ /** * 支付类型 * @author egan - * @email egzosn@gmail.com - * @date 2016/11/20 0:30 + * email egzosn@gmail.com + * date 2016/11/20 0:30 */ public enum PayType implements BasePayType { @@ -107,8 +107,8 @@ public enum PayType implements BasePayType { /** * 支付响应对象 * @author: egan - * @email egzosn@gmail.com - * @date 2016/11/18 0:34 + * email egzosn@gmail.com + * date 2016/11/18 0:34 */ public class PayResponse { @Resource @@ -244,8 +244,8 @@ public class PayResponse { /** * 支付宝回调信息拦截器 * @author: egan - * @email egzosn@gmail.com - * @date 2017/1/18 19:28 + * email egzosn@gmail.com + * date 2017/1/18 19:28 */ public class AliPayMessageInterceptor implements PayMessageInterceptor { /** 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 0933696..867d7c5 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 @@ -335,8 +335,8 @@ public class AliPayController { * @return 返回支付方下载对账单的结果 */ @RequestMapping("downloadbill") - public Object downloadbill(QueryOrder order) { - return service.downloadbill(order.getBillDate(), order.getBillType()); + public Object downloadBill(QueryOrder order) { + return service.downloadBill(order.getBillDate(), order.getBillType()); } diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/WxPayController.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/WxPayController.java index 4b0b241..fc0bef7 100644 --- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/WxPayController.java +++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/WxPayController.java @@ -333,8 +333,8 @@ public class WxPayController { * @return 返回支付方下载对账单的结果 */ @RequestMapping("downloadbill") - public Object downloadbill(QueryOrder order) { - return service.downloadbill(order.getBillDate(), order.getBillType()); + public Object downloadBill(QueryOrder order) { + return service.downloadBill(order.getBillDate(), order.getBillType()); } diff --git a/pay-java-fuiou/src/test/java/PayTest.java b/pay-java-fuiou/src/test/java/PayTest.java index 53dfd25..f838a26 100644 --- a/pay-java-fuiou/src/test/java/PayTest.java +++ b/pay-java-fuiou/src/test/java/PayTest.java @@ -16,8 +16,8 @@ import java.util.UUID; * * 富友支付测试 * @author egan - * @email egzosn@gmail.com - * @date 2017/8/18 + * email egzosn@gmail.com + * date 2017/8/18 */ public class PayTest { diff --git a/pay-java-payoneer/test/java/PayTest.java b/pay-java-payoneer/test/java/PayTest.java index b591876..ddf2691 100644 --- a/pay-java-payoneer/test/java/PayTest.java +++ b/pay-java-payoneer/test/java/PayTest.java @@ -27,8 +27,8 @@ import java.util.UUID; * * payoneer支付测试 * @author Actinia - * @email hayesfu@qq.com - * @date 2018/1/18 0018 16:49 + * email hayesfu@qq.com + * date 2018/1/18 0018 16:49 */ public class PayTest { diff --git a/pay-java-wx-youdian/src/test/java/PayTest.java b/pay-java-wx-youdian/src/test/java/PayTest.java index e4d3089..26d342f 100644 --- a/pay-java-wx-youdian/src/test/java/PayTest.java +++ b/pay-java-wx-youdian/src/test/java/PayTest.java @@ -16,8 +16,8 @@ import java.util.UUID; * * 友店微信 * @author egan - * @email egzosn@gmail.com - * @date 2017/8/18 + * email egzosn@gmail.com + * date 2017/8/18 */ public class PayTest {