Ошибки при подключении к API СДЕК
У транспортной компании СДЭК существует api, который может работать в тестовом режиме. Можно получить как тестовый ключ, завязанный на тестового пользователя, передав написанный в документации логин и пароль, так и настоящий, передав доступы, приходящие в письме. Разница в том, что отсылать их нужно на разные url.
Как тестовый, так и настоящий ключ получаю нормально, но после этого начинаются проблемы. Используя метод для получения списка городов, на него нужно отправить GET-запрос с токеном авторизации в заголовке (https://api.cdek.ru/v2/location/cities?country_codes=RU), я их получаю. Но если мы отправляем тестовый токен на тестовый адрес (https://api.edu.cdek.ru/v2/location/cities?country_codes=RU), то получаем 503 ошибку.
Warning: file_get_contents(https://api.edu.cdek.ru/v2/location/cities?country_codes=RU): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable
in C:\OpenServer\domains\cdek\index.php on line 66
Если перейти по этому адресу в браузере, то получим это:
Whitelabel Error Page
This application has no configured error view, so you are seeing this as a fallback.
Wed Sep 30 05:27:21 NOVT 2020
[ff849b1e-1049491] There was an unexpected error (type=Service Unavailable, status=503).
Unable to find instance for pintex-worker-ru-01
Меня бы это не заботило, но существуют и другие ошибки.
В документации есть метод, позволяющий узнать заявки. Для этого нужно послать GET-запрос на url вида https://api.cdek.ru/v2/orders/72753033-1cf5-447c-a420-c29f4b488ac6, в конце передав uuid заявки. Если перейти на этот url,передав при этом токен авторизации, он отдаст json с ошибкой, что такой заявки нет. Если же сделать запрос с помощью file_get_contents(), то он отдаст ворнинг с 400 кодом. Опять же, если сделать это с тестовыми доступами, получим 503 ошибку.