golang微信小程序登录
记录一下
url := "https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code"
url = fmt.Sprintf(url, 小程序公众平台的appid, 小程序公众平台的secret, 小程序通过wx.login获取到的code)
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
wxResp := ConfirmLoginDto{}
decoder := json.NewDecoder(resp.Body)
if err := decoder.Decode(&wxResp); err != nil {
return err
}
if wxResp.ErrCode != 0 {
return errors.New(fmt.Sprintf("ErrCode:%s ErrMsg:%s", wxResp.ErrCode, wxResp.ErrMsg))
}
//wxResp:微信返回数据
使用到的数据结构,自己整理一下,不是所有的都需要用到
type ConfirmLoginDto struct {
OpenId string `json:"openid"`
SessionKey string `json:"session_key"`
UnionId string `json:"unionid"`
ErrCode int `json:"errcode"`
ErrMsg string `json:"errmsg"`
}