40 lines
968 B
Go
40 lines
968 B
Go
package miniprogram
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/go-resty/resty/v2"
|
|
)
|
|
|
|
type AccessTokenResponse struct {
|
|
AccessToken string `json:"access_token"`
|
|
ExpiresIn int `json:"expires_in"`
|
|
}
|
|
|
|
// GetAccessToken 获取微信 access_token
|
|
// DOC: https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html
|
|
func GetAccessToken(appID, appSecret string, resultStruct interface{}) error {
|
|
requestData := map[string]string{}
|
|
requestData["grant_type"] = "client_credential"
|
|
requestData["appid"] = appID
|
|
requestData["secret"] = appSecret
|
|
|
|
response, err := resty.New().R().
|
|
ForceContentType("application/json").
|
|
SetHeader("Content-Type", "application/json").
|
|
SetQueryParams(requestData).
|
|
SetResult(resultStruct).
|
|
Get("https://api.weixin.qq.com/cgi-bin/token")
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// 检查响应状态码
|
|
if response.IsError() {
|
|
return fmt.Errorf("服务异常(%d)", response.StatusCode())
|
|
}
|
|
|
|
return nil
|
|
}
|