fengniao ceshi
This commit is contained in:
@@ -30,6 +30,12 @@ func (a *API) SetToken(token string) {
|
||||
a.accessToken = token
|
||||
}
|
||||
|
||||
func (a *API) SetRefreshToken(token string) {
|
||||
a.locker.Lock()
|
||||
defer a.locker.Unlock()
|
||||
a.refreshToken = token
|
||||
}
|
||||
|
||||
func (a *API) MakeFnRequestHead() map[string]interface{} {
|
||||
requestParam := make(map[string]interface{}, 6)
|
||||
requestParam["access_token"] = a.accessToken
|
||||
@@ -45,18 +51,21 @@ func New(appID, appSecret, merchantId, code string, config ...*platformapi.APICo
|
||||
if len(config) > 0 {
|
||||
curConfig = *config[0]
|
||||
}
|
||||
|
||||
// 查询蜂鸟refeshToken
|
||||
return &API{
|
||||
grantType: "authorization_code", // 授权模式,填固定值authorization_code
|
||||
code: code,
|
||||
appID: appID,
|
||||
merchantId: merchantId,
|
||||
signature: "",
|
||||
accessToken: "",
|
||||
version: "1.0",
|
||||
appSecret: appSecret,
|
||||
locker: sync.RWMutex{},
|
||||
client: &http.Client{Timeout: curConfig.ClientTimeout},
|
||||
config: &curConfig,
|
||||
grantType: "authorization_code", // 授权模式,填固定值authorization_code
|
||||
code: code,
|
||||
appID: appID,
|
||||
merchantId: merchantId,
|
||||
signature: "",
|
||||
accessToken: "",
|
||||
refreshToken: "",
|
||||
version: "1.0",
|
||||
appSecret: appSecret,
|
||||
locker: sync.RWMutex{},
|
||||
client: &http.Client{Timeout: curConfig.ClientTimeout},
|
||||
config: &curConfig,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,14 +134,22 @@ func (a *API) AccessAPI(baseUrl, actionApi, method string, bizParams map[string]
|
||||
func (a *API) GetAccessToken() (tokenInfo *TokenInfo, err error) {
|
||||
parameter := make(map[string]interface{}, 6)
|
||||
parameter["grant_type"] = a.grantType
|
||||
parameter["code"] = a.code
|
||||
parameter["app_id"] = a.appID
|
||||
parameter["merchant_id"] = a.merchantId
|
||||
|
||||
result, err := a.AccessAPI(TokenURL, "", RequestPost, parameter)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
// 先去刷新token,没有的话再去获取token(code只能使用一次,生成的token管一年)
|
||||
var result map[string]interface{}
|
||||
parameter["refresh_token"] = a.refreshToken
|
||||
if a.refreshToken == "" {
|
||||
parameter["code"] = a.code
|
||||
result, err = a.AccessAPI(TokenURL, "", RequestPost, parameter)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
result, err = a.AccessAPI(RefreshTokenUrl, "", RequestPost, parameter)
|
||||
}
|
||||
|
||||
if err := utils.Map2StructByJson(result, &tokenInfo, false); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user