帮闲电子商务_绿兔子源码_破解软件_网站源码_原创软件_游戏影视娱乐 - LVTZ.COM

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10609|回复: 4

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

  [复制链接]
  • TA的每日心情
    慵懒
    2024-10-31 18:37
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    439

    主题

    491

    帖子

    9363

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    优秀版主突出贡献灌水之王宣传达人推广达人热心会员活跃会员最佳新人荣誉管理论坛元老

    精华
    80
    威望
    500
    听众
    0
    萝卜
    6972
    注册时间
    2020-2-4
    在线时间
    134 小时
    发表于 2020-4-3 11:01:39 | 显示全部楼层 |阅读模式
    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;
    }
      
    /**
    * @Param $qrsig
    * @Return 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));
    }

    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    381

    帖子

    1160

    积分

    超凡大师

    Rank: 6Rank: 6

    精华
    0
    威望
    0
    听众
    0
    萝卜
    779
    注册时间
    2020-2-9
    在线时间
    0 小时
    发表于 2020-4-3 11:01:39 | 显示全部楼层
    不错,顶一个!
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    395

    帖子

    1206

    积分

    超凡大师

    Rank: 6Rank: 6

    精华
    0
    威望
    0
    听众
    0
    萝卜
    811
    注册时间
    2020-2-9
    在线时间
    0 小时
    发表于 2020-4-3 11:05:18 | 显示全部楼层
    打酱油的人拉,回复下赚取积分
    回复

    使用道具 举报

    该用户从未签到

    256

    主题

    651

    帖子

    1983

    积分

    超凡大师

    Rank: 6Rank: 6

    精华
    0
    威望
    0
    听众
    0
    萝卜
    1332
    注册时间
    2020-2-9
    在线时间
    0 小时
    发表于 2020-4-3 11:05:40 | 显示全部楼层
    时间过的真快,一不留神我也抢了回沙发!
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    391

    帖子

    1180

    积分

    超凡大师

    Rank: 6Rank: 6

    精华
    0
    威望
    0
    听众
    0
    萝卜
    789
    注册时间
    2020-2-9
    在线时间
    0 小时
    发表于 2020-4-3 11:13:10 | 显示全部楼层
    好,很好,非常好!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|帮闲电子商务LVTZ.COM |冀公网安备(冀ICP备17031353号-2)

    GMT+8, 2025-1-8 07:33 , Processed in 0.098119 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表