- 兼容一个新的微信小程序

This commit is contained in:
gazebo
2019-08-12 10:46:35 +08:00
parent fb2d8734f9
commit d90bc3cb11
4 changed files with 42 additions and 15 deletions

View File

@@ -4,6 +4,7 @@ import (
"encoding/base64"
"errors"
"git.rosy.net.cn/baseapi/platformapi/weixinapi"
"git.rosy.net.cn/jx-callback/business/auth2"
"git.rosy.net.cn/jx-callback/business/auth2/authprovider"
"git.rosy.net.cn/jx-callback/globals"
@@ -30,7 +31,7 @@ func init() {
func (a *MiniAuther) VerifySecret(dummy, jsCode string) (authBindEx *auth2.AuthBindEx, err error) {
globals.SugarLogger.Debugf("weixin mini VerifySecret jsCode:%s", jsCode)
sessionInfo, err := api.WeixinMiniAPI.SNSCode2Session(jsCode)
sessionInfo, err := ProxySNSCode2Session(jsCode)
if err == nil {
sessionKey := sessionInfo.SessionKey
sessionInfo.SessionKey = ""
@@ -48,9 +49,25 @@ func (a *MiniAuther) DecryptData(authInfo *auth2.AuthInfo, encryptedData, iv str
return "", ErrAuthTypeShouldBeMini
}
sessionKey := authInfo.AuthBindInfo.UserData.(string)
decryptedData, err := api.WeixinMiniAPI.SNSDecodeMiniProgramData(encryptedData, sessionKey, iv)
decryptedData, err := ProxySNSDecodeMiniProgramData(encryptedData, sessionKey, iv)
if err != nil {
return "", err
}
return base64.StdEncoding.EncodeToString(decryptedData), nil
}
func ProxySNSCode2Session(jsCode string) (sessionInfo *weixinapi.SessionInfo, err error) {
sessionInfo, err = api.WeixinMiniAPI.SNSCode2Session(jsCode)
if err != nil && api.WeixinMiniAPI2 != nil {
sessionInfo, err = api.WeixinMiniAPI2.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
}