60, // 设置请求超时时间为60秒 'connect_timeout' => 30, // 设置连接超时时间为30秒 'curl' => [ CURLOPT_FRESH_CONNECT => false, CURLOPT_FORBID_REUSE => false, ], 'headers' => [ 'Connection' => 'keep-alive', ], ]); } return self::$client; } /** * 发送验证码 * code 状态码 0 成功 1 token无效或已过期 2 端口不足 3 账号已存在 int * msg 结果描述 string */ public static function send_code($phone) { $client = self::get_client(); // 创建 Guzzle 客户端 // 请求数据 $data = [ "token" => self::$token, "phoneNumber" => $phone, "business" => 0, ]; // 发送 POST 请求 $response = $client->post('https://dx1.rocketgo.vip/ex-api/biz/api/merchant/scanCode', [ 'json' => $data, // 以 JSON 格式发送数据 ]); // 获取响应体内容 $body = $response->getBody(); $responseData = json_decode($body, true); // 如果返回的是 JSON 格式,解析它 return $responseData; } /** * 获取验证码 */ public static function get_code($phone) { $client = self::get_client(); // 请求数据 $data = [ "token" => self::$token, "phoneNumber" => $phone, ]; // 发送 POST 请求 $response = $client->post('https://dx1.rocketgo.vip/ex-api/biz/api/merchant/getScanCode', [ 'json' => $data, // 以 JSON 格式发送数据 ]); // 获取响应体内容 $body = $response->getBody(); $responseData = json_decode($body, true); // 如果返回的是 JSON 格式,解析它 return $responseData; } /** * 检测是否在线 * https://apifox.com/apidoc/shared-c08671dd-4e9d-44dd-a2a1-ec4b8316a81f * code 0 成功 1token无效 2WS号不存在 * status 当code=0时返回,0表示在线 1表示离线 * 返回 0在线 1离线 2 token无效 3 ws号不存在 * 对象注入解决tcp 复用问题 */ public static function get_ws_status($phone) { $client = self::get_client(); $url = "https://dx1.rocketgo.vip/ex-api/biz/api/wsStatus?wsNumber=" . $phone . "&token=" . self::$token; // 发送 POST 请求 $response = $client->get("$url"); $body = $response->getBody(); $responseData = json_decode($body, true); // 如果返回的是 JSON 格式,解析它 if ($responseData['code'] == 0) { return $responseData['status']; } if ($responseData['code'] == 1) { // Log::warning("号商api token无效"); return 2; } if ($responseData['code'] == 2) { // Log::warning("ws 在第三方api不存在 ws号".$phone); return 3; } return -1; } /** * 删除ws号 * https://apifox.com/apidoc/shared-fc04a238-fa44-4e60-b9eb-ef2fe95a52e1 * code 0成功1 token无效 2 WS号不存在 3 不能删除在线的WS号 */ public static function delWS($phone) { $client = self::get_client(); // 请求数据 $data = [ "token" => self::$token, "wsNumber" => $phone, ]; // 发送 POST 请求 $response = $client->post('https://dx1.rocketgo.vip/ex-api/biz/api/delWS', [ 'json' => $data, // 以 JSON 格式发送数据 ]); // 获取响应体内容 $body = $response->getBody(); $responseData = json_decode($body, true); // 如果返回的是 JSON 格式,解析它 if ($responseData['code'] != 0) { Log::warning("ws:" . $phone . "删除失败 Code:" . $responseData['code'].' msg:'.$responseData['msg']); } } }