微信公众号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 相关文章推荐
我常用的几个类
Oct 09 PHP
桌面中心(一)创建数据库
Oct 09 PHP
超小PHP小马小结(方便查找后门的朋友)
May 05 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
php 可变函数使用小结
Jun 12 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 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 file_exists无效的解决办法
2013/06/26 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
移动节点的jquery代码
2014/01/13 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
Js实现滚动变色的文字效果
2014/06/16 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
python中二维阵列的变换实例
2014/10/09 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
Python之循环结构
2019/01/15 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
Servlet如何得到服务器的信息
2015/12/22 面试题
初中女生自我鉴定
2013/12/19 职场文书
机械设计职业生涯规划书
2013/12/27 职场文书
物业工作计划书
2014/01/10 职场文书
总结表彰大会主持词
2014/03/26 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
党员自我评价2015
2015/03/03 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis