代码优化

This commit is contained in:
egan
2021-08-08 23:04:12 +08:00
parent 3062726c9d
commit 44c72fa710
9 changed files with 71 additions and 48 deletions

View File

@@ -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: 后续可以考虑加入自动升级支付宝公钥证书逻辑,注意并发更新冲突问题

View File

@@ -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 {