package wechat import ( "errors" "fmt" ) type AppOpenIdData struct { AccessToken string `json:"access_token"` ExpiresIn int `json:"expires_in"` RefreshToken string `json:"refresh_token"` Openid string `json:"openid"` Scope string `json:"scope"` Unionid interface{} `json:"unionid"` Errcode int `json:"errcode"` Errmsg string `json:"errmsg"` } type MiniAppOpenidData struct { Openid string `json:"openid"` SessionKey interface{} `json:"session_key"` Unionid interface{} `json:"unionid"` Errcode int `json:"errcode"` Errmsg string `json:"errmsg"` } type MpOpenIdData struct { AccessToken string `json:"access_token"` ExpiresIn int `json:"expires_in"` RefreshToken string `json:"refresh_token"` Openid string `json:"openid"` Scope string `json:"scope"` Errcode int `json:"errcode"` Errmsg string `json:"errmsg"` } /** * 从微信api取openid */ func GetAppOpenid(appid, secret, code string) (AppOpenIdData, error) { var data AppOpenIdData url := fmt.Sprintf(GET_APP_OPENID, appid, secret, code) data_byte, err := SendHttp("GET", url, nil) if err != nil { return data, err } err = json.Unmarshal(data_byte, &data) return data, err } /** * 从微信api取小程序openid */ func GetMiniAppOpenid(appid, secret, code string) (MiniAppOpenidData, error) { url := fmt.Sprintf(GET_MINIAPP_OPENID_API, appid, secret, code) data_byte, err := SendHttp("GET", url, nil) var data MiniAppOpenidData if err != nil { return data, err } err = json.Unmarshal(data_byte, &data) return data, err } /** * 从微信api取公众号openid */ func GetMpOpenid(appid, secret, code string) (MpOpenIdData, error) { url := fmt.Sprintf(GET_MP_OPENID_API, appid, secret, code) data_byte, err := SendHttp("GET", url, nil) var data MpOpenIdData if err != nil { return data, err } err = json.Unmarshal(data_byte, &data) if data.Errcode != 0 { return data, errors.New(data.Errmsg) } return data, err }