mirror of
https://gitee.com/egzosn/pay-java-parent.git
synced 2026-06-03 06:22:21 +08:00
代码优化
This commit is contained in:
@@ -44,7 +44,7 @@ public class CertEnvironment {
|
||||
/**
|
||||
* 缓存的不同支付宝公钥证书序列号对应的支付宝公钥
|
||||
*/
|
||||
private Map<String, String> cachedAliPayPublicKey = new ConcurrentHashMap<String, String>();
|
||||
private static final Map<String, String> CACHED_ALI_PAY_PUBLIC_KEY = new ConcurrentHashMap<String, String>();
|
||||
|
||||
/**
|
||||
* 构造证书运行环境
|
||||
@@ -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: 后续可以考虑加入自动升级支付宝公钥证书逻辑,注意并发更新冲突问题
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user