新的wexintoken

This commit is contained in:
苏尹岚
2020-08-12 14:27:23 +08:00
parent 24a30adca7
commit 8294f82ed5
3 changed files with 48 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ const (
EventTypeWXToken = "wxToken"
EventTypeWX2Token = "wx2Token"
EventTypeWX3Token = "wx3Token"
EventTypeYLYToken = "ylyToken"
EventTypeWeimobToken = "weimobToken"
@@ -66,6 +67,13 @@ func (h *Hub) OnNewWX2Token(token string) {
})
}
func (h *Hub) OnNewWX3Token(token string) {
h.eventHub.PostNewEvent(EventCategory, &eventhub.EventInfo{
Type: EventTypeWX3Token,
Data: token,
})
}
func (h *Hub) OnNewYLYToken(token string) {
h.eventHub.PostNewEvent(EventCategory, &eventhub.EventInfo{
Type: EventTypeYLYToken,

View File

@@ -165,6 +165,33 @@ func RefreshWeixin2Token() (err error) {
return err
}
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)
})
}
return err
}
func RefreshWeimobToken() (err error) {
if api.WeimobAPI != nil {
err = RefreshConfig("weimob", weimobTokenExpires, func() (token string, expireTimeStr string) {
@@ -315,6 +342,15 @@ func getWX2TokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) {
return tokenInfo
}
func getWX3TokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) {
if !globals.IsMainProductEnv() && globals.GetWeixinTokenKey != "" && globals.GetWeixinTokenURL != "" {
tokenInfo = PollingRemotEvent(globals.GetWeixinTokenURL, 0, map[string]interface{}{
"oldToken": oldToken,
})
}
return tokenInfo
}
func getYLYTokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) {
if !globals.IsMainProductEnv() && globals.GetWeixinTokenKey != "" && globals.GetYLYTokenURL != "" {
tokenInfo = PollingRemotEvent(globals.GetYLYTokenURL, 0, map[string]interface{}{