getwx2token一套测试

This commit is contained in:
苏尹岚
2020-02-24 15:31:01 +08:00
parent 747c19a26d
commit e135b3e5f6
8 changed files with 94 additions and 6 deletions

View File

@@ -13,7 +13,9 @@ import (
const ( const (
EventCategory = "sys" EventCategory = "sys"
EventTypeWXToken = "wxToken" EventTypeWXToken = "wxToken"
EventTypeWX2Token = "wx2Token"
EventTypeYLYToken = "ylyToken" EventTypeYLYToken = "ylyToken"
EventTypeWeimobToken = "weimobToken" EventTypeWeimobToken = "weimobToken"
) )
@@ -57,6 +59,13 @@ func (h *Hub) OnNewWXToken(token string) {
}) })
} }
func (h *Hub) OnNewWX2Token(token string) {
h.eventHub.PostNewEvent(EventCategory, &eventhub.EventInfo{
Type: EventTypeWX2Token,
Data: token,
})
}
func (h *Hub) OnNewYLYToken(token string) { func (h *Hub) OnNewYLYToken(token string) {
h.eventHub.PostNewEvent(EventCategory, &eventhub.EventInfo{ h.eventHub.PostNewEvent(EventCategory, &eventhub.EventInfo{
Type: EventTypeYLYToken, Type: EventTypeYLYToken,
@@ -82,7 +91,10 @@ func (h *Hub) GetToken(tokenType, oldToken string, waitTime time.Duration) (toke
if weimobToken := api.WeimobAPI.GetToken(); weimobToken != nil { if weimobToken := api.WeimobAPI.GetToken(); weimobToken != nil {
token = string(utils.MustMarshal(weimobToken)) token = string(utils.MustMarshal(weimobToken))
} }
case EventTypeWX2Token:
token = api.WeixinMiniAPI2.CBGetToken()
} }
if token != oldToken { if token != oldToken {
tokenInfo = &TokenInfo{ tokenInfo = &TokenInfo{
IsNew: false, IsNew: false,
@@ -105,6 +117,10 @@ func (h *Hub) GetWXToken(oldToken string, waitTime time.Duration) (tokenInfo *To
return h.GetToken(EventTypeWXToken, oldToken, waitTime) return h.GetToken(EventTypeWXToken, oldToken, waitTime)
} }
func (h *Hub) GetWX2Token(oldToken string, waitTime time.Duration) (tokenInfo *TokenInfo) {
return h.GetToken(EventTypeWX2Token, oldToken, waitTime)
}
func (h *Hub) GetYLYToken(oldToken string, waitTime time.Duration) (tokenInfo *TokenInfo) { func (h *Hub) GetYLYToken(oldToken string, waitTime time.Duration) (tokenInfo *TokenInfo) {
return h.GetToken(EventTypeYLYToken, oldToken, waitTime) return h.GetToken(EventTypeYLYToken, oldToken, waitTime)
} }

View File

@@ -138,6 +138,33 @@ func RefreshWeixinToken() (err error) {
return err return err
} }
func RefreshWeixin2Token() (err error) {
if api.WeixinMiniAPI2 != nil {
err = RefreshConfig("wechat2", weixinTokenExpires, func() (token string, expireTimeStr string) {
globals.SugarLogger.Debugf("RefreshWeixin2Token RunMode:%s", beego.BConfig.RunMode)
if globals.IsMainProductEnv() {
if tokenInfo, err := api.WeixinMiniAPI2.CBRetrieveToken(); err == nil {
globals.SugarLogger.Debugf("RefreshWeixin2Token tokenInfo:%s", utils.Format4Output(tokenInfo, true))
token = tokenInfo.AccessToken
} else {
globals.SugarLogger.Errorf("RefreshWeixin2Token RefreshToken failed with error:%v", err)
}
} else {
if tokenInfo := getWX2TokenFromRemote(api.WeixinMiniAPI2.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.OnNewWX2Token(value)
api.WeixinMiniAPI2.CBSetToken(value)
})
}
return err
}
func RefreshWeimobToken() (err error) { func RefreshWeimobToken() (err error) {
if api.WeimobAPI != nil { if api.WeimobAPI != nil {
err = RefreshConfig("weimob", weimobTokenExpires, func() (token string, expireTimeStr string) { err = RefreshConfig("weimob", weimobTokenExpires, func() (token string, expireTimeStr string) {
@@ -279,6 +306,15 @@ func getWXTokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) {
return tokenInfo return tokenInfo
} }
func getWX2TokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) {
if !globals.IsMainProductEnv() && globals.GetWeixinTokenKey != "" && globals.GetWeixin2TokenURL != "" {
tokenInfo = PollingRemotEvent(globals.GetWeixin2TokenURL, 0, map[string]interface{}{
"oldToken": oldToken,
})
}
return tokenInfo
}
func getYLYTokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) { func getYLYTokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) {
if !globals.IsMainProductEnv() && globals.GetWeixinTokenKey != "" && globals.GetYLYTokenURL != "" { if !globals.IsMainProductEnv() && globals.GetWeixinTokenKey != "" && globals.GetYLYTokenURL != "" {
tokenInfo = PollingRemotEvent(globals.GetYLYTokenURL, 0, map[string]interface{}{ tokenInfo = PollingRemotEvent(globals.GetYLYTokenURL, 0, map[string]interface{}{

View File

@@ -316,6 +316,9 @@ dadaSourceID = "73753"
weixinAppID = "wx2bb99eb5d2c9b82c" weixinAppID = "wx2bb99eb5d2c9b82c"
weixinSecret = "6bbbed1443cc062c20a015a64c07a531" weixinSecret = "6bbbed1443cc062c20a015a64c07a531"
getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken"
getWeixin2TokenURL = "http://www.jxc4.com/v2/sys/GetWX2Token"
weixinMiniAppID2 = "wx4b5930c13f8b1170"
weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d"
mtwmCallbackURL = "http://callback.alpha.jxc4.com" mtwmCallbackURL = "http://callback.alpha.jxc4.com"
@@ -367,6 +370,7 @@ weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d"
disableWeimob = false disableWeimob = false
getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken"
getWeixin2TokenURL = "http://www.jxc4.com/v2/sys/GetWX2Token"
getWeimobTokenURL = "http://www.jxc4.com/v2/sys/GetWeimobToken" getWeimobTokenURL = "http://www.jxc4.com/v2/sys/GetWeimobToken"
dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true" dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true"

View File

@@ -72,7 +72,7 @@ func (c *EventController) GetCheckVendorCookie() {
func (c *EventController) GetWeixinUnlimited() { func (c *EventController) GetWeixinUnlimited() {
c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) {
// api.WeixinMiniAPI2.CBRetrieveToken() // api.WeixinMiniAPI2.CBRetrieveToken()
result, err := api.WeixinAPI.GetUnlimited(params.Scene, params.Page) result, err := api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page)
fileName := "wxcode" + utils.Int64ToStr(time.Now().Unix()) + ".jpg" fileName := "wxcode" + utils.Int64ToStr(time.Now().Unix()) + ".jpg"
retVal, err = jxutils.UploadExportContent([]byte(result["fakeData"].(string)), fileName) retVal, err = jxutils.UploadExportContent([]byte(result["fakeData"].(string)), fileName)
// tasks.RefreshWeixinToken() // tasks.RefreshWeixinToken()

View File

@@ -37,6 +37,23 @@ func (c *SysController) GetWXToken() {
}) })
} }
// @Title 得到微信小程序2token
// @Description 得到微信小程序2token
// @Param accessKey query string true "假token"
// @Param oldToken query string false "之前的token"
// @Param waitSecond query int false "等待秒数"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetWX2Token [get]
func (c *SysController) GetWX2Token() {
c.callGetWX2Token(func(params *tSysGetWX2TokenParams) (retVal interface{}, errCode string, err error) {
if params.AccessKey == globals.GetWeixinTokenKey {
retVal = syseventhub.SysEventHub.GetWX2Token(params.OldToken, time.Duration(params.WaitSecond)*time.Second)
}
return retVal, "", err
})
}
// @Title 得到易联云token // @Title 得到易联云token
// @Description 得到易联云token // @Description 得到易联云token
// @Param accessKey query string true "假token" // @Param accessKey query string true "假token"

View File

@@ -32,10 +32,11 @@ var (
BackstageHost string BackstageHost string
WxBackstageHost string WxBackstageHost string
GetWeixinTokenURL string GetWeixinTokenURL string
GetWeixinTokenKey string GetWeixin2TokenURL string
GetYLYTokenURL string GetWeixinTokenKey string
GetWeimobTokenURL string GetYLYTokenURL string
GetWeimobTokenURL string
StoreName string StoreName string
StoreNameMtwm string StoreNameMtwm string
@@ -99,6 +100,7 @@ func Init() {
WxBackstageHost = beego.AppConfig.DefaultString("wxBackstageHost", "") WxBackstageHost = beego.AppConfig.DefaultString("wxBackstageHost", "")
GetWeixinTokenURL = beego.AppConfig.DefaultString("getWeixinTokenURL", "") GetWeixinTokenURL = beego.AppConfig.DefaultString("getWeixinTokenURL", "")
GetWeixin2TokenURL = beego.AppConfig.DefaultString("getWeixin2TokenURL", "")
GetYLYTokenURL = beego.AppConfig.DefaultString("getYLYTokenURL", "") GetYLYTokenURL = beego.AppConfig.DefaultString("getYLYTokenURL", "")
GetWeimobTokenURL = beego.AppConfig.DefaultString("getWeimobTokenURL", "") GetWeimobTokenURL = beego.AppConfig.DefaultString("getWeimobTokenURL", "")
GetWeixinTokenKey = beego.AppConfig.DefaultString("getWeixinTokenKey", "") GetWeixinTokenKey = beego.AppConfig.DefaultString("getWeixinTokenKey", "")

View File

@@ -126,6 +126,10 @@ func main() {
globals.SugarLogger.Errorf("RefreshWeixinToken failed with error:%s", err) globals.SugarLogger.Errorf("RefreshWeixinToken failed with error:%s", err)
return return
} }
if err := tasks.RefreshWeixin2Token(); err != nil {
globals.SugarLogger.Errorf("RefreshWeixin2Token failed with error:%s", err)
return
}
// if err := tasks.RefreshWeimobToken(); err != nil { // if err := tasks.RefreshWeimobToken(); err != nil {
// globals.SugarLogger.Errorf("RefreshWeimobToken failed with error:%s", err) // globals.SugarLogger.Errorf("RefreshWeimobToken failed with error:%s", err)
// return // return

View File

@@ -2133,6 +2133,15 @@ func init() {
Filters: nil, Filters: nil,
Params: nil}) Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SysController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SysController"],
beego.ControllerComments{
Method: "GetWX2Token",
Router: `/GetWX2Token`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SysController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SysController"], beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SysController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SysController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "GetWXToken", Method: "GetWXToken",