API сервиса поиска вагонов: различия между версиями
Belousov (обсуждение | вклад) м (→Тестирования сервиса) |
Belousov (обсуждение | вклад) м (Метка: визуальный редактор отключён) |
||
(не показано 6 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
− | == Описание протокола обмена данными с системой поиска вагонов от Альта-Софт == | + | <b style="color:red"> !!Внимание!! |
+ | Данный протокол более не поддерживается. Используйте API-интерфейс из следующей статьи: | ||
+ | [[JSON-API сервиса поиска вагонов]] | ||
+ | </b> | ||
+ | |||
+ | ==Описание протокола обмена данными с системой поиска вагонов от Альта-Софт== | ||
<b>Обмен данными между сервисом Альта-Софт и сторонними ресурсами осуществляется по протоколу http, транспорт xml. Все запросы в системе – POST. </b> | <b>Обмен данными между сервисом Альта-Софт и сторонними ресурсами осуществляется по протоколу http, транспорт xml. Все запросы в системе – POST. </b> | ||
− | === 1) Выполнение запроса на поиск вагона или контейнера. === | + | ===1) Выполнение запроса на поиск вагона или контейнера.=== |
− | На адрес | + | На адрес [https://ww.alta.ru/rail_tracking/api_v1.php https://www.alta.ru/rail_tracking/api_v1.php] нужно послать xml-строку следующего формата: |
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
Строка 23: | Строка 28: | ||
</root> | </root> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Где:<br/> | + | Где:<br /> |
− | login и password – учетные данные, выданные при регистрации личного кабинета<br/> | + | login и password – учетные данные, выданные при регистрации личного кабинета<br /> |
− | action – [add|get] – добавление запроса на поиск (add) или получение ответа по добавленному ранее запросу (get) <br/> | + | action – [add|get] – добавление запроса на поиск (add) или получение ответа по добавленному ранее запросу (get) <br /> |
− | type – [1|2] 1 - запрос на поиск вагонов, 2 – запрос на поиск контейнеров<br/> | + | type – [1|2] 1 - запрос на поиск вагонов, 2 – запрос на поиск контейнеров<br /> |
− | state – необязательный параметр, код государства запроса, для России всегда 20<br/> | + | state – необязательный параметр, код государства запроса, для России всегда 20<br /> |
− | name – необязательный параметр, произвольный идентификатор запроса, он будет отображаться в личном кабинете на alta.ru при просмотре через web-интерфейс <br/> | + | name – необязательный параметр, произвольный идентификатор запроса, он будет отображаться в личном кабинете на alta.ru при просмотре через web-интерфейс <br /> |
− | vag – список вагонов для выполнения поиска, где атрибут num – собственно номер вагона или контейнера.<br/> | + | vag – список вагонов для выполнения поиска, где атрибут num – собственно номер вагона или контейнера.<br /> |
<b>В одном запросе не допускается включать номера перевозочных средств разных типов, т.е. в запросе должны быть либо номера только вагонов, либо номера только контейнеров (в соответствии с заданным type).</b> | <b>В одном запросе не допускается включать номера перевозочных средств разных типов, т.е. в запросе должны быть либо номера только вагонов, либо номера только контейнеров (в соответствии с заданным type).</b> | ||
− | В ответ система выдаст xml следующего содержания: <br/> | + | В ответ система выдаст xml следующего содержания: <br /> |
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<?xml version="1.0" encoding="utf-8" standalone="yes"?> | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | ||
Строка 43: | Строка 48: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Где: | Где: | ||
− | Status – [ok|error], статус запроса, ok – выполнен успешно, error – возникла ошибка. <br/> | + | Status – [ok|error], статус запроса, ok – выполнен успешно, error – возникла ошибка. <br /> |
− | При успешном завершении выполнения запроса атрибут code всегда равен нулю, при возникновении ошибки code = [50|60|70|100], в атрибуте descr – текстовое описание ошибки.<br/> | + | При успешном завершении выполнения запроса атрибут code всегда равен нулю, при возникновении ошибки code = [50|60|70|100], в атрибуте descr – текстовое описание ошибки.<br /> |
− | Коды ошибок: <br/> | + | Коды ошибок: <br /> |
− | 50 – Не указан список вагонов/контейнеров<br/> | + | 50 – Не указан список вагонов/контейнеров<br /> |
− | 60, 70 – зарезервировано<br/> | + | 60, 70 – зарезервировано<br /> |
− | 91 – ошибка соединения с базой<br/> | + | 91 – ошибка соединения с базой<br /> |
− | 92 – Неверный логин/пароль<br/> | + | 92 – Неверный логин/пароль<br /> |
− | 93 – Аккаунт не активирован<br/> | + | 93 – Аккаунт не активирован<br /> |
− | 94 – Неизвестная ошибка<br/> | + | 94 – Неизвестная ошибка<br /> |
− | 95 – Указанное действие не поддерживается<br/> | + | 95 – Указанное действие не поддерживается<br /> |
− | 96 - Дубликат запроса, действие отменено. Выполнить запрос с такими же параметрами можно через 3 минуты <br/> | + | 96 - Дубликат запроса, действие отменено. Выполнить запрос с такими же параметрами можно через 3 минуты <br /> |
− | 97 - Данному пользователю разрешено размещать запросы только по РФ <br/> | + | 97 - Данному пользователю разрешено размещать запросы только по РФ <br /> |
− | 100 – Недостаточно денег на балансе для выполнения запросов<br/> | + | 100 – Недостаточно денег на балансе для выполнения запросов<br /> |
− | Hash - в случае успеха добавляется элемент hash, содержащий уникальный идентификатор запроса, по которому можно будет получить ответ, содержащий информацию по дислокации перевозочных средств.<br/> | + | Hash - в случае успеха добавляется элемент hash, содержащий уникальный идентификатор запроса, по которому можно будет получить ответ, содержащий информацию по дислокации перевозочных средств.<br /> |
− | === 2) Получение результата запроса. | + | ===2) Получение результата запроса.=== |
Не ранее чем через 1 минуту после добавления запроса, по адресу http://www.alta.ru/rail_tracking/api_v1.php можно выполнить xml-запрос на получение результата. Содержание xml-строки: | Не ранее чем через 1 минуту после добавления запроса, по адресу http://www.alta.ru/rail_tracking/api_v1.php можно выполнить xml-запрос на получение результата. Содержание xml-строки: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
Строка 72: | Строка 77: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Где: | Где: | ||
− | login и password – учетные данные, выданные при регистрации личного кабинета<br/> | + | login и password – учетные данные, выданные при регистрации личного кабинета<br /> |
− | action – [get] получение ответа по добавленному ранее запросу (get)<br/> | + | action – [get] получение ответа по добавленному ранее запросу (get)<br /> |
− | hash – уникальный идентификатор, полученный при добавлении запроса на выполнение<br/> | + | hash – уникальный идентификатор, полученный при добавлении запроса на выполнение<br /> |
− | В ответ система выдаст xml следующего содержания:<br/> | + | В ответ система выдаст xml следующего содержания:<br /> |
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
Строка 90: | Строка 95: | ||
</root> | </root> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Где: <br/> | + | Где: <br /> |
− | Status=error – если возникла ошибка или от «1» до «4» – состояние запроса. В атрибуте code всегда ноль при успешной обработке запроса или код ошибки. Descr – текстовое описание ошибки или состояния запроса. <br/> | + | Status=error – если возникла ошибка или от «1» до «4» – состояние запроса. В атрибуте code всегда ноль при успешной обработке запроса или код ошибки. Descr – текстовое описание ошибки или состояния запроса. <br /> |
− | Коды состояния status:<br/><br/> | + | Коды состояния status:<br /><br /> |
− | 1 – в очереди на обработку<br/> | + | 1 – в очереди на обработку<br /> |
− | 2 – обрабатывается<br/> | + | 2 – обрабатывается<br /> |
− | 3 – частично обработан (получены данные не по всем перевозочным средствам)<br/> | + | 3 – частично обработан (получены данные не по всем перевозочным средствам)<br /> |
− | 4 – полностью обработан <br/><br/> | + | 4 – полностью обработан <br /><br /> |
− | Коды ошибок code:<br/> | + | Коды ошибок code:<br /> |
− | 30 – запрос с указанным hash отсутствует (не формировался)<br/> | + | 30 – запрос с указанным hash отсутствует (не формировался)<br /> |
− | 40 – ошибка при запросе к базе<br/> | + | 40 – ошибка при запросе к базе<br /> |
− | 91 – ошибка соединения с базой<br/> | + | 91 – ошибка соединения с базой<br /> |
− | 92 – Неверный логин/пароль<br/> | + | 92 – Неверный логин/пароль<br /> |
− | 93 – Аккаунт не активирован<br/> | + | 93 – Аккаунт не активирован<br /> |
− | 94 – Неизвестная ошибка<br/> | + | 94 – Неизвестная ошибка<br /> |
− | 95 – Указанное действие не поддерживается<br/> | + | 95 – Указанное действие не поддерживается<br /> |
− | 100 – Недостаточно денег на балансе для выполнения запросов<br/> | + | 100 – Недостаточно денег на балансе для выполнения запросов<br /> |
− | При status=3 или status=4 xml-ответ дополняется элементами vag, содержащими информацию по дислокации перевозочных средств. Ниже даны описания атрибутов:<br/> | + | При status=3 или status=4 xml-ответ дополняется элементами vag, содержащими информацию по дислокации перевозочных средств. Ниже даны описания атрибутов:<br /> |
− | num – номер запрошенного вагона/контейнера<br/> | + | num – номер запрошенного вагона/контейнера<br /> |
− | station – ecp-код станции<br/> | + | station – ecp-код станции<br /> |
− | op_date – дата операции<br/> | + | op_date – дата операции<br /> |
− | station_name – наименование станции<br/> | + | station_name – наименование станции<br /> |
− | lon и lat – широта и долгота станции (если есть в базе)<br/> | + | lon и lat – широта и долгота станции (если есть в базе)<br /> |
− | state – код государства станции<br/> | + | state – код государства станции<br /> |
− | state_name – наименование государства станции<br/> | + | state_name – наименование государства станции<br /> |
− | road_name – дорога станции<br/> | + | road_name – дорога станции<br /> |
− | operation – операции, совершенная на станции с поездом<br/> | + | operation – операции, совершенная на станции с поездом<br /> |
− | okpo – ОКПО собственника перевозочного средства<br/> | + | okpo – ОКПО собственника перевозочного средства<br /> |
− | owner – наименование собственника перевозочного средства (если доступно)<br/> | + | owner – наименование собственника перевозочного средства (если доступно)<br /> |
− | kgro и kgrp – коды грузоотправителя и грузополучателя<br/> | + | kgro и kgrp – коды грузоотправителя и грузополучателя<br /> |
− | train_index – индекс поезда<br/> | + | train_index – индекс поезда<br /> |
− | train_number – номер поезда<br/> | + | train_number – номер поезда<br /> |
− | freight – код груза ЕТСНГ<br/> | + | freight – код груза ЕТСНГ<br /> |
− | freight_name – наименование груза ЕТСНГ<br/> | + | freight_name – наименование груза ЕТСНГ<br /> |
− | weight – масса груза в центнерах<br/> | + | weight – масса груза в центнерах<br /> |
− | vag_number – только для контейнеров, номер вагона, на котором размещен контейнер<br/> | + | vag_number – только для контейнеров, номер вагона, на котором размещен контейнер<br /> |
− | rasst – расстояние, оставшееся до станции назначения<br/> | + | rasst – расстояние, оставшееся до станции назначения<br /> |
<b>Пример ответа:</b> | <b>Пример ответа:</b> | ||
Строка 154: | Строка 159: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | В ответ получите xml, содержащую баланс на момент запроса.<br/> | + | В ответ получите xml, содержащую баланс на момент запроса.<br /> |
− | Пример ответа:<br/> | + | Пример ответа:<br /> |
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<?xml version="1.0" encoding="utf-8" standalone="yes"?> | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | ||
Строка 165: | Строка 170: | ||
</root> | </root> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Status=error – если возникла ошибка. В атрибуте code всегда ноль при успешной обработке запроса или код ошибки. <br/> | + | Status=error – если возникла ошибка. В атрибуте code всегда ноль при успешной обработке запроса или код ошибки. <br /> |
− | Descr – текстовое описание ошибки или состояния запроса. <br/><br/> | + | Descr – текстовое описание ошибки или состояния запроса. <br /><br /> |
− | Коды ошибок code:<br/> | + | Коды ошибок code:<br /> |
− | 91 – ошибка соединения с базой<br/> | + | 91 – ошибка соединения с базой<br /> |
− | 92 – Неверный логин/пароль<br/> | + | 92 – Неверный логин/пароль<br /> |
− | 93 – Аккаунт не активирован<br/> | + | 93 – Аккаунт не активирован<br /> |
− | 94 – Неизвестная ошибка<br/> | + | 94 – Неизвестная ошибка<br /> |
− | 95 – Указанное действие не поддерживается<br/> | + | 95 – Указанное действие не поддерживается<br /> |
===Примеры запросов для языка PHP.=== | ===Примеры запросов для языка PHP.=== | ||
Строка 285: | Строка 290: | ||
===Тестирования сервиса=== | ===Тестирования сервиса=== | ||
− | Для отладки взаимодействия сервиса поиска вагонов и учетной системы клиента существует возможность отправлять запросы и получать ответы, используя тестовые данные.<br/> Никаких платежей за использование тестовых данных не предусмотрено.<br/><br/> | + | Для отладки взаимодействия сервиса поиска вагонов и учетной системы клиента существует возможность отправлять запросы и получать ответы, используя тестовые данные.<br /> Никаких платежей за использование тестовых данных не предусмотрено.<br /><br /> |
− | Для тестирования сервиса используйте следующие данные:<br/> | + | Для тестирования сервиса используйте следующие данные:<br /> |
− | login: test<br/> | + | login: test<br /> |
− | password: test<br/> | + | password: test<br /> |
− | Вы можете отправить запрос только на следующие номера перевозочных средств:<br/> | + | Вы можете отправить запрос только на следующие номера перевозочных средств:<br /> |
− | Вагоны: 54676515<br/> | + | Вагоны: 54676515<br /> |
Контейнеры: AMFU8899067 | Контейнеры: AMFU8899067 | ||
− | |||
[[Категория:Автоматизация]] | [[Категория:Автоматизация]] | ||
[[Категория:Web-Сервисы]] | [[Категория:Web-Сервисы]] |
Текущая версия на 17:03, 9 августа 2022
!!Внимание!! Данный протокол более не поддерживается. Используйте API-интерфейс из следующей статьи: JSON-API сервиса поиска вагонов
Описание протокола обмена данными с системой поиска вагонов от Альта-Софт
Обмен данными между сервисом Альта-Софт и сторонними ресурсами осуществляется по протоколу http, транспорт xml. Все запросы в системе – POST.
1) Выполнение запроса на поиск вагона или контейнера.
На адрес https://www.alta.ru/rail_tracking/api_v1.php нужно послать xml-строку следующего формата:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
<query>
<login>your_login</login>
<password>your_password</password>
<action>add</action>
<type>1|2</type>
<state>20</state>
<name>My query</name>
<vag num=”some_num_1”/>
<vag num=”some_num_2”/>
….
<vag num=”some_num_n” />
</query>
</root>
Где:
login и password – учетные данные, выданные при регистрации личного кабинета
action – [add|get] – добавление запроса на поиск (add) или получение ответа по добавленному ранее запросу (get)
type – [1|2] 1 - запрос на поиск вагонов, 2 – запрос на поиск контейнеров
state – необязательный параметр, код государства запроса, для России всегда 20
name – необязательный параметр, произвольный идентификатор запроса, он будет отображаться в личном кабинете на alta.ru при просмотре через web-интерфейс
vag – список вагонов для выполнения поиска, где атрибут num – собственно номер вагона или контейнера.
В одном запросе не допускается включать номера перевозочных средств разных типов, т.е. в запросе должны быть либо номера только вагонов, либо номера только контейнеров (в соответствии с заданным type).
В ответ система выдаст xml следующего содержания:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
<response>
<status code="result_code" descr="Result_descr">ok|error</status>
<hash>your_query_hash</hash>
</response>
</root>
Где:
Status – [ok|error], статус запроса, ok – выполнен успешно, error – возникла ошибка.
При успешном завершении выполнения запроса атрибут code всегда равен нулю, при возникновении ошибки code = [50|60|70|100], в атрибуте descr – текстовое описание ошибки.
Коды ошибок:
50 – Не указан список вагонов/контейнеров
60, 70 – зарезервировано
91 – ошибка соединения с базой
92 – Неверный логин/пароль
93 – Аккаунт не активирован
94 – Неизвестная ошибка
95 – Указанное действие не поддерживается
96 - Дубликат запроса, действие отменено. Выполнить запрос с такими же параметрами можно через 3 минуты
97 - Данному пользователю разрешено размещать запросы только по РФ
100 – Недостаточно денег на балансе для выполнения запросов
Hash - в случае успеха добавляется элемент hash, содержащий уникальный идентификатор запроса, по которому можно будет получить ответ, содержащий информацию по дислокации перевозочных средств.
2) Получение результата запроса.
Не ранее чем через 1 минуту после добавления запроса, по адресу http://www.alta.ru/rail_tracking/api_v1.php можно выполнить xml-запрос на получение результата. Содержание xml-строки:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
<query>
<login>your_login</login>
<password>your_password</password>
<action>get</action>
<hash>your_query_hash</hash>
</query>
</root>
Где:
login и password – учетные данные, выданные при регистрации личного кабинета
action – [get] получение ответа по добавленному ранее запросу (get)
hash – уникальный идентификатор, полученный при добавлении запроса на выполнение
В ответ система выдаст xml следующего содержания:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
<response>
<status code="result_code" descr="Result_descr">1|2|3|4|error</status>
<vag num=”some_num_1” [атрибуты, см. далее описание] />
<vag num=”some_num_2” [атрибуты, см. далее описание] />
….
<vag num=”some_num_n” [атрибуты, см. далее описание] />
</response>
</root>
Где:
Status=error – если возникла ошибка или от «1» до «4» – состояние запроса. В атрибуте code всегда ноль при успешной обработке запроса или код ошибки. Descr – текстовое описание ошибки или состояния запроса.
Коды состояния status:
1 – в очереди на обработку
2 – обрабатывается
3 – частично обработан (получены данные не по всем перевозочным средствам)
4 – полностью обработан
Коды ошибок code:
30 – запрос с указанным hash отсутствует (не формировался)
40 – ошибка при запросе к базе
91 – ошибка соединения с базой
92 – Неверный логин/пароль
93 – Аккаунт не активирован
94 – Неизвестная ошибка
95 – Указанное действие не поддерживается
100 – Недостаточно денег на балансе для выполнения запросов
При status=3 или status=4 xml-ответ дополняется элементами vag, содержащими информацию по дислокации перевозочных средств. Ниже даны описания атрибутов:
num – номер запрошенного вагона/контейнера
station – ecp-код станции
op_date – дата операции
station_name – наименование станции
lon и lat – широта и долгота станции (если есть в базе)
state – код государства станции
state_name – наименование государства станции
road_name – дорога станции
operation – операции, совершенная на станции с поездом
okpo – ОКПО собственника перевозочного средства
owner – наименование собственника перевозочного средства (если доступно)
kgro и kgrp – коды грузоотправителя и грузополучателя
train_index – индекс поезда
train_number – номер поезда
freight – код груза ЕТСНГ
freight_name – наименование груза ЕТСНГ
weight – масса груза в центнерах
vag_number – только для контейнеров, номер вагона, на котором размещен контейнер
rasst – расстояние, оставшееся до станции назначения
Пример ответа:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
<response>
<status descr="Обработан" code="0">4</status>
<vag num="54922810" station="19380" station_name="Перово" lon="37.764368" lat ="55.735818" state="20" state_name="Россия" road_name="Московская" op_date="2013-10-14 21:57:00" operation="РАСФОРМИРОВАНИЕ ПОЕЗДА" okpo="87556235" owner="ООО "ИМПРОМ"" kgro="0" kgrp="9999" train_index="0" train_number="0" freight="42110" freight_name="Платформы железнодорожные, перевозимые на своих осях" weight="0" vag_number="" rasst="76" />
<vag num="54973847" station="98380" station_name="Партизанск" lon="133.143368" lat ="43.06927" state="20" state_name="Россия" road_name="Дальневосточная" op_date="2013-10-16 13:44:00" operation="ПРОСЛ.ПОЕЗ.""НАШЕЙ"" СТ.Б/ОСТ(БЕЗ ПР./СД. НА ДР.ДОР)" okpo="62716542" owner="ООО "Репетек"" kgro="6856" kgrp="0032" train_index="9859004123050" train_number="1297" freight="300" freight_name="" weight="250" vag_number="" rasst="9232" />
<vag num="67770560" station="29300" station_name="Коноша I" lon="40.247064" lat ="60.974297" state="20" state_name="Россия" road_name="Северная" op_date="2013-10-15 23:18:00" operation="БРОСАНИЕ ПОЕЗДА НА СТАНЦИИ" okpo="68398528" owner="ОАО [ВГКk" kgro="5194" kgrp="2865" train_index="100016123700" train_number="2301" freight="23205" freight_name="Габбро" weight="690" vag_number="" rasst="732" />
</response>
</root>
3) Запрос баланса
На адрес http://www.alta.ru/rail_tracking/api_v1.php выполнить xml-запрос на получение баланса. Содержание xml-строки:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
<query>
<login>your_login</login>
<password>your_password</password>
<action>balans</action>
</query>
</root>
В ответ получите xml, содержащую баланс на момент запроса.
Пример ответа:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
<response>
<status descr="Обработан" code="0">ok</status>
<balans>[остаток на счете на момент запроса в рублях]</balans>
</response>
</root>
Status=error – если возникла ошибка. В атрибуте code всегда ноль при успешной обработке запроса или код ошибки.
Descr – текстовое описание ошибки или состояния запроса.
Коды ошибок code:
91 – ошибка соединения с базой
92 – Неверный логин/пароль
93 – Аккаунт не активирован
94 – Неизвестная ошибка
95 – Указанное действие не поддерживается
Примеры запросов для языка PHP.
1) Запрос на поиск (add_query_example.php)
<?php
function post_data($url, $params, $timeout = 5)
{
$opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $params, 'timeout' => $timeout ) );
$context = stream_context_create($opts);
$result = file_get_contents($url, false, $context);
return $result;
}
$login = 'your_login';
$pass = 'your_password';
$xml_str = "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>";
$xml_str .= "<root><query><login>$login</login><password>$pass</password>";
$xml_str .= "<action>add</action>";
$xml_str .= '<vag num="54532312"/>';
$xml_str .= '<vag num="54563036"/>';
$xml_str .= '<vag num="59616896"/>';
$xml_str .= '<state>20</state>';
$xml_str .= '<type>1</type>';
$xml_str .= '<name>Пример запроса</name>';
$xml_str .= "</query></root>";
$result = post_data("http://www.alta.ru/rail_tracking/api_v1.php", $xml_str, 5);
$xml = simplexml_load_string($result);
$status = $xml->response->status;
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
if ($status == 'ok')
{
echo "Результат: ".$status['descr'];
echo "<br/>";
echo "Идентификатор запроса: ".$xml->response->hash;
}
else
{
echo "Результат: ".$status['descr'];
echo "<br/>";
echo "Код ошибки: ".$status['code'];
}
?>
2) Запрос на получение ответа (get_response_example.php)
<?php
function post_data($url, $params, $timeout = 5)
{
$opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $params, 'timeout' => $timeout ) );
$context = stream_context_create($opts);
$result = file_get_contents($url, false, $context);
return $result;
}
$login = 'your_login';
$pass = 'your_password';
$xml_str = "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>";
$xml_str .= "<root><query><login>$login</login><password>$pass</password>";
$xml_str .= "<action>get</action>";
$xml_str .= '<hash>c4cf2a16090153f078ea263acab1a6d8</hash>';
$xml_str .= "</query></root>";
$result = post_data("http://www.alta.ru/rail_tracking/api_v1.php", $xml_str, 5);
$xml = simplexml_load_string($result);
$status = $xml->response->status;
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
if ($status != 'error')
{
echo "Статус запроса: ".$status['descr'];
echo "<hr/>";
foreach ($xml->xpath('/root/response/vag') as $vag)
{
echo "Станция: ".$vag['station'].' '.$vag['station_name']."<br/>";
echo "Координаты станции: ".$vag['lon'].' '.$vag['lat'].'<br/>';
echo "Дата: ".$vag['op_date']."<br/>";
echo "Операция: ".$vag['operation']."<br/>";
echo "ОКПО собственника: ".$vag['okpo'].' '.$vag['owner'].'<br/>';
echo "<hr/>";
}
}
else
{
echo "Результат: ".$status['descr'];
echo "<br/>";
echo "Код ошибки: ".$status['code'];
}
?>
Все действия, производимые через api видны и в web-интерфейсе системы (на закладках «в обработке» и «отчеты»)
Тестирования сервиса
Для отладки взаимодействия сервиса поиска вагонов и учетной системы клиента существует возможность отправлять запросы и получать ответы, используя тестовые данные.
Никаких платежей за использование тестовых данных не предусмотрено.
Для тестирования сервиса используйте следующие данные:
login: test
password: test
Вы можете отправить запрос только на следующие номера перевозочных средств:
Вагоны: 54676515
Контейнеры: AMFU8899067