微信相关接口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.5 KiB

package wechat
import (
"fmt"
"log"
)
type wx_access_token_res struct {
AccessToken string `json:"access_token"`
ExpiresIn int `json:"expires_in"`
Errcode int `json:"errcode"`
Errmsg string `json:"errmsg"`
}
/**
* 从微信api取access_token
*/
func GetAccessToken(appid, secret string) (wx_access_token_res, error) {
url := fmt.Sprintf(ACCESS_TOKEN_API, appid, secret)
data_byte, err := SendHttp("GET", url, nil)
var data wx_access_token_res
if err == nil {
err = json.Unmarshal(data_byte, &data)
if err != nil {
log.Println("get access token from WX api error:", err)
}
if data.Errcode != 0 {
log.Println("get access token from WX api fail:", data.Errcode, data.Errmsg)
}
}
return data, err
}
/**
* 从微信api取access_token
*/
func GetStableAccessToken(appid, secret string) (wx_access_token_res, error) {
var err error
var data wx_access_token_res
p_data := map[string]interface{}{}
p_data["grant_type"] = "client_credential"
p_data["appid"] = appid
p_data["secret"] = secret
p_data["force_refresh"] = false
requestDataJson, err := json.Marshal(p_data)
if err != nil {
log.Println("getStableAccessToken Marshal err", err)
return data, err
}
response, err := PostJson("https://api.weixin.qq.com/cgi-bin/stable_token", requestDataJson)
if err != nil {
log.Println("getStableAccessToken PostJson err", err)
return data, err
}
err = json.Unmarshal(response, &data)
if err != nil {
// 有错,但能解析
log.Println("getStableAccessToken Unmarshal err", err)
}
return data, err
}