欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微信授权参数丢失问题

程序员文章站 2022-04-03 10:04:48
...

一、构造授权地址,用户同意授权,获取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope={2}&state={3}#wechat_redirect
注:
	appid为申请公众号给予的公众号id
	redirect_uri为用户同意授权后的回调地址,该地址需要用URLEncoder.encode()进行编码
	scope为snsapi_userinfo,表示要获取用户信息
	state为回调时传递参数,该值有长度限制,如果使用该字段进行传递访问地址,也需要用URLEncoder.encode()进行编码

二、通过code换取网页授权access_token、openid

在上一步中,用户同意授权,则调用上一步中redirect_uri的接口,并将code与state传递回来,通过code获取access_token
https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code
注:
	appid为申请公众号给予的公众号id
	secret为申请公众号给予的公众号密码
	code为上一步请求微信服务给予的code
	如果第一步中scope为snsapi_userinfo,这返回结果中包含用户信息;为snsapi_base则获取用户openid不能够获取到用户信息。用户信息(昵称、头像、国、省、城市、性别、权限)
	处理用户授权信息,然后跳转页面,如果跳转地址为state传递的并且用URLEncode.encode()编码过,则需要用URLDecode.decode()进行解码。
相关标签: 接口 java