- 解决wxtoken的刷新问题

This commit is contained in:
gazebo
2019-04-27 15:44:26 +08:00
parent beb6482a1a
commit dbd9e3a3d2
3 changed files with 54 additions and 66 deletions

View File

@@ -4,7 +4,6 @@ import (
"fmt"
"io/ioutil"
"net/http"
"strings"
"time"
"git.rosy.net.cn/baseapi/platformapi"
@@ -132,10 +131,14 @@ func RefreshWeixinToken() (err error) {
globals.SugarLogger.Errorf("RefreshWeixinToken RefreshToken failed with error:%v", err)
}
} else {
token = getWXTokenFromProd(api.WeixinAPI.CBGetToken())
tokenInfo := getWXTokenFromProd(api.WeixinAPI.CBGetToken())
if !tokenInfo.IsNew {
expireTimeStr = utils.Time2Str(time.Now().Add(-weixinTokenExpires))
}
token = tokenInfo.Token
}
}
return token, ""
return token, expireTimeStr
}, func(value string) {
syseventhub.SysEventHub.OnNewWXToken(value)
api.WeixinAPI.CBSetToken(value)
@@ -242,8 +245,7 @@ func RefreshYilianyunToken() (err error) {
})
}
func getWXTokenFromProd(oldToken string) (token string) {
token = oldToken
func getWXTokenFromProd(oldToken string) (tokenInfo *syseventhub.WXTokenInfo) {
if globals.GetWeixinTokenKey != "" && globals.GetWeixinTokenURL != "" {
for {
waitSecond := 5 * 60
@@ -256,8 +258,11 @@ func getWXTokenFromProd(oldToken string) (token string) {
var result CallResult
if err = utils.UnmarshalUseNumber(data, &result); err == nil {
if result.Code == "0" {
token = strings.Replace(result.Data, "\"", "", -1)
break
if result.Data != "" {
if err = utils.UnmarshalUseNumber(data, &tokenInfo); err == nil && tokenInfo != nil {
break
}
}
} else {
err = fmt.Errorf("return code is:%s", result.Code)
}
@@ -273,5 +278,5 @@ func getWXTokenFromProd(oldToken string) (token string) {
}
}
}
return token
return tokenInfo
}