网页授权流程分为四步
1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
第一步:在微信里面打开链接
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
APPID:公众号的appid
REDIRECT_URI:返回地址
SCOPE: snsapi_userinfo(弹窗授权)或者snsapi_base(静默授权)
第二步:用code换取openid
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
APPID:公众号的appid
SECRET:公众号的SECRET
CODE:第一步获取的CODE
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
第三步:获取access_token(如需刷新)
access_token 作为微信接口全局访问的唯一调用凭据 ,公众号调用各个接口时候都需要使用access_token 。获取一次有效期2小时,一天有次数限制,一般来说,获取一次需要保存起来,两小时内可以无限使用于其他
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET
APPID:公众号的appid
SECRET:公众号的SECRET
返回
{"access_token":"ACCESS_TOKEN","expires_in":7200}
获取用户信息
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
ACCESS_TOKEN:第三步获取的access_token
openid:第二步获取的openid
返回
{
"openid":" OPENID",
"nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
"privilege":[ "PRIVILEGE1" "PRIVILEGE2" ],
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}