微信公众号OAuth2.0网页授权问题浅析


Posted in PHP onJanuary 21, 2017

根据需求,我今天完成的是微信的网页授权然后拉取用户的一些基本信息的问题。

1.修改网页授权的基本信息。打开微信公众平台。

微信公众号OAuth2.0网页授权问题浅析

微信公众号OAuth2.0网页授权问题浅析

在这个地方写要授权的页面的网址。

2.我这边只是测试这个功能,所以我页面直接写了个测试页面,我在要测试的这个网站的根目录新建了一个ceshi.html

然后在他的控制器里面对其进行操作。

1)首先是分享的也就是授权的网页的链接要写的正确

微信公众号OAuth2.0网页授权问题浅析

然后url:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx444444444444&redirect_uri=http://www.erdangjiade.com/Admin/Wx/ceshi.html&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect

2)使用code获取access_token

我是直接在测试的那个网页(也就是进行授权)的控制器直接对其操作

微信公众号OAuth2.0网页授权问题浅析

代码:

$code=$_GET['code'];
dump($code);
$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxd1caae7&secret=0a72c866233ab4cf6f1ad6d&code=".$code."&grant_type=authorization_code";
//var_dump($url);
$resInfo = https_request($url,true);
$userLists=json_decode($resInfo,true);
dump($userLists);

这边可以答应出我这边写的$userLists

然后如果是正确的话,就能获取access_token,因为access_token的时效性的问题,所以可以把access_token替换成refresh_token,我因为自己觉得并不需要,所以就没有写那一步。

微信公众号OAuth2.0网页授权问题浅析

这边要是换取的时候有错的话,就会显示{"errcode":40029,"errmsg":"invalid code"}

3)利用openid和access_token获取用户的头像昵称等基本信息。

微信公众号OAuth2.0网页授权问题浅析

代码:

$access_token=$userLists['access_token'];
$openid=$userLists['openid'];
$userClick=M('maiclub_userclick');
if($userClick->where("openid = '{$openid}'")->find()){
//echo 1111;
}else{
$urlInfo="https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid;
$resltInfo=https_request($urlInfo,true);
$userInfo=json_decode($resltInfo,true);
$userClick->add($userInfo);
}
dump($userInfo);
// dump($access_token);
$this->display();

dump($userInfo);就可以打印出用户的基本信息,然后只要入库就可以了。

这边还有个问题,就是我这边用到的一个函数https_request

他在function中的源代码:

function https_request($url, $data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}

这样应该没有问题了,就是授权的全部内容。

以上所述是小编给大家介绍的微信公众号OAuth2.0网页授权问题浅析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
使用PHP的日期与时间函数技巧
Apr 24 PHP
php下将XML转换为数组
Jan 01 PHP
解析PHP获取当前网址及域名的实现代码
Jun 23 PHP
php header功能的使用
Oct 28 PHP
PHP大转盘中奖概率算法实例
Oct 21 PHP
php制作文本式留言板
Mar 18 PHP
了解PHP的返回引用和局部静态变量
Jun 04 PHP
php判断邮箱地址是否存在的方法
Feb 13 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
yii2的restful api路由实例详解
May 14 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
Jul 18 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 #PHP
PHP三种方式实现链式操作详解
Jan 21 #PHP
PHP将字符串首字母大小写转换的实例
Jan 21 #PHP
thinkphp 手机号和用户名同时登录
Jan 20 #PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 #PHP
php curl常用的5个经典例子
Jan 20 #PHP
php技巧小结【推荐】
Jan 19 #PHP
You might like
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
php HTML无刷新提交表单
2016/04/05 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
python中的代码编码格式转换问题
2015/06/10 Python
Python模块包中__init__.py文件功能分析
2016/06/14 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
解决Python requests 报错方法集锦
2017/03/19 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
python定时任务 sched模块用法实例
2019/11/04 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
《寓言两则》教学反思
2014/02/27 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
社区平安建设方案
2014/05/25 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python