授权码

This commit is contained in:
邹宗楠
2022-03-25 18:02:12 +08:00
parent d43a076bec
commit 4a50ca3476
3 changed files with 27 additions and 26 deletions

View File

@@ -133,22 +133,22 @@ func (a *API) AccessAPI(baseUrl, actionApi, method string, bizParams map[string]
// 获取access_token
func (a *API) GetAccessToken() (tokenInfo *TokenInfo, err error) {
parameter := make(map[string]interface{}, 6)
parameter["grant_type"] = a.grantType
parameter["grant_type"] = "refresh_token"
parameter["app_id"] = a.appID
parameter["merchant_id"] = a.merchantId
// 先去刷新token,没有的话再去获取token(code只能使用一次,生成的token管一年)
var result map[string]interface{}
parameter["refresh_token"] = a.refreshToken
if a.refreshToken == "" {
if a.accessToken != "" && a.refreshToken != "" {
result, err = a.AccessAPI(RefreshTokenUrl, "", RequestPost, parameter)
} else {
parameter["grant_type"] = "authorization_code"
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

View File

@@ -25,6 +25,7 @@ type API struct {
signature string `json:"signature"`
timestamp int64 `json:"timestamp"`
accessToken string `json:"access_token"`
refreshToken string `json:"refresh_token"`
appSecret string `json:"app_secret"`
version string `json:"version"`
locker sync.RWMutex

View File

@@ -74,19 +74,19 @@ func (a *API) GetAccessToken() (tokenInfo *TokenInfo, err error) {
parameter["grant_type"] = "refresh_token"
parameter["app_id"] = a.appID
parameter["merchant_id"] = a.merchantId
parameter["refresh_token"] = "1"
// 先去刷新token,没有的话再去获取token(code只能使用一次,生成的token管一年)
var result map[string]interface{}
if a.accessToken != "" && a.refreshToken != "" {
result, err = a.AccessAPI(RefreshTokenUrl, "", RequestPost, parameter)
if err != nil {
} else {
parameter["grant_type"] = "authorization_code"
parameter["code"] = a.code
result, err = a.AccessAPI(TokenURL, "", RequestPost, parameter)
}
if err != nil {
return nil, err
}
}
if err := utils.Map2StructByJson(result, &tokenInfo, false); err != nil {
return nil, err