主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
获取用户信息的步骤如下:
1第一步:用户同意授权并获得代码2第二步:用代码换取网页授权access_token3第三步:刷新access_token(如果需要)4第四步:拉取用户信息(范围要求为snsapi_userinfo)。
1获取代码
在保证微信公众号有权限授权范围(范围参数)的前提下(服务号获得高级接口后,默认在范围参数中有snsapi_base和snsapi_userinfo),引导关注者打开以下页面:
open.weixin.qq.com/connect/oauth2/authorize? APPID = APPID & REDIRECT _ uri = REDIRECT _ URI & response _ type = code & SCOPE = SCOPE & STATE = STATE #微信_redirect
如果提示“此链接不可访问”,请检查参数是否填写错误,以及您是否拥有与范围参数对应的授权范围权限。
特别注意:由于授权操作的安全级别较高,微信在发起授权请求时会定期对授权链接进行强检查。如果链接的参数顺序错误,将无法正常访问授权页面。
其中包括:
AppID -微信官方账号的唯一标识符REDIRECT_URI -跳转urlSCOPE -值为snsapi_base(不弹出授权页面直接跳转,只获取用户openid)或snsapi_userinfo(弹出授权页面,通过openid获取昵称、性别和位置)。而且,即使在不注意的情况下,只要用户授权,就可以获取信息。)状态-开发者可以自定义a-zA-Z0-9的参数值。
2网页授权访问令牌的交换代码
如果用户同意授权,页面将跳转到redirect_uri/?代码=代码&状态=状态。STATE是按原样传递的状态参数。
实施代码:
& ltcode class = & quothljs php & quot& gt$ code = I(& amp;#39;代码& amp#39;);if(empty($ code)){//todo非微信访问出口(&;#39;& lt/code & gt;& amp#39;);}else{ //授权后的操作}这里我们可以获取后续access_token的代码。
获取代码后,请求以下链接以获取access_token:
api.weixin.qq.com/sns/oauth2/access_token? APPID = APPID & SECRET = SECRET & CODE = CODE & grant _ type = authorization _ CODE
Appid -微信官方账号的唯一标识符secret - key code -上面返回的codegrant_type -值为authorization_code。
实施代码:
& ltcode class = & quothljs bash & quot& gt$ url = & amp#39;https://api.weixin.qq.com/cgi-bin/token?格兰特类型=客户证书。appid = & amp#39;。c(& amp;#39;微信。AppID & amp#39;) .& amp#39;& amp秘密= & amp#39;。c(& amp;#39;微信。AppSecret & amp#39;);$ str = file _ get _ contents($ URL);$ str = JSON _ decode($ str,true);$ access _ token = $ str【& amp;#39;访问令牌& amp#39;];& lt/code & gt;这里可以缓存access_token以避免频繁获取实现代码。以TP框架为例:
& ltcode class = & quothljs php & quot& gt$ access _ token = S(& amp;#39;访问令牌& amp#39;);if(empty($ access _ token)){ $ URL = & amp;#39;https://api.weixin.qq.com/cgi-bin/token?格兰特类型=客户证书。appid = & amp#39;。c(& amp;#39;微信。AppID & amp#39;) .& amp#39;& amp秘密= & amp#39;。c(& amp;#39;微信。AppSecret & amp#39;);$ str = file _ get _ contents($ URL);$ str = JSON _ decode($ str,true);$ access _ token = $ str【& amp;#39;访问令牌& amp#39;];s (& amp;#39;访问令牌& amp#39;,$access_token,3600);} & lt/code & gt;获取access_token后,还将返回openid(用户唯一id)。官方微信文档解释:用户唯一ID。请注意,当用户在未关注微信官方账号的情况下访问微信官方账号的网页时,还将为用户和微信官方账号生成唯一的OpenID。
Openid唯一标识微信用户。如果用户不是第一次登录,他们可以在获取openid后查询数据库中是否有与该openid绑定的用户,然后他们无需重新获取用户数据。直接获取的数据库user_id设置为session并直接登录访问。
3第三步是忽略它,仅在必要时再次获取access_token。
4提取用户信息(snsapi_userinfo对于范围是必需的)
如果数据库没有被这个微信号用户绑定,相当于用户第一次访问登录,那么通过第四步获取用户信息(在用户授权的情况下,网页授权的范围是snsapi_userinfo,所以此时开发者可以通过access_token和openid拉取用户信息),然后在后台创建用户并绑定到这个微信号。
信任用户(通过openid)
请求方法
Http:GET(请使用https协议)api.weixin.qq.com/sns/userinfo?.访问令牌=访问令牌&openid=OPENID&lang=zh_CN
access _ token -access _ token OpenID -上面获取的微信官方账号唯一标识符。
实施代码:
& ltcode class = & quothljs php & quot& gt$ access _ token = S(& amp;#39;访问令牌& amp#39;);if(empty($ access _ token)){ $ URL = & amp;#39;https://api.weixin.qq.com/cgi-bin/token?格兰特类型=客户证书。appid = & amp#39;。c(& amp;#39;微信。AppID & amp#39;) .& amp#39;& amp秘密= & amp#39;。c(& amp;#39;微信。AppSecret & amp#39;);$ str = file _ get _ contents($ URL);$ str = JSON _ decode($ str,true);$ access _ token = $ str【& amp;#39;访问令牌& amp#39;];s (& amp;#39;访问令牌& amp#39;,$access_token,3600);} & lt/code & gt;以上是微信微信官方账号获取用户信息的具体步骤。
【相关建议】
1.下载微信微信官方账号平台源代码。
2.微智创T+微信机器人源代码
这几篇文章你可能也喜欢:
- 暂无相关推荐文章
本文由主机参考刊发,转载请注明:通过网页授权获取用户信息的方法(什么是网页授权) https://zhujicankao.com/115351.html
评论前必须登录!
注册