public function getLoginOk($wxuin) { $file = "user/{$wxuin}.txt"; if (\Storage::exists($file)) { $user = \Storage::get($file); $user = json_decode($user); } else { return '不存在此wxuin'; } //进行post登陆尝试 $url = "https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxinit?lang=zh_CN&pass_ticket=" . urlencode($user->pass_ticket) . "&r=-" . rr(); $post = '{"BaseRequest":{"Uin":"' . $user->cookies->wxuin . '","Sid":"' . $user->cookies->wxsid . '","Skey":"' . $user->skey . '","DeviceID":"' . $user->deviceid . '"}}'; $ret = CURL::send($url, ['Cookie' => urldecode(http_build_query($user->cookies, '', '; '))], ['follow_redirects' => false], ['ret' => 'all', 'post' => $post]); $cookies = toCookies($ret->cookies); $cookies = (object) ((array) $cookies + (array) $user->cookies); //判断是否正常 $data_arr = json_decode($ret->body, true); if (count($data_arr)) { if (!isset($data_arr['BaseResponse']['Ret'])) { $data_arr = array(); } else { if ($data_arr['BaseResponse']['Ret'] != 0) { return $data_arr['BaseResponse']['Ret'] . $data_arr['BaseResponse']['ErrMsg'] . ',请从新<a href="/login/">扫描</a>'; } } } else { return '没有获取到内容,请从新<a href="/login/">扫描</a>'; } //开始获取基本信息了 $data['Uin'] = $data_arr['User']['Uin']; $data['UserName'] = $data_arr['User']['UserName']; $data['NickName'] = $data_arr['User']['NickName']; $data['SyncKey'] = json_encode($data_arr['SyncKey']); $data['wxuin'] = $cookies->wxuin; $data['skey'] = urldecode($user->skey); $data['pass_ticket'] = urldecode($user->pass_ticket); $data['deviceid'] = $user->deviceid; $data['cookies'] = json_encode($cookies); //设置状态为可用 $data['status'] = 1; Login::inSave($data); //删除临时文件 \Storage::delete($file); //写入好友信息 $this->ContactList($data_arr); //加入群信息获取队列 $job = (new JobChatroom($data['wxuin']))->onQueue('chatroom'); $this->dispatch($job); //加入监控队列 $job = (new JobCheck($data['wxuin']))->onQueue('check'); $this->dispatch($job); }