最新公告
  • 欢迎您光临格子源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • QQ扫码登陆代码 附详解

    像这种扫码登陆的网站应该都见过吧,获取用户资料,或者验证QQ号码

    今天就给大家搞一下QQ二维码扫码登陆代码详解,快给你的网站加上QQ登陆吧

    大家看到mz网,dg网,都是通过扫码,获取到cookie,然后进行操作

    代码:

    <?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));
    }
    钻石免费

    已有0人支付

    免责申明:
    1. 本站所有下载资源均不包含技术支持和安装服务!需要讨论请进群!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到审核区发布,分享有云朵奖励和额外收入!
    4. 如有链接无法下载、失效或广告,请联系管理员处理!
    5. 本站无法保证资源或破解时效性,如某些授权码过期等问题,恕不在修复范围内。
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!故不接受任何形式的退款,如确认资源确有问题的,会补给相应云朵以供再次购买。
    7. 百码云源码暂未发现后门代码,但无法保证100%安全,推荐检测方法:上传到 https://www.virustotal.com/在线查看是否有恶意代码以及其他有后门嫌疑的代码。
    8. 在本站下载的源码我还是不建议正式使用,有特别喜欢的可以去程序官方购买。
    格子源码资源站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。本作品采用BY-NC-SA 4.0 《国际知识共享署名许可协议4.0》 进行许可 。

    格子源码 » QQ扫码登陆代码 附详解

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    格子源码
    一个高级程序员模板开发平台
    • 6会员总数(位)
    • 135资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 408稳定运行(天)

    只要您有最优质的资源,您也可以发布获得利益

    发布资源赚钱 推广佣金
    升级SVIP尊享更多特权立即升级