diff --git a/business/auth2/authprovider/weixin/weixin.go b/business/auth2/authprovider/weixin/weixin.go index ccb355a21..2f4b344a9 100644 --- a/business/auth2/authprovider/weixin/weixin.go +++ b/business/auth2/authprovider/weixin/weixin.go @@ -15,6 +15,7 @@ const ( AuthTypeWeixin = "wxqrcode" // 微信扫码 AuthTypeMP = "weixinsns" // 公众号 AuthTypeWXNative = "wxnative" // 微信APP + AuthTypeWxApp = "weixinapp" //app微信登录 ) type Auther struct { @@ -26,6 +27,7 @@ var ( AutherObjWX *Auther AutherObjMP *Auther AutherObjNative *Auther + AutherObjApp *Auther ) var ( @@ -47,6 +49,11 @@ func init() { authType: AuthTypeWXNative, } auth2.RegisterAuther(AuthTypeWXNative, AutherObjNative) + + AutherObjApp = &Auther{ + authType: AuthTypeWxApp, + } + auth2.RegisterAuther(AuthTypeWxApp, AutherObjApp) } func (a *Auther) VerifySecret(id, secret string) (authBindEx *auth2.AuthBindEx, err error) { @@ -71,7 +78,7 @@ func (a *Auther) VerifySecret(id, secret string) (authBindEx *auth2.AuthBindEx, if err == nil { wxUserinfo, err2 := a.getAPI().SNSGetUserInfo(accessToken, openID) if err = err2; err == nil { - if authBindEx, err = a.UnionFindAuthBind(a.authType, a.getAPI().GetAppID(), []string{AuthTypeWeixin, AuthTypeMP, AuthTypeMini, AuthTypeWXNative}, wxUserinfo.OpenID, wxUserinfo.UnionID, wxUserinfo); err == nil { + if authBindEx, err = a.UnionFindAuthBind(a.authType, a.getAPI().GetAppID(), []string{AuthTypeWeixin, AuthTypeMP, AuthTypeMini, AuthTypeWXNative, AuthTypeWxApp}, wxUserinfo.OpenID, wxUserinfo.UnionID, wxUserinfo); err == nil { authBindEx.UserHint = &auth2.UserBasic{ Name: wxUserinfo.NickName, Avatar: wxUserinfo.HeadImgURL, @@ -86,6 +93,9 @@ func (a *Auther) getAPI() *weixinapi.API { if a.authType == AuthTypeWeixin { return api.WeixinPageAPI } + if a.authType == AuthTypeWxApp { + return api.WeixinApp + } return api.WeixinAPI } diff --git a/business/auth2/authprovider/weixin/weixin_mini.go b/business/auth2/authprovider/weixin/weixin_mini.go index 56643e410..072ea9573 100644 --- a/business/auth2/authprovider/weixin/weixin_mini.go +++ b/business/auth2/authprovider/weixin/weixin_mini.go @@ -92,9 +92,6 @@ func getWxApp(appID string) (miniApi *weixinapi.API) { if len(appID) > 0 && appID == api.WeixinMiniAppID2 { miniApi = api.WeixinMiniAPI2 } - if len(appID) > 0 && appID == api.WeixinMiniAppID3 { - miniApi = api.WeixinMiniAPI3 - } return miniApi } diff --git a/business/jxutils/tasks/configrefresh.go b/business/jxutils/tasks/configrefresh.go index dc77418fa..9086c72a4 100644 --- a/business/jxutils/tasks/configrefresh.go +++ b/business/jxutils/tasks/configrefresh.go @@ -166,29 +166,29 @@ func RefreshWeixin2Token() (err error) { } func RefreshWeixin3Token() (err error) { - if api.WeixinMiniAPI3 != nil { - err = RefreshConfig("wechat3", weixinTokenExpires, func() (token string, expireTimeStr string) { - globals.SugarLogger.Debugf("RefreshWeixin3Token RunMode:%s", beego.BConfig.RunMode) - if globals.IsMainProductEnv() { - if tokenInfo, err := api.WeixinMiniAPI3.CBRetrieveToken(); err == nil { - globals.SugarLogger.Debugf("RefreshWeixin3Token tokenInfo:%s", utils.Format4Output(tokenInfo, true)) - token = tokenInfo.AccessToken - } else { - globals.SugarLogger.Errorf("RefreshWeixin3Token RefreshToken failed with error:%v", err) - } - } else { - if tokenInfo := getWX3TokenFromRemote(api.WeixinMiniAPI3.CBGetToken()); tokenInfo != nil { - expireTimeStr = utils.Time2Str(time.Now().Add(-weixinTokenExpires)) - token = tokenInfo.Token - } - } - return token, expireTimeStr - }, func(value string) { - globals.SugarLogger.Debugf("RefreshWeixinToken setter value:%s", value) - syseventhub.SysEventHub.OnNewWX3Token(value) - api.WeixinMiniAPI3.CBSetToken(value) - }) - } + // if api.WeixinMiniAPI3 != nil { + // err = RefreshConfig("wechat3", weixinTokenExpires, func() (token string, expireTimeStr string) { + // globals.SugarLogger.Debugf("RefreshWeixin3Token RunMode:%s", beego.BConfig.RunMode) + // if globals.IsMainProductEnv() { + // if tokenInfo, err := api.WeixinMiniAPI3.CBRetrieveToken(); err == nil { + // globals.SugarLogger.Debugf("RefreshWeixin3Token tokenInfo:%s", utils.Format4Output(tokenInfo, true)) + // token = tokenInfo.AccessToken + // } else { + // globals.SugarLogger.Errorf("RefreshWeixin3Token RefreshToken failed with error:%v", err) + // } + // } else { + // if tokenInfo := getWX3TokenFromRemote(api.WeixinMiniAPI3.CBGetToken()); tokenInfo != nil { + // expireTimeStr = utils.Time2Str(time.Now().Add(-weixinTokenExpires)) + // token = tokenInfo.Token + // } + // } + // return token, expireTimeStr + // }, func(value string) { + // globals.SugarLogger.Debugf("RefreshWeixinToken setter value:%s", value) + // syseventhub.SysEventHub.OnNewWX3Token(value) + // api.WeixinMiniAPI3.CBSetToken(value) + // }) + // } return err } diff --git a/globals/api/api.go b/globals/api/api.go index ff5420c37..60e077ed4 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -60,7 +60,7 @@ var ( WeixinAPI *weixinapi.API // 微信公众号 WeixinMiniAPI *weixinapi.API // 小程序 WeixinMiniAPI2 *weixinapi.API // 小程序2 - WeixinMiniAPI3 *weixinapi.API // 小程序3 + WeixinApp *weixinapi.API // app微信登录 WeixinMiniAppID2 string WeixinMiniAppID3 string WxpayAPI *wxpayapi.API // 微信支付API @@ -213,7 +213,7 @@ func Init() { } WeixinPageAPI = weixinapi.New(beego.AppConfig.String("weixinPageAppID"), beego.AppConfig.String("weixinPageSecret")) if WeixinMiniAppID3 = beego.AppConfig.String("weixinMiniAppID3"); WeixinMiniAppID3 != "" { - WeixinMiniAPI3 = weixinapi.New(WeixinMiniAppID3, beego.AppConfig.String("weixinMiniSecret3")) + WeixinApp = weixinapi.New(WeixinMiniAppID3, beego.AppConfig.String("weixinMiniSecret3")) } if globals.WxpayNotifyURL != "" { // WxpayAPI = wxpayapi.New(beego.AppConfig.String("wxpayAppID"), beego.AppConfig.String("wxpayAppKey"), beego.AppConfig.String("wxpayAppMchID"))