QQ 扫码登陆、微信扫码登录代码教程
站长搜索网 2020-04-01 23:55 898 浏览 0 评论
QQ 扫码登陆代码:
<?php header('Access-Control-Allow-Origin:*'); header('Content-type:application/json; charset=utf-8'); error_reporting(0); date_default_timezone_set("PRC"); !empty($_GET['type']) ? $type = $_GET['type'] : error("请求参数错误,请刷新重试!~~"); switch ($type) { case 'Getqrcode': echo json_encode(getqrcode()); break; case 'Getresult': !empty($_GET['qrsig']) ? $qrsig=$_GET['qrsig'] : error("请求参数错误,缺少qrsig~~"); echo json_encode(getresult($qrsig),JSON_UNESCAPED_UNICODE); break; default: echo json_encode(getqrcode()); } /** * 获取二维码 */ function getqrcode() { $qrcode = array(); $api = 'https://ssl.ptlogin2.qq.com/ptqrshow?appid=549000912&e=2&l=M&s=3&d=72&v=7&t=0.1415855' . time(); $paras['header'] = 1; $ret = get_curl($api, $paras); preg_match('/qrsig=(.*?);/', $ret, $matches); preg_match_all('/ (\d){3}/', $ret, $Conlen); $arr = explode('com;', $ret); $qrcode['qrsig'] = $matches[1]; $qrcode['data'] = base64_encode(trim($arr['1'])); return $qrcode; } /** * @param $qrsig * @return array * 获取登录状态 */ function getresult($qrsig) { $ret = array(); $api = 'https://ssl.ptlogin2.qq.com/ptqrlogin?u1=' . urlencode('https://qzs.qzone.qq.com/') . '&ptqrtoken=' . getqrtoken($qrsig) . '&ptredirect=0&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=0-1-' . time() . '&js_ver=90220&js_type=1&login_sig=&pt_uistyle=40&aid=549000912&daid=5&has_onekey=1'; $paras['cookie'] = 'qrsig=' . $qrsig . ';'; $body = get_curl($api, $paras); if (preg_match("/ptuiCB\('(.*?)'\)/", $body, $arr)) { $r = explode("','", str_replace("', '", "','", $arr[1])); if ($r[0] == 0) { preg_match('/uin=(\d+)&/', $body, $uin); $ret['code'] = 1; $ret['data']['uin'] = $uin[1]; $ret['msg'] = 'QQ登录成功'; } elseif ($r[0] == 65) { $ret['msg'] = '登录二维码已失效,请刷新重试!'; } elseif ($r[0] == 66) { $ret['msg'] = '请使用手机QQ扫码登录'; } elseif ($r[0] == 67) { $ret['msg'] = '正在验证二维码...'; } else { $ret['msg'] = '未知错误001,请刷新重试!'; } } else { $ret['msg'] = '未知错误002,请刷新重试!'; } return $ret; } function get_curl($url, $paras = array()) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $httpheader[] = "Accept:*/*"; $httpheader[] = "Accept-Encoding:gzip,deflate,sdch"; $httpheader[] = "Accept-Language:zh-CN,zh;q=0.8"; $httpheader[] = "Connection:close"; curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader); if ($paras['ctime']) { // 连接超时 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, $paras['ctime']); } if ($paras['rtime']) { // 读取超时 curl_setopt($ch, CURLOPT_TIMEOUT_MS, $paras['rtime']); } if ($paras['post']) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $paras['post']); } if ($paras['header']) { curl_setopt($ch, CURLOPT_HEADER, true); } if ($paras['cookie']) { curl_setopt($ch, CURLOPT_COOKIE, $paras['cookie']); } if ($paras['refer']) { if ($paras['refer'] == 1) { curl_setopt($ch, CURLOPT_REFERER, 'http://m.qzone.com/infocenter?g_f='); } else { curl_setopt($ch, CURLOPT_REFERER, $paras['refer']); } } if ($paras['ua']) { curl_setopt($ch, CURLOPT_USERAGENT, $paras['ua']); } else { curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"); } if ($paras['nobody']) { curl_setopt($ch, CURLOPT_NOBODY, 1); } curl_setopt($ch, CURLOPT_ENCODING, "gzip"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ret = curl_exec($ch); curl_close($ch); return $ret; } /** QQ空间Token算法*/ function getqrtoken($qrsig) { $len = strlen($qrsig); $hash = 0; for ($i = 0; $i < $len; $i++) { $hash += (($hash << 5) & 2147483647) + ord($qrsig[$i]) & 2147483647; $hash &= 2147483647; } return $hash & 2147483647; } function error($str){ exit(json_encode([ "code"=>-1, "msg"=>$str ],JSON_UNESCAPED_UNICODE)); }
微信扫码登录代码:
<?php header('Access-Control-Allow-Origin:*');header('Content-type:application/json; charset=utf-8');error_reporting(0);date_default_timezone_set("PRC");!empty($_GET['type']) ? $type = $_GET['type'] : error("请求参数错误,请刷新重试!~~");switch ($type){ case 'Getqrcode': echo json_encode(getqrcode()); break; case 'Getresult': !empty($_GET['qrsig']) ? $qrsig=$_GET['qrsig'] : error("请求参数错误,缺少qrsig~~"); echo json_encode(getresult($qrsig),JSON_UNESCAPED_UNICODE); break; default: echo json_encode(getqrcode());}/** * 获取二维码 */function getqrcode() { $api = 'https://login.wx2.qq.com/jslogin?appid=wx782c26e4c19acffb'; $ret = get_curl($api); //print_r($ret);die; preg_match('/"(.*?)"/', $ret, $matches); //print_r($matches);die; $qrcode['data'] = 'https://login.weixin.qq.com/qrcode/'.$matches[1]; $qrcode['uuid'] = $matches[1]; return $qrcode;} /** * [url=home.php?mod=space&uid=952169]@Param[/url] $qrsig * [url=home.php?mod=space&uid=155549]@Return[/url] array * 获取登录状态 */function getresult($uuid) { $paras['ctime'] = 1000; $paras['rtime'] = 1000; $paras['refer'] = 'https://wx2.qq.com/'; $api = 'https://login.wx2.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=' . $uuid . '&tip=0'; $body = get_curl($api, $paras); preg_match('/(\d){3}/', $body, $code); preg_match('/redirect_uri="(.*?)"/', $body, $url); if ($code[0] == '200') { $body = get_curl($url[1]); preg_match('/(\d*?)<\/wxuin>/', $body, $wxuin); $ret['code'] = 200; $ret['data']['uin'] = $wxuin[1]; $ret['data']['type'] = 'wx'; $ret['msg'] = '微信登录成功'; } else { $ret['code'] = 408; $ret['msg'] = '请使用手机微信扫码登录'; } print_r($ret);die; return $ret;} function get_curl($url, $paras = array()) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $httpheader[] = "Accept:*/*"; $httpheader[] = "Accept-Encoding:gzip,deflate,sdch"; $httpheader[] = "Accept-Language:zh-CN,zh;q=0.8"; $httpheader[] = "Connection:close"; curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader); if ($paras['ctime']) { // 连接超时 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, $paras['ctime']); } if ($paras['rtime']) { // 读取超时 curl_setopt($ch, CURLOPT_TIMEOUT_MS, $paras['rtime']); } if ($paras['post']) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $paras['post']); } if ($paras['header']) { curl_setopt($ch, CURLOPT_HEADER, true); } if ($paras['cookie']) { curl_setopt($ch, CURLOPT_COOKIE, $paras['cookie']); } if ($paras['refer']) { if ($paras['refer'] == 1) { curl_setopt($ch, CURLOPT_REFERER, 'http://m.qzone.com/infocenter?g_f='); } else { curl_setopt($ch, CURLOPT_REFERER, $paras['refer']); } } if ($paras['ua']) { curl_setopt($ch, CURLOPT_USERAGENT, $paras['ua']); } else { curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"); } if ($paras['nobody']) { curl_setopt($ch, CURLOPT_NOBODY, 1); } curl_setopt($ch, CURLOPT_ENCODING, "gzip"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ret = curl_exec($ch); curl_close($ch); return $ret;} function error($str){ exit(json_encode([ "code"=>-1, "msg"=>$str ],JSON_UNESCAPED_UNICODE));}
- 上一篇:云锁nginx自编译教程(最新版)
- 下一篇:wordpress网站全站变灰教程
相关推荐
- 2020最新网站无需备案接入QQ互联的方法
-
这款教程是开发者的福利,官方正规的测试渠道。如果你的网站正在集成QQ登录而域名却没有备案一定要看完下面的教程。没有备案的域名也可以接入QQ互联了。首先我们要登录...
-
2021-01-21 16:08 站长搜索网
- 分享个实用的防封、防举报、防屏蔽、防红页面JS代码
-
首先找到一个大站,能丢一下js的。使用以下js,完美实现防红。<meta charset=”utf-8″><meta ...
-
2021-01-14 16:27 站长搜索网
- 玩互联网的都应该知道个人支付方案(免签约)-支付宝当面付
-
支付宝当面付接入流程点击在这里进入,登陆支付宝账户选择立即接入。经营内容选择百货零售-超市-超市(非平台类)营业执照可不上传店铺招牌 百度即可提交申请...
-
2021-01-12 16:02 站长搜索网
- 设置教程一款Typecho清新风格响应式主题Bubble
-
主题介绍 清新的界面:大气简洁的页面布局,采用argondesignsystem,元素间隔恰到好处人性化的设计:登陆后显示后台管理...
-
2021-01-05 17:00 站长搜索网
- 5g云解决layui前端动态设置radio、checkbox默认选项的解决方案
-
前几天接触一个二次开发,后台UI用的是layui框架,程序原来的TAG标签设置中自由输入的,想修改为单选。这样子的功能用于,一个产品属于两种分类的作法。第一种就是系统自带的产品分类,第二种使用标签来实...
- 站长导航给大家带来阿里、腾讯云服务器完全卸载监控教程
-
众所周知,阿里云、腾讯云的服务器都自带监控(AliYunDun/阿里云盾/安骑士教程),大家都不想自己的所作所为都被监控着,比如我在上面安装SS服务,一旦云监控查到,会被警告,很麻烦,我们总想着自己买...
- php代码公众号链接获取文章标题-封面图-摘要-作者-公众号名称-简介-微信号-正文
-
php公众号链接获取文章标题、封面图、摘要、作者、公众号名称、简介、微信号、正文代码如下://设置 headerheader("Content-type:application...
- 杰奇网站搬家需要打包files文件夹吗
-
杰奇网站搬家需要打包files文件夹吗?很多站长会有这个问题,files文件夹太大了搬家极不方便,就想着偷懒不打包这个文件夹到新服务器,结果发现新服务器建的站小说打开提示“文章不存在”。搬家是需要把f...
你 发表评论:
欢迎- 最新留言
-
- 我的生活
- 最美视野观赏
- 南柯电影网免费在线观看超前点播真的很棒??
- 最美视野观赏
- 最美视野
- 3117站长服务平台,专注于站长变现、交易支持。友链交换、购买、网站转让、买卖链接、软文发布等业务全覆盖。为站长提供互利共赢的合作环境,满足发稿、广告位买卖、泛目录租用等需求。助力推广和运营,让您的网站更成功!
- 我爱影视网 申请收录:https://www.5aiys.net
- 站长您好,申请收录网站名称:小静儿影视网站地址:https://xiaojinger.cc网站logo:https://xiaojinger.cc/upload/site/20230905-1/8759dc39df1a7329a406c875cb34005b.png网站介绍:小静儿影视是一个汇集全网的影视资源,永久免费在线观看。小静儿影视的免费资源类型广泛,涵盖电影、电视剧、综艺、动漫等,资源24小时及时更新。标签:小静儿影视,免费在线,全网影视,在线电影,在线视频
- 站长你好,我这边有意向在贵网站投放广告,望能够跟您合作,价格方面可以详谈您可以加我qq或者留下您的联系方式 qq:3599467958 telegram:@dashan9188 邮箱:uncauke@gmail.com 谢谢
- 站长您好,我们看到您的网页有提供关于免费影视网站资料的帮助,希望您能让我们的网站加入您的免费线上看影音网站列表。名称:飞流视频网址:https://www.flixflop.com简介:飞流视频是一个在线视频媒体影视平台,致力于提供丰富且最新线上看的内容,如电影、电视剧、动漫、综艺、纪录片等,主要满足用户免费在线观看视频的需求。希望早日收到您的好消息,谢谢站长~