热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHPAPI微信网页授权接口实现

这两天在网上看到关于微信网页授权的文档,闲着没事就来做做首先说说需要的材料1.一个可访问的域名或IP地址2.微信公众平台(一定要先去https:mp.w

这两天在网上看到关于微信网页授权的文档,闲着没事就来做做
首先说说需要的材料
1. 一个可访问的域名或IP地址
2.微信公众平台(一定要先去https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index里面设置网页授权获取用户基本信息的网页账号)
在这里插入图片描述
3.草料二维码制作
首先说明一下,我用的是laravel框架
行,不废话了,代码直接上

/***当用户同意授权(授权成功)时,微信会回调到$redirect_url这个链接,并且带上一个有效时间为五分钟的code(code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。)*/public function getUserDetail(){$redirect_url=urlencode("https://www.cacov.cn/crontab/getUserInfo");$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$this->appid&redirect_uri=$redirect_url&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";return redirect($url);}/***通过code换取网页授权access_token*拉取用户信息(需scope为 snsapi_userinfo---上一个方法中设置)*/public function getUserInfo(){$code=$_GET['code'];$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=$this->appid&secret=$this->appsecret&code=$code&grant_type=authorization_code";$res=$this->my_curl_wx_api($url,'GET');$access_token=$res['access_token'];//网页授权的access_token$openid=$res['openid'];//用户的openid//拉取用户的详细信息$user_url="https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";$user_res=$this->my_curl_wx_api($user_url,'GET');print_r($user_res);}/*** @param $url* @param string $type* @param array $data* @return mixed* 接口请求*/protected function my_curl_wx_api($url, $type = 'POST', $data = array()){$ch = curl_init();curl_setopt($ch, CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);curl_setopt($ch, CURLOPT_HEADER,0);curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);curl_setopt($ch, CURLOPT_AUTOREFERER, 1);if($data){curl_setopt($ch, CURLOPT_POSTFIELDS, $data);}//curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);$result = curl_exec($ch);curl_close($ch);return json_decode($result, true);}完成上面的步骤后,就可以去草料二维码里面将getUserDetail方法的服务器位置生成一个二维码,然后用微信扫一下就好了。

推荐阅读
author-avatar
田小多
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有