微信公众号OAuth2.0网页授权问题浅析

所属分类: 网络编程 / PHP编程 阅读数: 171
收藏 0 赞 0 分享

根据需求,我今天完成的是微信的网页授权然后拉取用户的一些基本信息的问题。

1.修改网页授权的基本信息。打开微信公众平台。

在这个地方写要授权的页面的网址。

2.我这边只是测试这个功能,所以我页面直接写了个测试页面,我在要测试的这个网站的根目录新建了一个ceshi.html

然后在他的控制器里面对其进行操作。

1)首先是分享的也就是授权的网页的链接要写的正确

然后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

我是直接在测试的那个网页(也就是进行授权)的控制器直接对其操作

代码:

$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,我因为自己觉得并不需要,所以就没有写那一步。

这边要是换取的时候有错的话,就会显示{"errcode":40029,"errmsg":"invalid code"}

3)利用openid和access_token获取用户的头像昵称等基本信息。

代码:

$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实现的美国50个州选择列表实例

这篇文章主要介绍了php实现的美国50个州选择列表实例,可实现让当前州为选中状态的功能,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP使用递归生成文章树

写递归函数,可考虑缓存,定义一些静态变量来存上一次运行的结果,多程序运行效率很有帮助.大概步骤如下:首先到数据库取数据,放到一个数组,然后把数据转化为一个树型状的数组,最后把这个树型状的数组转为html代码。下面我们来看个实例
收藏 0 赞 0 分享

wordpress安装过程中遇到中文乱码的处理方法

这篇文章主要介绍了wordpress安装过程中遇到中文乱码的处理方法,是个人项目中遇到的一个奇葩事件,经过一番研究,终于解决,这里记录下来分享给大家,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

php的crc32函数使用时需要注意的问题(不然就是坑)

这篇文章主要介绍了php的crc32函数使用时需要注意的问题(不然就是坑) ,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP中把对象转换为关联数组代码分享

这篇文章主要介绍了PHP中把对象转换为关联数组代码分享,本文直接给出实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

php检测url是否存在的方法

这篇文章主要介绍了php检测url是否存在的方法,涉及php中get_headers及正则匹配的技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

php获取twitter最新消息的方法

这篇文章主要介绍了php获取twitter最新消息的方法,涉及php操作curl及正则替换的技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

php遍历CSV类实例

这篇文章主要介绍了php遍历CSV类,实例分析了php针对csv文件的打开、读取及遍历的技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP使用mysqldump命令导出数据库

最近用php写一个数据备份的功能。做法是使用php的system函数执行mysqldump命令,进行备份,这里分享给大家,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

PHP用反撇号执行外部命令

shell_exec() 命令行实际上仅是反撇号 ` 操作符的变体,如果您编写过 shell 或 Perl 脚本,您就知道可以在反撇号操作符内部捕捉其他命令的输出。
收藏 0 赞 0 分享
查看更多