- 新旧小程序兼容BUG修复

This commit is contained in:
gazebo
2019-08-12 14:15:11 +08:00
parent 4ec85bbb73
commit 9ab43f291e
2 changed files with 24 additions and 17 deletions

View File

@@ -3,6 +3,7 @@ package weixin
import ( import (
"encoding/base64" "encoding/base64"
"errors" "errors"
"strings"
"git.rosy.net.cn/baseapi/platformapi/weixinapi" "git.rosy.net.cn/baseapi/platformapi/weixinapi"
"git.rosy.net.cn/jx-callback/business/auth2" "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) { 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 { if err != nil && api.WeixinMiniAPI2 != nil {
sessionInfo, err = api.WeixinMiniAPI2.SNSCode2Session(jsCode) sessionInfo, err = miniApi.SNSCode2Session(jsCode)
} }
return sessionInfo, err return sessionInfo, err
} }
func ProxySNSDecodeMiniProgramData(encryptedData, sessionKey, iv string) (decryptedData []byte, err error) { func ProxySNSDecodeMiniProgramData(encryptedData, sessionKey, iv string) (decryptedData []byte, err error) {
decryptedData, err = api.WeixinMiniAPI.SNSDecodeMiniProgramData(encryptedData, sessionKey, iv) 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 return decryptedData, err
} }

View File

@@ -27,16 +27,18 @@ import (
) )
var ( var (
JdAPI *jdapi.API JdAPI *jdapi.API
ElmAPI *elmapi.API ElmAPI *elmapi.API
EbaiAPI *ebaiapi.API EbaiAPI *ebaiapi.API
MtpsAPI *mtpsapi.API MtpsAPI *mtpsapi.API
DadaAPI *dadaapi.API DadaAPI *dadaapi.API
MtwmAPI *mtwmapi.API MtwmAPI *mtwmapi.API
WeixinAPI *weixinapi.API // 微信公众号 WeixinAPI *weixinapi.API // 微信公众号
WeixinMiniAPI *weixinapi.API // 小程序 WeixinMiniAPI *weixinapi.API // 小程序
WeixinMiniAPI2 *weixinapi.API // 小程序2 WeixinMiniAPI2 *weixinapi.API // 小程序2
WeixinPageAPI *weixinapi.API // 用户微信扫码登录 WeixinMiniAppID2 string
WeixinPageAPI *weixinapi.API // 用户微信扫码登录
AutonaviAPI *autonavi.API AutonaviAPI *autonavi.API
QiniuAPI *qbox.Mac QiniuAPI *qbox.Mac
@@ -125,8 +127,8 @@ func Init() {
WeimobAPI = nil WeimobAPI = nil
} }
WeixinMiniAPI = weixinapi.New(beego.AppConfig.String("weixinMiniAppID"), beego.AppConfig.String("weixinMiniSecret")) WeixinMiniAPI = weixinapi.New(beego.AppConfig.String("weixinMiniAppID"), beego.AppConfig.String("weixinMiniSecret"))
if weixinMiniAppID2 := beego.AppConfig.String("weixinMiniAppID2"); weixinMiniAppID2 != "" { if WeixinMiniAppID2 = beego.AppConfig.String("weixinMiniAppID2"); WeixinMiniAppID2 != "" {
WeixinMiniAPI2 = weixinapi.New(weixinMiniAppID2, beego.AppConfig.String("weixinMiniSecret2")) WeixinMiniAPI2 = weixinapi.New(WeixinMiniAppID2, beego.AppConfig.String("weixinMiniSecret2"))
} }
WeixinPageAPI = weixinapi.New(beego.AppConfig.String("weixinPageAppID"), beego.AppConfig.String("weixinPageSecret")) WeixinPageAPI = weixinapi.New(beego.AppConfig.String("weixinPageAppID"), beego.AppConfig.String("weixinPageSecret"))