重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍“如何理解微信公众号OAuth2.0网页授权问题”,在日常操作中,相信很多人在如何理解微信公众号OAuth2.0网页授权问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解微信公众号OAuth2.0网页授权问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联主营新昌网站建设的网络公司,主营网站建设方案,app软件开发,新昌h5成都小程序开发搭建,新昌网站营销推广欢迎新昌等地区企业咨询1.修改网页授权的基本信息。打开微信公众平台。
在这个地方写要授权的页面的网址。
2.我这边只是测试这个功能,所以我页面直接写了个测试页面,我在要测试的这个网站的根目录新建了一个ceshi.html
然后在他的控制器里面对其进行操作。
1)首先是分享的也就是授权的网页的链接要写的正确
然后url:
https://open.weixin.qq.com/connect/oauth3/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/oauth3/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网页授权问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!