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(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
|
|
}
|