很多用户需要获取用户的基本信息,如国家、省份、城市、昵称等。在开发微信页面时。然后,我们将分析如何基于PHP语言成功获取它。
必要条件:
1)微信官方账号认证
2)有网页授权获取用户基本信息的权限界面
注:最近有朋友说在公共平台申请的考号无法获取用户信息。换个注册公众账号很正常!
如果你也遇到这个问题,可以尝试在注册公众账号中测试一下!感谢大家的支持!
填写授权回拨页面的域名
登录公共平台-开发者中心-界面权限表
找到网页授权,获取用户基本信息,然后修改-填写你的域名。以下是:
省省吧!
两种网页授权范围的区别说明(官方)
1.以snsapi_base为作用域发起的网页授权用于获取进入页面的用户的openid,并进行静默授权,自动跳转到回调页面。用户感知到的是他们直接进入回调页面(通常是业务页面)
2.以snsapi_userinfo为作用域发起的网页授权用于获取用户的基本信息。但是这种授权需要用户手动同意,既然用户已经同意了,授权后就可以不用关注就可以获取用户的基本信息。
3.用户管理界面中的“获取用户基本信息界面”,是在用户与微信官方账号产生关注后的消息交互或事件推送后,根据用户OpenID获取用户基本信息。这个界面,包括其他微信界面,只有用户(openid)关注微信官方账号后才能成功调用。
因为scope有两种模式,下面将分别解释:
范围是snsapi_base,所以用户一定要关注微信官方账号才能获取信息
首先,自己创建两个文档, index.php和getUserInfo.php
代码实例
Index.php如下:
//作用域=snsapi_base实例$AppId='您的AppId ';$redirect_uri=urlencode ('http://您的域名/GetUserInfo . PHP ');$ URL=' https://open . weixin . QQ.com/connect/oauth 2/authorize?appid=$ appid redirect _ uri=$ redirect _ uri response _ type=code scope=snsapi _ base state=1 #微信_ redirect ';标题(' Location: '。$ URL);GetUserInfo.php如下:
$AppId='您的AppID ';$secret='您的AppSecret ';$ code=$ _ GET[' code '];//步骤:获取全局访问_ token $ URL=' https://API . weixin . QQ.com/CGI-bin/token?grant _ type=client _ credential appid=$ appid secret=$ secret ';$ token=GetJSon($ URL);//第二步:获取OpenID $ oauth 2 URl=' https://API . weixin . QQ.com/SNS/oauth 2/access _ token?appid=$ appid secret=$ secretcode=$ codegrant _ type=authorization _ code ';$ oauth 2=GetJSon($ oauth 2 URl);//第三步:根据全局access_token和openid查询用户信息$ access _ token=$ token[' access _ token '];$ OpenID=$ oauth 2[' OpenID '];$ get _ user _ info _ URL=' https://API . weixin . QQ.com/CGI-bin/user/info?access _ token=$ access _ token OpenID=$ openidlang=zh _ CN ';$ user info=GetJSon($ get _ user _ info _ URL);//打印用户信息print _ r($ user info);函数getJson($ URL){ $ ch=curl _ init();curl_setopt($ch,CURLOPT_URL,$ URL);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$ output=curl _ exec($ ch);curl _ close($ ch);返回json_decode($output,true);}作用域是snsapi_userinfo。用户无需关注微信官方账号即可获取信息,但会有界面供用户点击确认!相当于一次登录授权!
代码示例
Index.php如下:
//作用域=snsapi_userinfo实例$AppId='您的AppId ';$redirect_uri=urlencode ('http://您的域名/GetUserInfo . PHP ');$ URL=' https://open . weixin . QQ.com/connect/oauth 2/authorize?appid=$ appid redirect _ uri=$ redirect _ uri response _ type=code scope=snsapi _ user infostate=1 #微信_ redirect ';标题(' Location: '。$ URL);GetUserInfo.php如下:
$appid='你的AppId ';$secret='你的AppSecret ';$ code=$ _ GET[' code '];//第一步:取得OpenID $ OAuth 2 URl='https://api.weixin.qq.com/sns/oauth2/access_token?appid=$ appid secret=$ secret code=$ code grant _ type=authorization _ code ';$ oauth 2=GetJSon($ oauth 2 URl);//第二步:根据全局访问令牌和openid查询用户信息$ access _ token=$ oauth 2[' access _ token '];$ OpenID=$ oauth 2[' OpenID '];$ get _ user _ info _ URL='https://api.weixin.qq.com/cgi-bin/user/info?access _ token=$ access _ token OpenID=$ openidlang=zh _ CN ';$ user info=GetJSon($ get _ user _ info _ URL);//打印用户信息print _ r($用户信息);函数getJson($ URL){ $ ch=curl _ init();curl_setopt($ch,CURLOPT_URL,$ URL);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$ output=curl _ exec($ ch);curl _ close($ ch);返回json_decode($output,true);}测试步骤:
创建index.php和getUserInfo.php两个文件后
先测试:scope为snsapi_base
1)先关注公众账号
2)将网址: http://你的域名/index.php生成一个二维码!
3)用微信扫一扫
再测试:scope为snsapi_userinfo
1)替换代码
2)取消关注当前公众号。
3)然后用微信扫一扫,刚刚你生成的二维码。