微信公众号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和ACCESS写聊天室(九)
Oct 09 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
Oct 22 PHP
从手册去理解分析PHP session机制
Jul 17 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
CodeIgniter中使用cookie的三种方式详解
Jul 18 PHP
php控制文件下载速度的方法
Mar 24 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 26 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
Feb 10 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小程序自动提交到自助友情连接
2009/11/24 PHP
php获取post中的json数据的实现方法
2011/06/08 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
浅析php创建者模式
2014/11/25 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
合并table相同单元格的jquery插件分享(很精简)
2011/06/20 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
python数据清洗系列之字符串处理详解
2017/02/12 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
简单了解python关系(比较)运算符
2019/07/08 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
h5封装下拉刷新
2020/08/25 HTML / CSS
CK美国官网:Calvin Klein
2016/08/26 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
2014年国培研修感言
2014/03/09 职场文书
实验室的标语
2014/06/20 职场文书
暑期培训心得体会
2014/09/02 职场文书
村党建工作汇报材料
2014/11/02 职场文书
公司总经理岗位职责
2015/04/01 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python