- 解决wxtoken的刷新问题
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user