Ai
2 Star 0 Fork 0

hansdq/dyQcSDk

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
access_token_builder.go 1.97 KB
一键复制 编辑 原始数据 按行查看 历史
Hansdq 提交于 2022-12-25 22:28 +08:00 . 路径迁移
package doudian_sdk
import (
"gitee.com/hansdq/dy-qc-sdk/errors"
"gitee.com/hansdq/dy-qc-sdk/utils"
)
type AccessToken struct {
CreateTokenData
response *CreateTokenResponse
}
func (at *AccessToken) IsSuccess() bool {
return at.response.Code == 10000
}
type BuildAccessTokenParam struct {
Code string
ShopId int64
Config *DoudianOpConfig
}
type RefreshAccessTokenParam struct {
RefreshToken string
Config *DoudianOpConfig
}
func BuildAccessToken(param *BuildAccessTokenParam) (*AccessToken, error) {
request := NewCreateTokenRequest()
if len(param.Code) > 0 {
request.GetParams().GrantType = "authorization_code"
request.GetParams().Code = param.Code
} else {
request.GetParams().GrantType = "authorization_self"
request.GetParams().Code = ""
request.GetParams().ShopId = param.ShopId
}
if param.Config != nil {
request.SetConfig(param.Config)
}
response, err := request.Execute(nil)
if err != nil {
return nil, err
}
accessToken := &AccessToken{
CreateTokenData: response.Data,
response: response,
}
if !accessToken.IsSuccess() {
return nil, errors.NewDoudianOpErrorWithMessage(errors.BuildAccessTokenError, utils.MarshalNoErr(response))
}
return accessToken, nil
}
func RefreshAccessToken(param *RefreshAccessTokenParam) (*AccessToken, error) {
request := NewRefreshTokenRequest()
request.GetParam().GrantType = "refresh_token"
request.GetParam().RefreshToken = param.RefreshToken
if param.Config != nil {
request.SetConfig(param.Config)
}
response, err := request.Execute(nil)
if err != nil {
return nil, err
}
accessToken := &AccessToken{
CreateTokenData: response.Data,
response: response,
}
if !accessToken.IsSuccess() {
return nil, errors.NewDoudianOpErrorWithMessage(errors.BuildAccessTokenError, utils.MarshalNoErr(response))
}
return accessToken, nil
}
func ParseAccessToken(accessTokenStr string) *AccessToken {
accessToken := &AccessToken{}
accessToken.AccessToken = accessTokenStr
return accessToken
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/hansdq/dy-qc-sdk.git
git@gitee.com:hansdq/dy-qc-sdk.git
hansdq
dy-qc-sdk
dyQcSDk
v1.0.8

搜索帮助