微信公众号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入门
Oct 09 PHP
php 远程关机操作的代码
Dec 05 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
php中判断文件空目录是否有读写权限的函数代码
Aug 07 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
PHP中if和or运行效率对比
Dec 12 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
PHP PDO fetch 模式各种参数的输出结果一览
Jan 07 PHP
PHP Callable强制指定回调类型的方法
Aug 30 PHP
PHP程序员必须知道的两种日志实例分析
May 14 PHP
php实现微信和支付宝支付的示例代码
Aug 11 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冒泡排序算法代码详细解读
2011/07/17 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
python获取外网ip地址的方法总结
2015/07/02 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
物业电工岗位职责
2013/11/20 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
冰峪沟导游词
2015/02/09 职场文书
个人工作能力自我评价
2015/03/05 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
MySQL日期时间函数知识汇总
2022/03/17 MySQL