'ERROR', 'message' => 'Не удалось получить авторизационные cookies' ]; } file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - cookies получены'.PHP_EOL, FILE_APPEND); // Шаг 2: Формируем fillData для фильтрации $fillData = [ 'registrationId' => $registrationId ]; if (!empty($startDate)) { $fillData['startDate'] = $startDate; } if (!empty($endDate)) { $fillData['endDate'] = $endDate; } $fillDataJson = json_encode($fillData, JSON_UNESCAPED_UNICODE); file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - fillData: '.$fillDataJson.PHP_EOL, FILE_APPEND); // Шаг 3: Формируем запрос к API $url = 'https://api-yc.explorer.debex.ru/production/gas-appeals-statuses'; $apiKey = GetKey('Prod'); file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - отправляем запрос к API'.PHP_EOL, FILE_APPEND); // Используем Guzzle $client = new \GuzzleHttp\Client(); // Декодируем cookies как в основном файле отправки в суд $decodedCookies = htmlspecialchars_decode($cookies); $response = $client->request('POST', $url, [ 'headers' => [ 'x-api-key' => $apiKey, 'hidden-authorization-cookies' => $decodedCookies ], 'multipart' => [ [ 'name' => 'fillData', 'contents' => $fillDataJson ] ], 'timeout' => 120 // Увеличен до 120 секунд из-за нестабильной работы API ]); $statusCode = $response->getStatusCode(); $responseBody = $response->getBody()->getContents(); file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - получен ответ, HTTP код: '.$statusCode.PHP_EOL, FILE_APPEND); file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - тело ответа: '.$responseBody.PHP_EOL, FILE_APPEND); // Парсим JSON ответ $data = json_decode($responseBody, true); if ($statusCode >= 200 && $statusCode < 300) { file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - статус получен успешно'.PHP_EOL, FILE_APPEND); return [ 'status' => 'OK', 'data' => $data, 'registrationId' => $registrationId ]; } else { file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - ошибка HTTP: '.$statusCode.PHP_EOL, FILE_APPEND); return [ 'status' => 'ERROR', 'message' => 'HTTP ошибка: '.$statusCode, 'response' => $data ]; } } catch (\GuzzleHttp\Exception\RequestException $ex) { // Обработка ошибок HTTP запроса $errorMessage = $ex->getMessage(); file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - ошибка запроса: '.$errorMessage.PHP_EOL, FILE_APPEND); // Пытаемся получить тело ответа if ($ex->hasResponse()) { $response = $ex->getResponse(); $statusCode = $response->getStatusCode(); $responseBody = (string) $response->getBody(); file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - HTTP статус код: '.$statusCode.PHP_EOL, FILE_APPEND); file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - тело ответа: '.$responseBody.PHP_EOL, FILE_APPEND); return [ 'status' => 'ERROR', 'message' => $errorMessage, 'http_code' => $statusCode, 'response_body' => $responseBody ]; } return [ 'status' => 'ERROR', 'message' => $errorMessage ]; } catch (Exception $ex) { // Общая обработка ошибок $errorMessage = $ex->getMessage(); file_put_contents('logs/court_status.log', date('Y-m-d H:i:s').' - неожиданная ошибка: '.$errorMessage.PHP_EOL, FILE_APPEND); return [ 'status' => 'ERROR', 'message' => $errorMessage ]; } } ?>