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

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));
}

 

好歌资源网,欢迎分享,欢迎评论,(开通PLUS会员资源免费下 )本站积分兑换是1RMB:1金币。
©下载资源版权归作者所有;本站所有资源均来源于网络和用户上传,仅供学习使用,请支持正版
好歌源码网 » QQ 扫码 微信扫码登录代码教程

发表回复

提供最优质的网赚资源集合分享平台

立即查看 了解详情
bikini hot girl bigztube.mobi porn hub new
magandang camera ng cellphone teleseryena.com pvl all filipino conference schedule
سكس فلاح مصرى yatarab.com سكي امهات
tamil local kuthu songs fuckster.mobi india xxx hd com
indian defloration dunato.mobi village bath scene
abot kamay na pangarap dec 2 akoypinoytv.net ang probinsyano december 14 2015
mani4u porncorn.info xoossip
نيك في العربية bendito-porno.com نيك جماعى
abot kamay na pangarap oct 13 2022 teleseryestv.com tinutulan
big fat sex indianhardfuck.net sexy film janwar wali
xxx in indian fukando.mobi hindi sxi video
hotsouthindiansex.com pornofantasy.info mom and son xnxxx
fucking girl video porndig.mobi rubfuck.com
hentai smash bros hentairulz.com sakimi chan hentai
big tiddy onee san hentai4all.com yukari yakumo hentai