diff --git a/business/auth2/authprovider/weixin/weixin_mini.go b/business/auth2/authprovider/weixin/weixin_mini.go index 28201e0f6..ef2571f5c 100644 --- a/business/auth2/authprovider/weixin/weixin_mini.go +++ b/business/auth2/authprovider/weixin/weixin_mini.go @@ -3,6 +3,7 @@ package weixin import ( "encoding/base64" "errors" + "strings" "git.rosy.net.cn/baseapi/platformapi/weixinapi" "git.rosy.net.cn/jx-callback/business/auth2" @@ -57,17 +58,21 @@ func (a *MiniAuther) DecryptData(authInfo *auth2.AuthInfo, encryptedData, iv str } func ProxySNSCode2Session(jsCode string) (sessionInfo *weixinapi.SessionInfo, err error) { - sessionInfo, err = api.WeixinMiniAPI.SNSCode2Session(jsCode) + miniApi := api.WeixinMiniAPI + list := strings.Split(jsCode, ",") + if len(list) >= 2 { + if list[0] == api.WeixinMiniAppID2 { + miniApi = api.WeixinMiniAPI2 + } + } + sessionInfo, err = miniApi.SNSCode2Session(jsCode) if err != nil && api.WeixinMiniAPI2 != nil { - sessionInfo, err = api.WeixinMiniAPI2.SNSCode2Session(jsCode) + sessionInfo, err = miniApi.SNSCode2Session(jsCode) } return sessionInfo, err } func ProxySNSDecodeMiniProgramData(encryptedData, sessionKey, iv string) (decryptedData []byte, err error) { decryptedData, err = api.WeixinMiniAPI.SNSDecodeMiniProgramData(encryptedData, sessionKey, iv) - if err != nil && api.WeixinMiniAPI2 != nil { - decryptedData, err = api.WeixinMiniAPI2.SNSDecodeMiniProgramData(encryptedData, sessionKey, iv) - } return decryptedData, err } diff --git a/globals/api/api.go b/globals/api/api.go index ccc235a44..b4a8d3d2f 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -27,16 +27,18 @@ import ( ) var ( - JdAPI *jdapi.API - ElmAPI *elmapi.API - EbaiAPI *ebaiapi.API - MtpsAPI *mtpsapi.API - DadaAPI *dadaapi.API - MtwmAPI *mtwmapi.API - WeixinAPI *weixinapi.API // 微信公众号 - WeixinMiniAPI *weixinapi.API // 小程序 - WeixinMiniAPI2 *weixinapi.API // 小程序2 - WeixinPageAPI *weixinapi.API // 用户微信扫码登录 + JdAPI *jdapi.API + ElmAPI *elmapi.API + EbaiAPI *ebaiapi.API + MtpsAPI *mtpsapi.API + DadaAPI *dadaapi.API + MtwmAPI *mtwmapi.API + WeixinAPI *weixinapi.API // 微信公众号 + WeixinMiniAPI *weixinapi.API // 小程序 + WeixinMiniAPI2 *weixinapi.API // 小程序2 + WeixinMiniAppID2 string + + WeixinPageAPI *weixinapi.API // 用户微信扫码登录 AutonaviAPI *autonavi.API QiniuAPI *qbox.Mac @@ -125,8 +127,8 @@ func Init() { WeimobAPI = nil } WeixinMiniAPI = weixinapi.New(beego.AppConfig.String("weixinMiniAppID"), beego.AppConfig.String("weixinMiniSecret")) - if weixinMiniAppID2 := beego.AppConfig.String("weixinMiniAppID2"); weixinMiniAppID2 != "" { - WeixinMiniAPI2 = weixinapi.New(weixinMiniAppID2, beego.AppConfig.String("weixinMiniSecret2")) + if WeixinMiniAppID2 = beego.AppConfig.String("weixinMiniAppID2"); WeixinMiniAppID2 != "" { + WeixinMiniAPI2 = weixinapi.New(WeixinMiniAppID2, beego.AppConfig.String("weixinMiniSecret2")) } WeixinPageAPI = weixinapi.New(beego.AppConfig.String("weixinPageAppID"), beego.AppConfig.String("weixinPageSecret"))