From e9f496de7f09c7796396d20a48fd3efffbe7a75b Mon Sep 17 00:00:00 2001 From: Dingxindong Date: Thu, 8 Dec 2022 14:18:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E7=94=A8=E5=8D=95=E4=BE=8B=E7=9A=84?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=20=E5=88=9D=E5=A7=8B=E5=8C=96=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E5=AE=9D=E5=B0=8F=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/config/AlipayClientSingleton.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/austin-handler/src/main/java/com/java3y/austin/handler/config/AlipayClientSingleton.java b/austin-handler/src/main/java/com/java3y/austin/handler/config/AlipayClientSingleton.java index dc44fdf..13e04be 100644 --- a/austin-handler/src/main/java/com/java3y/austin/handler/config/AlipayClientSingleton.java +++ b/austin-handler/src/main/java/com/java3y/austin/handler/config/AlipayClientSingleton.java @@ -5,6 +5,9 @@ import com.alipay.api.AlipayConfig; import com.alipay.api.DefaultAlipayClient; import com.java3y.austin.common.dto.account.AlipayMiniProgramAccount; +import java.util.HashMap; +import java.util.Map; + /** * 初始化支付宝小程序 单例 * @@ -13,15 +16,17 @@ import com.java3y.austin.common.dto.account.AlipayMiniProgramAccount; */ public class AlipayClientSingleton { - private volatile static DefaultAlipayClient alipayClientSingleton; + private static volatile DefaultAlipayClient alipayClientSingleton; + + private static Map alipayClientMap = new HashMap<>(); private AlipayClientSingleton() { } public static DefaultAlipayClient getSingleton(AlipayMiniProgramAccount alipayMiniProgramAccount) throws AlipayApiException { - if (alipayClientSingleton == null) { + if (!alipayClientMap.containsKey(alipayMiniProgramAccount.getAppId())) { synchronized (DefaultAlipayClient.class) { - if (alipayClientSingleton == null) { + if (!alipayClientMap.containsKey(alipayMiniProgramAccount.getAppId())) { AlipayConfig alipayConfig = new AlipayConfig(); alipayConfig.setServerUrl("https://openapi.alipaydev.com/gateway.do"); alipayConfig.setAppId(alipayMiniProgramAccount.getAppId()); @@ -31,9 +36,11 @@ public class AlipayClientSingleton { alipayConfig.setCharset("utf-8"); alipayConfig.setSignType("RSA2"); alipayClientSingleton = new DefaultAlipayClient(alipayConfig); + alipayClientMap.put(alipayMiniProgramAccount.getAppId(), alipayClientSingleton); + return alipayClientSingleton; } } } - return alipayClientSingleton; + return alipayClientMap.get(alipayMiniProgramAccount.getAppId()); } }