微信公众号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 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
解决phpmyadmin 乱码,支持gb2312和utf-8
Nov 20 PHP
PHP+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
php入门教程 精简版
Dec 13 PHP
PHP开发者常犯的10个MySQL错误更正剖析
Jan 30 PHP
PHP按行读取、处理较大CSV文件的代码实例
Apr 09 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
Jan 07 PHP
Zend Framework教程之Zend_Layout布局助手详解
Mar 04 PHP
yii2带搜索功能的下拉框实例详解
May 12 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 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目录操作实例总结
2016/09/27 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
nodejs连接mongodb数据库实现增删改查
2016/12/01 NodeJs
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
Python专用方法与迭代机制实例分析
2014/09/15 Python
Python 修改列表中的元素方法
2018/06/26 Python
Python安装selenium包详细过程
2019/07/23 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
python滑块验证码的破解实现
2019/11/10 Python
python如何设置静态变量
2020/09/07 Python
python MD5加密的示例
2020/10/19 Python
HTML5中的拖放实现详解
2017/08/23 HTML / CSS
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
英语专业学子个人的自我评价
2013/10/02 职场文书
出国留学自荐信
2013/10/25 职场文书
咨询公司各岗位职责
2013/12/02 职场文书
矿泉水广告词
2014/03/20 职场文书
死亡赔偿协议书
2015/01/28 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
深入理解python多线程编程
2021/04/18 Python
MongoDB支持的数据类型
2022/04/11 MongoDB