1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
public function cron()
{
if (input('?get.qrid')) {
$qrid = input('get.qrid');
} else {
Json::msg(400, 'qrid不能为空');
}
$url = "https://login.sina.com.cn/sso/qrcode/check?entry=weibo&qrid=" . $qrid . "&callback=STK_" . $this->getTime();
// echo $url;exit;
$header = [
'Accept:' => '*/*',
'Accept-Encoding:' => 'gzip, deflate, br',
'Accept-Language:' => 'en-US,en;q=0.9',
'Connection:' => 'keep-alive',
'Cookie:' => 'mm_lang=en; mm_lang=en',
'Host:' => 'login.wx.qq.com',
'Referer:' => 'https://wx.qq.com/',
'User-Agent:' => 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
];
$res = Curl::url($url)->setHeader($header)->get();
$regex = "#window(.*?)\(#";
$resArr = json_decode(rtrim(rtrim(preg_replace($regex, "", $res), ';'), ')'), true);
if($resArr['retcode'] == 50114003){
Json::msg(205, '二维码已失效');
} elseif($resArr['retcode'] == 50114001) {
Json::msg(202, '二维码未失效');
} elseif($resArr['retcode'] == 50114002) {
Json::msg(204, '正在验证二维码');
} elseif ($resArr['retcode'] == 50114004) {
Json::msg(204, '该二维码已登录,请重新扫描');
} elseif ($resArr['retcode'] == 20000000) {
//Json::msg(200, 'sucess', $resArr);
preg_match("/-(.*?)-/", $resArr['data']['alt'], $ts_arr);
$wb = base64_decode($ts_arr[1]);
// 这里写成功后的操作
// 扫码成功后会返回一个固定的base64,利用这个值登入吧
$this->reg($wb);
} else{
Json::msg(306, $res);
}
}
|