Добрый день. Учусь по немного ,как говорится на кошках. Пытаюсь создать обращение к Яндексу доставки через его API. У них на сайте указано 1.01. Предварительная оценка стоимости доставки как создавать запрос, но я получаю все время - нет доставки. Где у меня загвоздка? /** * Основной метод для выполнения API запросов с Bearer-токеном */ private function makeApiRequest(string $endpoint, array $data): array { $api_host = rtrim($this->config->get('shipping_yandexdelivery_host'), '/'); $api_key = $this->config->get('shipping_yandexdelivery_api_key'); // Bearer токен // Формируем полный URL $api_url = $api_host . $endpoint; $this->logError('Полный адрес к кому обращаемся: ' .$api_url); // Логируем запрос $log_data = $data; // $log_data['_url'] = $api_url; $log_data['_headers'] = [ 'Authorization:' => 'Bearer ' .$api_key, 'Content-Type:' => 'application/json' ]; $this->logError('API запрос по адресу: ' .$api_url, $log_data); $ch = curl_init($api_url); // Определяем тестовое окружение для SSL $is_test_environment = strpos($api_host, 'tst.yandex.net') !== false; $this->logError('Среда отладки API', [ 'api_url' => $api_url, 'is_test_env' => $is_test_environment, 'host' => $api_host ]); $this->logError('Сейчас вызов Curl'); // Базовые настройки CURL с Bearer-токеном $curl_options = [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode($data, JSON_UNESCAPED_UNICODE), CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $api_key, // Bearer-токен 'Content-Type: application/json', 'Accept: application/json' // 'User-Agent: OpenCart-YandexDelivery/1.0' ], CURLOPT_TIMEOUT => 30, CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_FAILONERROR => false, CURLOPT_HEADER => false, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 5 ]; // SSL настройки if ($is_test_environment) { $curl_options[CURLOPT_SSL_VERIFYPEER] = false; $curl_options[CURLOPT_SSL_VERIFYHOST] = 0; } else { $curl_options[CURLOPT_SSL_VERIFYPEER] = true; $curl_options[CURLOPT_SSL_VERIFYHOST] = 2; } curl_setopt_array($ch, $curl_options); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $error = curl_error($ch); $error_no = curl_errno($ch); // curl_close($ch); // Логируем ответ $log_response = [ 'http_code' => $http_code, 'curl_error' => $error, 'curl_errno' => $error_no, 'response_length' => strlen($response), 'response_preview' => substr($response, 0, 500) ]; $this->logError('Ответ пришедший от API Яндекса: ' . $endpoint, $log_response); 2026-01-17 14:16:58 - Проверяем настройки Yandex.Delivery {"Bearer token":"y2_AgAAAAD04omrAAAPeAAAAAACRpC94Qk6Z5rUTgOcTgYFECJllXYKFx8","sender_id_set":"176","warehouse_id":"fbed3aa1-2cc6-4370-ab4d-59c5cc9bb924","host":"https:\/\/b2b.taxi.tst.yandex.net"} 2026-01-17 14:16:58 - API то,что мы сформировали перед отправкой запроса в Яндекс [{"source":{"platform_station_id":"fbed3aa1-2cc6-4370-ab4d-59c5cc9bb924"},"destination":{"platform_station_id":null,"address":"Санкт-Петербург, Большая Монетная улица, 1к1А"},"tariff":"time_interval","total_weight":1000,"total_assessed_price":10000,"client_price":10000,"payment_method":"already_paid","places":[{"physical_dims":{"weight_gross":1000,"dx":10,"dy":10,"dz":10,"predefined_volume":1000}}]}] 2026-01-17 14:16:58 - Полный адрес к кому обращаемся: https://b2b.taxi.tst.yandex.net/api/b2b/platform/pricing-calculator 2026-01-17 14:16:58 - API запрос по адресу: https://b2b.taxi.tst.yandex.net/api/b2b/platform/pricing-calculator {"source":{"platform_station_id":"fbed3aa1-2cc6-4370-ab4d-59c5cc9bb924"},"destination":{"platform_station_id":null,"address":"Санкт-Петербург, Большая Монетная улица, 1к1А"},"tariff":"time_interval","total_weight":1000,"total_assessed_price":10000,"client_price":10000,"payment_method":"already_paid","places":[{"physical_dims":{"weight_gross":1000,"dx":10,"dy":10,"dz":10,"predefined_volume":1000}}],"_headers":{"Authorization:":"Bearer y2_AgAAAAD04omrAAAPeAAAAAACRpC94Qk6Z5rUTgOcTgYFECJllXYKFx8","Content-Type:":"application\/json"}} 2026-01-17 14:16:58 - Среда отладки API {"api_url":"https:\/\/b2b.taxi.tst.yandex.net\/api\/b2b\/platform\/pricing-calculator","is_test_env":true,"host":"https:\/\/b2b.taxi.tst.yandex.net"} 2026-01-17 14:16:58 - Сейчас вызов Curl 2026-01-17 14:16:59 - Ответ пришедший от API Яндекса: /api/b2b/platform/pricing-calculator {"http_code":400,"curl_error":"","curl_errno":0,"response_length":75,"response_preview":"{\"code\":\"no_delivery_options\",\"message\":\"No delivery options for interval\"}"} 2026-01-17 14:16:59 - 2026-01-17 14:16:59 - Tariff time_interval failed {"error":"API error (400): No delivery options for interval","tariff":"time_interval","places_sample":{"physical_dims":{"weight_gross":1000,"dx":10,"dy":10,"dz":10,"predefined_volume":1000}}} 2026-01-17 14:16:59 - API то,что мы сформировали перед отправкой запроса в Яндекс [{"source":{"platform_station_id":"fbed3aa1-2cc6-4370-ab4d-59c5cc9bb924"},"destination":{"platform_station_id":null,"address":"Санкт-Петербург, Большая Монетная улица, 1к1А"},"tariff":"self_pickup","total_weight":1000,"total_assessed_price":10000,"client_price":10000,"payment_method":"already_paid","places":[{"physical_dims":{"weight_gross":1000,"dx":10,"dy":10,"dz":10,"predefined_volume":1000}}]}] 2026-01-17 14:16:59 - Полный адрес к кому обращаемся: https://b2b.taxi.tst.yandex.net/api/b2b/platform/pricing-calculator 2026-01-17 14:16:59 - API запрос по адресу: https://b2b.taxi.tst.yandex.net/api/b2b/platform/pricing-calculator {"source":{"platform_station_id":"fbed3aa1-2cc6-4370-ab4d-59c5cc9bb924"},"destination":{"platform_station_id":null,"address":"Санкт-Петербург, Большая Монетная улица, 1к1А"},"tariff":"self_pickup","total_weight":1000,"total_assessed_price":10000,"client_price":10000,"payment_method":"already_paid","places":[{"physical_dims":{"weight_gross":1000,"dx":10,"dy":10,"dz":10,"predefined_volume":1000}}],"_headers":{"Authorization:":"Bearer y2_AgAAAAD04omrAAAPeAAAAAACRpC94Qk6Z5rUTgOcTgYFECJllXYKFx8","Content-Type:":"application\/json"}} 2026-01-17 14:16:59 - Среда отладки API {"api_url":"https:\/\/b2b.taxi.tst.yandex.net\/api\/b2b\/platform\/pricing-calculator","is_test_env":true,"host":"https:\/\/b2b.taxi.tst.yandex.net"} 2026-01-17 14:16:59 - Сейчас вызов Curl 2026-01-17 14:16:59 - Ответ пришедший от API Яндекса: /api/b2b/platform/pricing-calculator {"http_code":400,"curl_error":"","curl_errno":0,"response_length":75,"response_preview":"{\"code\":\"no_delivery_options\",\"message\":\"No delivery options for interval\"}"} 2026-01-17 14:16:59 - 2026-01-17 14:16:59 - Tariff self_pickup failed {"error":"API error (400): No delivery options for interval","tariff":"self_pickup","places_sample":{"physical_dims":{"weight_gross":1000,"dx":10,"dy":10,"dz":10,"predefined_volume":1000}}}
Проблема решена. Яндекс в своей инструкции писал лажу. После обращения исправил. Теперь для теста отправки работает только по москве.