API сервиса «Груз на СВХ»: различия между версиями

Материал из Alta-Soft Wikipedia
Перейти к навигации Перейти к поиску
(Новая страница: «== О сервисе == Сервис "Груз на СВХ" https://www.alta.ru/svh-gruz/ позволяет отслеживать прибытие груза…»)
 
 
(не показано 7 промежуточных версий 3 участников)
Строка 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/ передаются параметры
+
=== Запрос на поиск ===
  
'''Параметры:'''
+
Для поиска необходимо отправлять GET-запрос по URL https://www.alta.ru/svh-gruz/search/api/v1/, содержащий следующие GET-параметры:
#containerNumber - номер контейнера
+
#transportId - транспортное средство
+
#n_k - номер контейнера
#transportNumber - транспортный документ
+
#n_trans - транспортное средство
#declNumber - номер декларации
+
#n_trans_doc - транспортный документ
#hashKey - ключ для поиска по определенному participantId
+
#n_dt - номер декларации
 +
#логин в открытом виде
 +
#секрет - MD5-хеш от сгенерированной строки параметры запроса +  логин + md5-хэш от пароля, все параметры разделены знаком “:” (двоеточие)
 +
----
 +
<code>
 +
secret = md5("{n_k}:{n_trans}:{n_trans_doc}:{n_dt}:{логин}:md5({пароль})")
 +
</code>
 +
----
  
'''Ответ:'''  
+
'''Пример запроса:'''  
Пример ответа:
 
  
<syntaxhighlight lang=json>
+
Запрос с параметрами:
 +
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": "№10702/231216/00033/6 от 18.04.2017",
+
       "certificate": "№10000/231000/00000/1 от 01.01.2011",
       "internalNumber": "№0002474 от 18.04.2017",
+
       "internalNumber": "№0000001 от 11.11.2011",
       "acceptDate": 1492446600000,
+
       "acceptDate": "2011-01-11 00:00:00",
       "deadLineDate": 1497733200000,
+
       "deadLineDate": "2011-04-12 00:00:00",
       "regNumber": "10702030/180417/0046239",
+
       "regNumber": "10000011/110411/0010001",
       "documentId": "03D4A9F1-1212-49BF-8C26-518D62776676",
+
       "documentId": "03333111-1212-4949-8826-225566776677",
 
       "containerNumbers": [
 
       "containerNumbers": [
         "SKLU3518823",
+
         "SKLU0000003",
         "SKLU3518823"
+
         "SKLU0000002"
 
       ],
 
       ],
 
       "transportNumbers": [
 
       "transportNumbers": [
         "02011 Коносамент №SNKO02A170300708 от 07.04.2017",
+
         "02011 Коносамент №253-900800200400 от 01.01.2011",
         "02011 Коносамент №SNKO02A170300708 от 07.04.2017",
+
         "02011 Коносамент №200-900800200400 от 01.01.2011",
         "02011 Коносамент №SNKO02A170300708 от 07.04.2017"
+
         "02011 Коносамент №250-900800200400 от 01.01.2011"
 
       ],
 
       ],
       "totalPackageNumber": 296,
+
       "totalPackageNumber": 100,
 
       "transportIdentifiers": [
 
       "transportIdentifiers": [
         "VOSTOCHNY VOYAGER 0101W",
+
         "VOSTOCHNY VOYAGER 100X",
         "VOSTOCHNY VOYAGER 0101W",
+
         "VOSTOCHNY VOYAGER 100X",
         "VOSTOCHNY VOYAGER 0101W"
+
         "VOSTOCHNY VOYAGER 100X"
 
       ],
 
       ],
 
       "certificateLic": "LIC_PERMITION",
 
       "certificateLic": "LIC_PERMITION",
Строка 49: Строка 75:
 
       "dtDataList": [
 
       "dtDataList": [
 
         {
 
         {
           "number": "10702030/200417/0030708",
+
           "number": "10002000/110311/0030777",
           "totalPackageNumber": 296,
+
           "totalPackageNumber": 100,
 
           "weight": [
 
           "weight": [
             "3915,54 КГ",
+
             "1000,00 КГ",
             "3915,54 КГ",
+
             "1000,00 КГ",
             "3915,54 КГ"
+
             "1000,00 КГ"
 
           ],
 
           ],
 
           "documentName": null,
 
           "documentName": null,
Строка 63: Строка 89:
 
       ],
 
       ],
 
       "warehouseOwner": {
 
       "warehouseOwner": {
         "organizationName": "ПЗТК ООО \"Пасифик Лоджистик\"",
+
         "organizationName": "ООО \"Лоджистик\"",
         "ogrn": "1122536008572",
+
         "ogrn": "1133536007552",
         "inn": "2536255389",
+
         "inn": "2226255577",
         "kpp": "253601001",
+
         "kpp": "225501001",
         "addressLine": "690001, г. Владивосток, ул. Дальзаводская, д. 2",
+
         "addressLine": "290900, г. Москва, ул. Гагарина, д. 1",
 
         "certificateKind": "lic_Permition",
 
         "certificateKind": "lic_Permition",
         "certificateNumber": "10702/231216/00033/6",
+
         "certificateNumber": "10000/231000/00000/1",
         "certificateDate": 1482440400000
+
         "certificateDate": "2011-01-01 00:00:00"
 
       },
 
       },
 
       "status": "REGISTERED",
 
       "status": "REGISTERED",
Строка 77: Строка 103:
 
     }
 
     }
 
   ],
 
   ],
   "totalSize": 204587,
+
   "totalSize": 1,
   "pageSize": 20,
+
   "pageSize": 1,
   "pageElements": 20,
+
   "pageElements": 1,
   "responseMessage": "Найдено слишком много совпадений, для получения более точной информации уточните критерии поиска."
+
   "responseMessage": ""
 
}
 
}
</syntaxhighlight>
+
</pre>
 +
 
 +
=== Возможные ошибки ===
 +
 
 +
Код ответа 404:
 +
<pre>
 +
{"error":"Пользователь не авторизован или неверный secret"}
 +
</pre>
 +
В случае каких то проблем с получением данных внутри сервера
 +
<pre>
 +
{"error":"Ошибка запроса, обратитесь к администратору сайта"}
 +
</pre>
 +
Количество запросов к серверу ограничено
 +
<pre>
 +
{"error":"Исчерпан лимит запросов, нужно подождать...", "wait_sec":23, "info":"Ваш лимит - не более 10 запросов за 1 минуту"}
 +
</pre>
 +
 
 +
[[Категория:Автоматизация]]
 +
[[Категория:Web-Сервисы]]

Текущая версия на 10:42, 5 октября 2022

О сервисе

Сервис "Груз на СВХ" 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-параметры:

  1. n_k - номер контейнера
  2. n_trans - транспортное средство
  3. n_trans_doc - транспортный документ
  4. n_dt - номер декларации
  5. логин в открытом виде
  6. секрет - 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 минуту"}