From 8f61fc66bfee5bd533917e426a66956a765a2249 Mon Sep 17 00:00:00 2001 From: Rick Date: Sun, 12 Nov 2023 08:43:04 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E5=A2=9E=E5=8A=A0=E6=8E=A5=E5=8F=A3=20-?= =?UTF-8?q?=20=E8=8E=B7=E5=8F=96=E7=A8=B3=E5=AE=9A=E7=89=88=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E7=94=A8=E5=87=AD=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- auth/get_stable_access_token.go | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 auth/get_stable_access_token.go diff --git a/auth/get_stable_access_token.go b/auth/get_stable_access_token.go new file mode 100644 index 0000000..1fc5f6d --- /dev/null +++ b/auth/get_stable_access_token.go @@ -0,0 +1,42 @@ +package auth + +import "github.com/medivhzhan/weapp/v3/request" + +const apiGetStableAccessToken = "/cgi-bin/stable_token" + +type GetStableAccessTokenRequest struct { + // 必填 填写 client_credential + GrantType string `json:"grant_type"` + // 必填 小程序唯一凭证,即 AppID,可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态) + Appid string `json:"appid"` + // 必填 小程序唯一凭证密钥,即 AppSecret,获取方式同 appid + Secret string `json:"secret"` + // 默认使用 false。1. force_refresh = false 时为普通调用模式,access_token 有效期内重复调用该接口不会更新 access_token;2. 当force_refresh = true 时为强制刷新模式,会导致上次获取的 access_token 失效,并返回新的 access_token + ForceRefresh bool `json:"force_refresh"` +} + +type GetStableAccessTokenResponse struct { + request.CommonError + // 获取到的凭证 + AccessToken string `json:"access_token"` + // 凭证有效时间,单位:秒。目前是7200秒之内的值。 + ExpiresIn int64 `json:"expires_in"` +} + +// 获取稳定版接口调用凭据 +// doc: https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/getStableAccessToken.html +func (cli *Auth) GetStableAccessToken(req *GetStableAccessTokenRequest) (*GetStableAccessTokenResponse, error) { + + api, err := cli.conbineURI(apiGetStableAccessToken, nil, false) + if err != nil { + return nil, err + } + + res := new(GetStableAccessTokenResponse) + err = cli.request.Post(api, req, res) + if err != nil { + return nil, err + } + + return res, nil +}