微信公众号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 相关文章推荐
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
树型结构列出指定目录里所有文件的PHP类
Oct 09 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
Apr 14 PHP
PHP中的Streams详细介绍
Nov 12 PHP
Joomla调用系统自带编辑器的实现方法
May 05 PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
Yii2.0框架模型多表关联查询示例
Jul 18 PHP
在Laravel的Model层做数据缓存的实现
Sep 26 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 21 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 microtime获取浮点的时间戳
2010/02/21 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
IE下js调试工具Companion.JS
2010/10/15 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
Python实现包含min函数的栈
2016/04/29 Python
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
详解Python 函数参数的拆解
2020/09/02 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
XML文档面试题
2015/08/05 面试题
开业庆典策划方案
2014/02/18 职场文书
教师新年寄语
2014/04/03 职场文书
2014年学习部工作总结
2014/11/12 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
工作推荐信模板
2015/03/25 职场文书
分享7个 Python 实战项目练习
2022/03/03 Python