Laravel框架之微信授权获取用户信息
必要条件:
1)公众号认证
2)有网页授权获取用户基本信息的权限接口
注意:最近有朋友说:在公众平台申请的测试号,会出现无法取到用户信息。换到认证的公众账号就正常了!
填写授权回调页面的域名
登录公众平台–>开发者中心–>接口权限表
找到 网页授权获取用户基本信息 然后修改–>填写你的域名.如下:
关于网页授权的两种scope的区别说明(官方)
1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。
因为scope有两种模式:
scope为snsapi_base 那么用户必须是关注了公众号才能取得信息
先自己建立两个文件: index.php 和 getUserInfo.php
代码实例
index.php如下:
<?php
//备注:微信网页授权 获取用户基本信息
$appid='wx0ba7d9c44d0ebef0';
$redirect_uri = urlencode ( 'http://five.haoyunyun.cn/weixin/getuserinfo.php');
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
header("Location:".$url);
getUserInfo.php如下:
<?php$appid = "wx0ba7d9c44d0ebef0";
$secret = "7172e05d1a14b363e37c020b933c1c47";
$code = $_GET["code"];//第一步:取全局access_token
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
$token = getJson($url);//第二步:取得openid
$oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
$oauth2 = getJson($oauth2Url);//第三步:根据全局access_token和openid查询用户信息
$access_token = $token["access_token"];
$openid = $oauth2['openid'];
$get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";
$userinfo = getJson($get_user_info_url);//打印用户信息print_r($userinfo);function 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);return json_decode($output, true);
}
scope为snsapi_userinfo 用户不用关注公众号,也能取到信息,但是会有一个界面让用户去点击确认!相当于一个登录授权吧!
代码实例
index.php如下:
<?php
//备注:微信网页授权 获取用户基本信息
$appid='wx0ba7d9c44d0ebef0';
$redirect_uri = urlencode ( 'http://five.haoyunyun.cn/weixin1/getuserinfo.php');
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
header("Location:".$url);
getUserInfo.php如下:
<?php$appid = "wx0ba7d9c44d0ebef0";
$secret = "7172e05d1a14b363e37c020b933c1c47";
$code = $_GET["code"];//第一步:取得openid
$oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
$oauth2 = getJson($oauth2Url);//第二步:根据全局access_token和openid查询用户信息
$access_token = $oauth2["access_token"];
$openid = $oauth2['openid'];
$get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";
$userinfo = getJson($get_user_info_url);//打印用户信息print_r($userinfo);function 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);return json_decode($output, true);
}
测试步骤:
创建index.php和getUserInfo.php两个文件后
先测试:scope为snsapi_base
1)先关注公众账号
2)将网址: http://你的域名/index.php 生成一个二维码!
3)用微信扫一扫
再测试:scope为snsapi_userinfo
1)替换代码
2)取消关注当前公众号.
3)然后用微信扫一扫,刚刚你生成的二维码.
最后结束…
Laravel框架之微信授权获取用户信息相关推荐
- 微信公众号开发之授权获取用户信息
微信开发交流群:148540125 系列文章参考地址 极速开发微信公众号 欢迎留言.转发.打赏 项目源码参考地址 点我点我--欢迎Start 前几篇文章已讲完如何导入项目,如何启动配置项目,如何成为开 ...
- Spring Boot 微信-网页授权获取用户信息
微信-验证服务器有效性 微信-网页授权获取用户信息 网页授权获取用户信息步骤 第一步:用户同意授权,获取code 第二步:通过code换取网页授权access_token 第三步:拉取用户信息(需sc ...
- Java-(二)微信小程序授权获取用户信息和手机号码
第一篇我们已经知道了微信小程序怎么授权登录获取用户信息. openId 和 unionId .下面将高速告诉大家,微信小程序如何授权获取用户信息和手机号码. 微信官方文档:https://develo ...
- asp微信登陆源码,实现asp网站授权微信登录(获取用户信息,微信名头像openid等)
一个同学的网站想实现asp微信登陆,获取到微信用户资料信息,微信昵称,微信头像,微信openid等信息保存到数据库,我给他了一份asp微信登录授权(获取用户信息)源码,他说不会用,让我帮忙写好入库,并 ...
- vue h5微信公众号授权获取用户信息
vue h5微信公众号授权获取用户信息 1.申请测试账号 https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 2.修改网页授权 ...
- PHP 微信网页授权获取用户信息
最近用到过微信用户授权获取用户信息的功能,在这里记录一下. 因为用户授权要用到认证过的服务号才有权限,而线上正在使用公众号,而开发就有些不方便了,这里可以申请一个微信公众测试号. 1.申请一个微信公众 ...
- 微信小程序授权获取用户信息和手机号码
微信小程序授权获取用户信息和手机号码 1.微信官方文档 登录:https://developers.weixin.qq.com/miniprogram/dev/framework/open-abili ...
- 微信小程序授权 获取用户信息
微信小程序授权 获取用户信息 小程序昵称突然变成了"微信用户",头像也不显示, <!-- 近期很多小伙伴通过该方法获取头像和昵称,代码也没有做改变,突然就变成了下面这样子 - ...
- 连小白都能看懂的微信开发之 微信自定义菜单 + 获取网页授权 + 获取用户信息
微信自定义菜单+获取网页授权+获取用户信息 今天项目需要一个需求,就是添加一个菜单接口,并且还可以获取用于的信息,从而根据用户的信息去做一些业务的查询.通过百度和自己查看文档大致的解决办法如下: 注意 ...
- 微信公众号网页授权获取用户信息的流程
官网文档 网页授权流程分为四步: 引导用户进入授权页面同意授权,获取code 通过 code 换取网页授权access_token(与基础支持中的access_token不同)(我的需求只需要到第二部 ...
最新文章
- leetcode算法题--K 次串联后最大子数组之和★
- Appium+python的单元测试框架unittest(2)——fixtures(转)
- 什么是 SAP Core Data Service Annotation Propagation
- 又重新让aspspider.net支持中文PDF输出了
- JUC阻塞队列BlockingQueue讲解
- 蚂蚁区块链在司法存证领域的探索与实践
- Linux 下 ascii 的查看方式
- 【CSP201803-1	】跳一跳,简单模拟
- 【Flutter】微信项目实战【01】基本框架搭建
- windows server 2008 各版本下载
- EXCEL图表之瀑布图
- Java常用设计模式的实例学习系列-绪论
- CPDA认证|数据分析师如何撰写数据报告?
- NeurIPS 2021 | 医学图像生成新范式!在Noisy Data上训练出超越监督学习的模型
- php 生成电话名片二维码
- 服务器上的word文件被锁定,Microsoft Word忽略从WebDAV服务器发送的锁定状态
- BZOJ4816 数字表格
- 我的世界服务器扔东西显示垃圾箱,我的世界:MC里6个隐藏的垃圾桶,第一个可回收,第二个很常见?...
- mysql配置secure_file_priv
- 微信小程序例子——使用icon组件显示常用图标
热门文章
- Android WMS架构:WindowContainer树形组合模式-理论基础+实践结果
- 大理古城“悟空、八戒”与人互殴 警方:四人被行拘
- 为什么我的淘宝店铺动态评分清零了?
- calib matlab,使用Matlab Toolbox_calib进行摄像机标定
- Jenkins build light on Windows, with Blinky
- blender导出html,神器,C4D互导插件,可与Maya和Blender模型快速复制粘贴导出脚本Quick CopyPaste (Blender, Maya, C4D)...
- SQL 2008R2 误删除数据恢复方法(一)
- 护理自考本科科目计算机应用基础,护理自考本科考哪些科目
- Windows窗口命令大全
- avue框架中使用富文本编辑器