微信公众号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+DBM的同学录程序(2)
Oct 09 PHP
?生?D片??C字串
Dec 06 PHP
PHP 各种排序算法实现代码
Aug 20 PHP
PHP冒泡排序算法代码详细解读
Jul 17 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
基于php iconv函数的使用详解
Jun 09 PHP
php程序内部post数据的方法
Mar 31 PHP
PHP获取数组最大值下标的方法
May 12 PHP
php引用和拷贝的区别知识点总结
Sep 23 PHP
php use和include区别总结
Oct 13 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 PHP
TP5框架实现的数据库备份功能示例
Apr 05 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
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
Parse正式发布开源PHP SDK
2014/08/11 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
JQuery 常用方法基础教程
2009/02/06 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
from 表单提交返回值用post或者是get方法实现
2013/08/21 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
Python基类函数的重载与调用实例分析
2015/01/12 Python
python使用chardet判断字符串编码的方法
2015/03/13 Python
Python找出9个连续的空闲端口
2016/02/01 Python
浅谈Python 中整型对象的存储问题
2016/05/16 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
使用python进行拆分大文件的方法
2018/12/10 Python
解决python 文本过滤和清理问题
2019/08/28 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
物业管理计划书
2014/01/10 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
关于读书的活动方案
2014/08/14 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
给校长的一封检讨书
2014/09/20 职场文书
欢迎新生标语
2014/10/06 职场文书
青岛海底世界导游词
2015/02/11 职场文书
七年级上册生物的课件
2019/08/07 职场文书
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers