diff --git a/app/third/paymentService/wechat_service.go b/app/third/paymentService/wechat_service.go index e6ddc48..16226e8 100644 --- a/app/third/paymentService/wechat_service.go +++ b/app/third/paymentService/wechat_service.go @@ -15,16 +15,22 @@ import ( "github.com/qit-team/snow-core/log/logger" "net/url" "strconv" + "sync" "time" ) -var WxClientGroup = make(map[string]*wechat.ClientV3) +var WxClientGroup sync.Map + +func WxClientGroupKey(wxConfig WxPay) string { + return fmt.Sprintf("%s%s", wxConfig.AppId, wxConfig.MchId) +} // InitClient 使用提供的支付请求参数初始化微信客户端 func InitClient(wxConfig WxPay) (*wechat.ClientV3, error) { - clientCache, ex := WxClientGroup[wxConfig.AppId] + key := WxClientGroupKey(wxConfig) + clientCache, ex := WxClientGroup.Load(key) if ex { - return clientCache, nil + return clientCache.(*wechat.ClientV3), nil } // NewClientV3 初始化微信客户端 v3 // mchid:商户ID 或者服务商模式的 sp_mchid @@ -51,7 +57,7 @@ func InitClient(wxConfig WxPay) (*wechat.ClientV3, error) { // 打开Debug开关,输出日志,默认是关闭的 wxClient.DebugSwitch = gopay.DebugOn - WxClientGroup[wxConfig.AppId] = wxClient + WxClientGroup.Store(key, wxClient) return wxClient, nil }