技术导航网-广招网友投稿收录网站-五湖四海是一家 第八度导航网(www.di8du.com)找网站,找资源就上第八度!
技术导航,网址分类目录
当前位置:网站首页 > 资源分享 > CMS教程 > 正文

QQ 扫码登陆、微信扫码登录代码教程

站长导航 2020-04-01 149 浏览 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));}


版权声明:第八度导航网提供优质收录和最新资源文章,请转载请注明出处!您的支持是我们最大的动力!

相关推荐

Typecho炫彩鼠标插件:HoerMouse 增加点击特效
Typecho炫彩鼠标插件:HoerMouse 增加点击特效

今天发现一个Typecho博客炫彩鼠标插件HoerMouse,可以给博客添加个炫酷的鼠标特效插件HoerMouse提供了如下三中鼠标特效fireworks+an...

3个月前 (07-24) 站长导航

最新360双端三级分销2.0源码和视频搭建教程

环境要求:演示环境Linux+mysql+PHP5.6+伪静态支持这个程序基本环境要求不是很大,但有的地方还是要注意一下说一下需要的东西:1.主机2.域名3.源码(会给大家打包,包含前后端)4.两个工...

最新谷歌账号注册方法
  • 最新谷歌账号注册方法
  • 最新谷歌账号注册方法
  • 最新谷歌账号注册方法
  • 最新谷歌账号注册方法
使用宝塔面板查看分析网站日志和网站日志
使用宝塔面板查看分析网站日志和网站日志

查看宝塔面板网站日志宝塔面板查看网站日志使用宝塔面板查看网站日志的话,在宝塔面板后台首页左侧选择“文件”,然后在面包屑导航选择www文件夹下的wwwlogs文件...

3个月前 (07-19) 站长导航

独立版新狮子鱼社区团购小程序订单问题之Redis配置说明
独立版新狮子鱼社区团购小程序订单问题之Redis配置说明

在宝塔面板里,给PHP安装Redis,微擎很大一部分只支持PHP5.6和PHP7.1如下图微擎搭建教程服务器安全组里开放6379端口,图省事的话端口全开放也可...

4个月前 (07-16) 站长导航

savieo是一个多平台视频解析免费下载的网站
savieo是一个多平台视频解析免费下载的网站

这是一款影片视频下载神器–Savieo,这也许是最全的,只需要将影片网址贴上就能下载,YouTube、抖音、Facebook、Instagram、Flick...

4个月前 (07-11) 站长导航

实用宝塔面板插件 sitemap生成器(附神马/百度主动推送) v3.1
  • 实用宝塔面板插件 sitemap生成器(附神马/百度主动推送) v3.1
  • 实用宝塔面板插件 sitemap生成器(附神马/百度主动推送) v3.1
  • 实用宝塔面板插件 sitemap生成器(附神马/百度主动推送) v3.1
  • 实用宝塔面板插件 sitemap生成器(附神马/百度主动推送) v3.1
百度网盘链接免登陆高速下载接口网页版教程
百度网盘链接免登陆高速下载接口网页版教程

使用方法:接口地址:http://pan.naifei.cc/?修改了老方法.现在直接复制别人分享的地址就行了比如:http://pan.naifei.cc/?...

4个月前 (07-08) 站长导航

百度网盘终于不限速 需手动开启教程
  • 百度网盘终于不限速 需手动开启教程
  • 百度网盘终于不限速 需手动开启教程
  • 百度网盘终于不限速 需手动开启教程
  • 百度网盘终于不限速 需手动开启教程
导航站实用工具网站信息获取接口-标题,关键词 ,描述在线获取api代码
导航站实用工具网站信息获取接口-标题,关键词 ,描述在线获取api代码

本api是本地获取的,可用于域名一键获取标题、关键词、描述等操作,做导航的小伙伴可以看看,使用格式api地址+?url=查询域名~不能加http/https的代...

4个月前 (06-28) 站长导航

取消回复欢迎 发表评论:

请填写验证码