第一次握手,获取code(code根据用户随机产生,在网页中缓存,注意这个code并不是微信的id):访问:https://open.weixin.qq.com/connect/oauth2/authorize?appid=*****&redirect_uri=http://XXXX/WeiXin/Auth/GetUserInfo&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect
appid=wxdc744fc7fda7898f:公众号id;
redirect_uri:回调网址
response_type:返回值简
单来说就是,拿公众号,去访问weixin网址,告诉它你要authorize(授权),于是它返回给你一个code
第二次握手,获取Access_token访问:"https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appId + "&secret=" + appSecret + "&code=" + code + "&grant_type=authorization_code";
appid:公众号id;
appsecret:公众号的密钥 ;
注意这里的公众号id和密钥不是登录名和密码code:第一次握手获取的code
Grant_type:告诉微信你的授权类型是用code换取Access_token
第三次握手,拉取用户信息访问:"https://api.weixin.qq.com/sns/userinfo?access_token=" + accessToken + "&openid=" + openId + "&lang=zh_CN";
Access_token:第二次握手获取的access_token
Openid:第一次握手获取的code
Lang:语言,这里是中文在访问路径中可以读出
功能:拿access_token 和openid换取userinfo(用户信息)。且返回的参数语言为中文
需要注意的是:获取的用户openid是微信公众号与用户微信号加密后仅对该公众号可用的唯一的id
**返回值**
返回的数据类型:Json
第一次返回参数:code
第二次正确的返回参数:{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"}
第三次正确的返回参数:
{ "openid":" OPENID",
" nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE"
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
"privilege":[ "PRIVILEGE1" "PRIVILEGE2" ],
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"}