post(self::$url, [ 'headers' => [ "Content-Type" => "application/json", ], 'json' => [ 'type' => 1000 ] ]); } catch (GuzzleException $exception) { throw new Exception("远程服务异常"); } $loginInfo = json_decode($loginStatus->getBody()->getContents(), true); if (empty($loginInfo) || $loginInfo['data']['status'] == 0) { throw new \Exception("登录状态异常"); } $updateData = [ 'login_status' => $loginInfo['data']['status'] ]; if ($loginInfo['data']['status'] == 1) { $updateData['login_out_time'] = null; } WorkWeChat::where('port', $port)->update($updateData); return true; } /** * 发送请求 * @param array $sendData * @return array * @author L * @data 2024/8/20 11:00 */ public static function send(array $sendData) { try { $info = (new Client())->post(self::$url, [ 'headers' => [ "Content-Type" => "application/json", ], 'json' => $sendData ]); $info = json_decode($info->getBody()->getContents(), true); if (empty($info) || $info['errno'] !== 0) { throw new \Exception($info['errmsg']); } return [ 'code' => 200, "data" => $info['data'], 'msg' => "" ]; } catch (\Exception|GuzzleException $exception) { return [ 'code' => 500, 'msg' => $exception->getMessage(), 'data' => [] ]; } } /** * 获取用户信息 * @return array * @author L * @data 2024/8/19 14:18 */ public static function getLoginUserInfo(): array { try { return self::send(['type' => 1002]); } catch (\Exception $exception) { return [ 'code' => 200, 'msg' => $exception->getMessage(), 'data' => [] ]; } } /** * 搜陌生人消息 * @return array * @author L * @data 2024/8/19 17:27 */ public static function searchUserInfo(string $key) { try { return self::send([ 'type' => 4008, 'key' => $key, ]); } catch (\Exception $exception) { return [ 'code' => 200, 'msg' => $exception->getMessage(), 'data' => [] ]; } } /** * 搜陌生人消息 * @return array * @author L * @data 2024/8/19 17:27 */ public static function apply(string $userId, string $openid_orTicket, string $remarks, int $addType = 2) { try { return self::send([ 'type' => 4009, 'add_type' => $addType, 'user_id' => $userId, 'openid_or_ticket' => $openid_orTicket, 'msg' => $remarks, ]); } catch (\Exception $exception) { return [ 'code' => 500, 'msg' => $exception->getMessage(), 'data' => [] ]; } } /** * 同意好友的强求 * @param string $userId * @return array * @author L * @data 2024/8/20 11:02 */ public static function agreeApply(string $userId): array { try { return self::send([ 'type' => 4002, 'user_id' => $userId, ]); } catch (\Exception $exception) { return [ 'code' => 500, 'msg' => $exception->getMessage(), 'data' => [] ]; } } /** * 同意好友的强求 * @param string $userId * @param string $msg * @return array * @author L * @data 2024/8/20 11:02 */ public static function sendMsg(string $userId, string $msg, int $type): array { try { $path = ""; //远程下载文件 if ($type == 2) { $download = (new Client())->post(self::$qw_url, [ 'headers' => [ "Content-Type" => "application/json", ], 'json' => [ 'file_path' => FileService::getFileUrl($msg) ] ])->getBody()->getContents(); $downloadInfo = json_decode($download, true); $path = $downloadInfo['path']; } $data = match ($type) { //文字 1 => ['type' => 3000, 'user_id' => $userId, 'msg' => $msg], //文件 2 => ['type' => 3001, 'user_id' => $userId, 'path' => $path], }; return self::send($data); } catch (\Exception $exception) { return [ 'code' => 500, 'msg' => $exception->getMessage(), 'data' => [] ]; } } }