如何获取微信用户openid

方法一:通过全局Access Token获取用户基本信息

用户关注以及回复消息的时候,均可以获得用户的OpenID

然后使用access_token接口,请求获得全局Access Token

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

再使用全局ACCESS_TOKEN获取OpenID的详细信息

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID

方法二:通过OAuth2.0方式弹出授权页面获得用户基本信息

首先微信公众号内配置回调域名
构造请求url如下:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://www.jnxq.net/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect 

页面URL中的scope=snsapi_userinfo 表示应用授权作用域为请求用户信息
回调页面得到链接如下,回调url中将包含参数code

http://www.jnxq.net/oauth2.php?code=CODE&state=1

再使用code换取oauth2的授权access_token

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

获得授权Access Token和openid。
再使用授权Access Token获取用户信息

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN

方法三:通过OAuth2.0方式不弹出授权页面获得用户基本信息
首先在微信公众号中配置回调域名
构造请求url如下:

扫描二维码关注公众号,回复: 5757147 查看本文章
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=Url&response_type=code&scope=snsapi_base&state=1#wechat_redirect 

页面URL中的
scope=snsapi_base 表示应用授权作用域为 不弹出授权页面,直接跳转,只获取用户openid
返回回调页面如下

http://credit.zzpmi.cn?code=CODE&state=1 

这里获得到了code
再使用code获取OpenID

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

然后获取全局Access Token【以下与方法一中相同】

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=“.appid."&secret=".appid."&secret=".appsecret 

返回结果access_token。
再使用全局ACCESS_TOKEN获取OpenID的详细信息

https://api.weixin.qq.com/cgi-bin/user/info?access_token=“.ACCESS_TOKEN."&openid=".ACCESS_TOKEN."&openid=".openid.”&lang=zh_CN 

这种适合已经有OAuth2.0网页授权的服务号在网页中使用,且不会弹出“微信登录”页面。减少给用户的打扰。

注意:

方法二中的 accessToken与方法三的accessToken其实是两回事,二中的token用于用户详细信息获取的授权。三种的accessToken用于微信API调用。官文里有说明: 关于网页授权access_token和普通access_token的区别 1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息; 2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用

猜你喜欢

转载自blog.csdn.net/weixin_44535476/article/details/88975943
今日推荐