API сервиса «Груз на СВХ»: различия между версиями
(Метка: визуальный редактор отключён) |
Belousov (обсуждение | вклад) (→API) |
||
| (не показано 6 промежуточных версий 2 участников) | |||
| Строка 1: | Строка 1: | ||
== О сервисе == | == О сервисе == | ||
| − | Сервис "Груз на СВХ" https://www.alta.ru/svh-gruz/ позволяет | + | Сервис "Груз на СВХ" https://www.alta.ru/svh-gruz/ позволяет получить информацию о грузе в json формате, поступившем на склады временного хранения. По номеру транспортного документа, контейнера, транспортного средства или номера декларации предоставляется информация о размещении груза на СВХ. |
== API == | == API == | ||
| − | + | Доступ к API предоставляется по URL https://www.alta.ru/svh-gruz/search/api/v1/. | |
| + | Для использования сервиса необходима авторизация с помощью логина и пароля. | ||
| + | <br> | ||
| + | Логин и пароль для обращения по API необходимо получить в личном кабинете https://www.alta.ru/user/, заключив договор на использование онлайн-сервисов. В настройках договора будут указаны технический логин и пароль. | ||
| − | |||
| − | + | === Запрос на поиск === | |
| + | |||
| + | Для поиска необходимо отправлять GET-запрос по URL https://www.alta.ru/svh-gruz/search/api/v1/, содержащий следующие GET-параметры: | ||
| + | |||
#n_k - номер контейнера | #n_k - номер контейнера | ||
#n_trans - транспортное средство | #n_trans - транспортное средство | ||
#n_trans_doc - транспортный документ | #n_trans_doc - транспортный документ | ||
#n_dt - номер декларации | #n_dt - номер декларации | ||
| − | # | + | #логин в открытом виде |
| + | #секрет - MD5-хеш от сгенерированной строки параметры запроса + логин + md5-хэш от пароля, все параметры разделены знаком “:” (двоеточие) | ||
| + | ---- | ||
| + | <code> | ||
| + | secret = md5("{n_k}:{n_trans}:{n_trans_doc}:{n_dt}:{логин}:md5({пароль})") | ||
| + | </code> | ||
| + | ---- | ||
| + | |||
| + | '''Пример запроса:''' | ||
| + | |||
| + | Запрос с параметрами: | ||
| + | n_k = 123, n_trans = пусто, n_trans_doc = 555, n_dt = пусто. <br> | ||
| + | Пользователь с логином testlogin и паролем testpassword.<br><br> | ||
| + | для запроса: https://www.alta.ru/svh-gruz/search/api/v1/?n_k=123&n_trans=&n_trans_doc=555&n_dt=&login=testlogin<br> | ||
| + | вычисляем секрет: secret = md5("123::555::testlogin:md5(testpassword)") = 7fcb20d2c25956e38dbd2c9a6c3f9720<br> | ||
| + | Обратите внимание, даже если параметр пустой, его все равно необходимо добавить в порядке следования, для данного примера формула вычисления secret такова: | ||
| + | 123 : пусто : 555 : пусто : testlogin : e16b2ab8d12314bf4efbd6203906ea6c = 7fcb20d2c25956e38dbd2c9a6c3f9720<br> | ||
| + | Таким образом итоговый URL, на который совершается GET-запрос: https://www.alta.ru/svh-gruz/search/api/v1/?n_k=123&n_trans=&n_trans_doc=555&n_dt=&login=testlogin&secret=7fcb20d2c25956e38dbd2c9a6c3f9720 <br> | ||
| + | |||
| + | === Ответ === | ||
| + | При возникновении ошибок возвращается код ответа сервера отличный от 200, а также описание ошибки в JSON-массиве. | ||
| − | ''' | + | '''Пример ответа:''' |
| − | |||
| − | < | + | Код ответа 200: |
| + | <pre> | ||
{ | { | ||
"content": [ | "content": [ | ||
{ | { | ||
| − | "storeName": " | + | "storeName": "ООО \"Лоджистик\"", |
| − | "certificate": " | + | "certificate": "№10000/231000/00000/1 от 01.01.2011", |
| − | "internalNumber": " | + | "internalNumber": "№0000001 от 11.11.2011", |
| − | "acceptDate": | + | "acceptDate": "2011-01-11 00:00:00", |
| − | "deadLineDate": | + | "deadLineDate": "2011-04-12 00:00:00", |
| − | "regNumber": " | + | "regNumber": "10000011/110411/0010001", |
| − | "documentId": " | + | "documentId": "03333111-1212-4949-8826-225566776677", |
"containerNumbers": [ | "containerNumbers": [ | ||
| − | " | + | "SKLU0000003", |
| − | " | + | "SKLU0000002" |
], | ], | ||
"transportNumbers": [ | "transportNumbers": [ | ||
| − | "02011 Коносамент | + | "02011 Коносамент №253-900800200400 от 01.01.2011", |
| − | "02011 Коносамент | + | "02011 Коносамент №200-900800200400 от 01.01.2011", |
| − | "02011 Коносамент | + | "02011 Коносамент №250-900800200400 от 01.01.2011" |
], | ], | ||
| − | "totalPackageNumber": | + | "totalPackageNumber": 100, |
"transportIdentifiers": [ | "transportIdentifiers": [ | ||
| − | "VOSTOCHNY VOYAGER | + | "VOSTOCHNY VOYAGER 100X", |
| − | "VOSTOCHNY VOYAGER | + | "VOSTOCHNY VOYAGER 100X", |
| − | "VOSTOCHNY VOYAGER | + | "VOSTOCHNY VOYAGER 100X" |
], | ], | ||
"certificateLic": "LIC_PERMITION", | "certificateLic": "LIC_PERMITION", | ||
| Строка 50: | Строка 75: | ||
"dtDataList": [ | "dtDataList": [ | ||
{ | { | ||
| − | "number": " | + | "number": "10002000/110311/0030777", |
| − | "totalPackageNumber": | + | "totalPackageNumber": 100, |
"weight": [ | "weight": [ | ||
| − | " | + | "1000,00 КГ", |
| − | " | + | "1000,00 КГ", |
| − | " | + | "1000,00 КГ" |
], | ], | ||
"documentName": null, | "documentName": null, | ||
| Строка 64: | Строка 89: | ||
], | ], | ||
"warehouseOwner": { | "warehouseOwner": { | ||
| − | "organizationName": " | + | "organizationName": "ООО \"Лоджистик\"", |
| − | "ogrn": " | + | "ogrn": "1133536007552", |
| − | "inn": " | + | "inn": "2226255577", |
| − | "kpp": " | + | "kpp": "225501001", |
| − | "addressLine": " | + | "addressLine": "290900, г. Москва, ул. Гагарина, д. 1", |
"certificateKind": "lic_Permition", | "certificateKind": "lic_Permition", | ||
| − | "certificateNumber": " | + | "certificateNumber": "10000/231000/00000/1", |
| − | "certificateDate": | + | "certificateDate": "2011-01-01 00:00:00" |
}, | }, | ||
"status": "REGISTERED", | "status": "REGISTERED", | ||
| Строка 78: | Строка 103: | ||
} | } | ||
], | ], | ||
| − | "totalSize": | + | "totalSize": 1, |
| − | "pageSize": | + | "pageSize": 1, |
| − | "pageElements": | + | "pageElements": 1, |
| − | "responseMessage": " | + | "responseMessage": "" |
} | } | ||
| − | </ | + | </pre> |
| + | === Возможные ошибки === | ||
| + | Код ответа 404: | ||
| + | <pre> | ||
| + | {"error":"Пользователь не авторизован или неверный secret"} | ||
| + | </pre> | ||
| + | В случае каких то проблем с получением данных внутри сервера | ||
| + | <pre> | ||
| + | {"error":"Ошибка запроса, обратитесь к администратору сайта"} | ||
| + | </pre> | ||
| + | Количество запросов к серверу ограничено | ||
| + | <pre> | ||
| + | {"error":"Исчерпан лимит запросов, нужно подождать...", "wait_sec":23, "info":"Ваш лимит - не более 10 запросов за 1 минуту"} | ||
| + | </pre> | ||
[[Категория:Автоматизация]] | [[Категория:Автоматизация]] | ||
[[Категория:Web-Сервисы]] | [[Категория:Web-Сервисы]] | ||
Текущая версия на 13:04, 16 мая 2024
О сервисе
Сервис "Груз на СВХ" https://www.alta.ru/svh-gruz/ позволяет получить информацию о грузе в json формате, поступившем на склады временного хранения. По номеру транспортного документа, контейнера, транспортного средства или номера декларации предоставляется информация о размещении груза на СВХ.
API
Доступ к API предоставляется по URL https://www.alta.ru/svh-gruz/search/api/v1/.
Для использования сервиса необходима авторизация с помощью логина и пароля.
Логин и пароль для обращения по API необходимо получить в личном кабинете https://www.alta.ru/user/, заключив договор на использование онлайн-сервисов. В настройках договора будут указаны технический логин и пароль.
Запрос на поиск
Для поиска необходимо отправлять GET-запрос по URL https://www.alta.ru/svh-gruz/search/api/v1/, содержащий следующие GET-параметры:
- n_k - номер контейнера
- n_trans - транспортное средство
- n_trans_doc - транспортный документ
- n_dt - номер декларации
- логин в открытом виде
- секрет - MD5-хеш от сгенерированной строки параметры запроса + логин + md5-хэш от пароля, все параметры разделены знаком “:” (двоеточие)
secret = md5("{n_k}:{n_trans}:{n_trans_doc}:{n_dt}:{логин}:md5({пароль})")
Пример запроса:
Запрос с параметрами:
n_k = 123, n_trans = пусто, n_trans_doc = 555, n_dt = пусто.
Пользователь с логином testlogin и паролем testpassword.
для запроса: https://www.alta.ru/svh-gruz/search/api/v1/?n_k=123&n_trans=&n_trans_doc=555&n_dt=&login=testlogin
вычисляем секрет: secret = md5("123::555::testlogin:md5(testpassword)") = 7fcb20d2c25956e38dbd2c9a6c3f9720
Обратите внимание, даже если параметр пустой, его все равно необходимо добавить в порядке следования, для данного примера формула вычисления secret такова:
123 : пусто : 555 : пусто : testlogin : e16b2ab8d12314bf4efbd6203906ea6c = 7fcb20d2c25956e38dbd2c9a6c3f9720
Таким образом итоговый URL, на который совершается GET-запрос: https://www.alta.ru/svh-gruz/search/api/v1/?n_k=123&n_trans=&n_trans_doc=555&n_dt=&login=testlogin&secret=7fcb20d2c25956e38dbd2c9a6c3f9720
Ответ
При возникновении ошибок возвращается код ответа сервера отличный от 200, а также описание ошибки в JSON-массиве.
Пример ответа:
Код ответа 200:
{
"content": [
{
"storeName": "ООО \"Лоджистик\"",
"certificate": "№10000/231000/00000/1 от 01.01.2011",
"internalNumber": "№0000001 от 11.11.2011",
"acceptDate": "2011-01-11 00:00:00",
"deadLineDate": "2011-04-12 00:00:00",
"regNumber": "10000011/110411/0010001",
"documentId": "03333111-1212-4949-8826-225566776677",
"containerNumbers": [
"SKLU0000003",
"SKLU0000002"
],
"transportNumbers": [
"02011 Коносамент №253-900800200400 от 01.01.2011",
"02011 Коносамент №200-900800200400 от 01.01.2011",
"02011 Коносамент №250-900800200400 от 01.01.2011"
],
"totalPackageNumber": 100,
"transportIdentifiers": [
"VOSTOCHNY VOYAGER 100X",
"VOSTOCHNY VOYAGER 100X",
"VOSTOCHNY VOYAGER 100X"
],
"certificateLic": "LIC_PERMITION",
"weight": null,
"dtDataList": [
{
"number": "10002000/110311/0030777",
"totalPackageNumber": 100,
"weight": [
"1000,00 КГ",
"1000,00 КГ",
"1000,00 КГ"
],
"documentName": null,
"documentKind": null,
"dtRegNumber": null,
"messageType": null
}
],
"warehouseOwner": {
"organizationName": "ООО \"Лоджистик\"",
"ogrn": "1133536007552",
"inn": "2226255577",
"kpp": "225501001",
"addressLine": "290900, г. Москва, ул. Гагарина, д. 1",
"certificateKind": "lic_Permition",
"certificateNumber": "10000/231000/00000/1",
"certificateDate": "2011-01-01 00:00:00"
},
"status": "REGISTERED",
"changeStatusDate": null,
"participantId": null
}
],
"totalSize": 1,
"pageSize": 1,
"pageElements": 1,
"responseMessage": ""
}
Возможные ошибки
Код ответа 404:
{"error":"Пользователь не авторизован или неверный secret"}
В случае каких то проблем с получением данных внутри сервера
{"error":"Ошибка запроса, обратитесь к администратору сайта"}
Количество запросов к серверу ограничено
{"error":"Исчерпан лимит запросов, нужно подождать...", "wait_sec":23, "info":"Ваш лимит - не более 10 запросов за 1 минуту"}