2025-10-27 11:05:03 +08:00

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
}