java开发第三方微信登录接入规范说明

本文最后更新于:2020年11月28日 晚上

参数说明

参数 是否必须 说明
appid 公众号的唯一标识
redirect_uri 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
response_type 返回类型,请填写code
scope 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
state 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
#wechat_redirect 无论直接打开还是做页面302重定向时候,必须带此参数

redirect_uri地址设置

java开发第三方微信登录接入规范说明 1.png

java开发第三方微信登录接入规范说明 1.png

java开发第三方微信登录接入规范说明 2.png

java开发第三方微信登录接入规范说明 2.png

第一步,获取用户code

参数拆解

https://open.weixin.qq.com/connect/oauth2/authorize?
appid=wxdea7292b7998fc4a&redirect_uri=http://127.0.0.1:8080&
response_type=code&
scope=snsapi_userinfo&
state=123#wechat_redirect

完整示例链接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxdea7292b7998fc4a&redirect_uri=http://127.0.0.1:8080&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect

第二步,通过code换取网页授权access_token

获取code后,请求以下链接获取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

参数说明

参数 是否必须 说明
appid 公众号的唯一标识
secret 公众号的appsecret
code 填写第一步获取的code参数
grant_type 填写为authorization_code

返回说明

完整实例:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxdea7292b7998fc4a&secret=db88cecb2096f1214bb9dcb8ef21bce5&code=021wlMUQ0cAAP623hkSQ0SeOUQ0wlMUW&state&grant_type=authorization_code

正确时返回的JSON数据包如下:

{
  "access_token":"ACCESS_TOKEN",
  "expires_in":7200,
  "refresh_token":"REFRESH_TOKEN",
  "openid":"OPENID",
  "scope":"SCOPE" 
}

返回参数说明图

java开发第三方微信登录接入规范说明 3.png

java开发第三方微信登录接入规范说明 3.png

第三步:拉取用户信息(需scope为snsapi_userinfo)
如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。
请求方法http:GET(请使用https协议)

https://api.weixin.qq.com/sns/userinfo?access_token=填写获得的token&openid=用户openid&lang=zh_CN

完整实例

https://api.weixin.qq.com/sns/userinfo?access_token=26_Jxwpdr8ENmsB1oHYw6rrCn6KGIrNHG6j9SUFT0YVP0njuwKaR7U5ikXNhp_MRRdm7jRVV7ExmS5USRnbdDGGYQr74DSRYXYP4uEYDqgCwFg&openid=ohQX75okjil1zfbjG6lwC9o_j2K0&lang=zh_CN

官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html