TM API: различия между версиями
м (Откат правок TechnicalWriter (обсуждение) к версии AnnaKurochkina) |
(Отмена правки 11178, сделанной участником TechnicalWriter (обс.)) |
||
| Строка 7: | Строка 7: | ||
# Расширить возможности своей службы за счет популярного онлайн-сервиса Яндекс.Такси. | # Расширить возможности своей службы за счет популярного онлайн-сервиса Яндекс.Такси. | ||
{{Warning|Все перечисленные функции работают в Такси-Мастер не ниже [[История изменений в программе Такси-Мастер#Такси-Мастер. Версия | {{Warning|Все перечисленные функции работают в Такси-Мастер не ниже [[История изменений в программе Такси-Мастер#Такси-Мастер. Версия 2.7.0 от 25.05.2015|2.7.0 от 25.05.2015г]]. В более низких версиях программы часть функций может не поддерживаться.}} | ||
== Параметры TM API == | == Параметры TM API == | ||
| Строка 770: | Строка 770: | ||
|Дробное | |Дробное | ||
|Долгота адреса | |Долгота адреса | ||
|- | |||
|• zone_id | |||
|Целое | |||
|ИД района | |||
|- | |||
|• parking_id | |||
|Целое | |||
|ИД стоянки | |||
|- | |- | ||
|source_time | |source_time | ||
| Строка 869: | Строка 877: | ||
|104 | |104 | ||
|Клиент не найден | |Клиент не найден | ||
|- | |||
|105 | |||
|Район не найден | |||
|- | |||
|106 | |||
|Стоянка не найдена | |||
|} | |} | ||
| Строка 902: | Строка 916: | ||
"tariff_id":1, | "tariff_id":1, | ||
"addresses":[ | "addresses":[ | ||
{"address":"SOURCE","lat":56.896817,"lon":53.147830}, | {"address":"SOURCE","lat":56.896817,"lon":53.147830,"zone_id":1,"parking_id":1}, | ||
{"address":"STOP1","lat":56.845452,"lon":53.226775}, | {"address":"STOP1","lat":56.845452,"lon":53.226775,"zone_id":2,"parking_id":2}, | ||
{"address":"STOP2"}, | {"address":"STOP2"}, | ||
{"address":"DESTINATION","lat":56.861230,"lon":53.241870} | {"address":"DESTINATION","lat":56.861230,"lon":53.241870} | ||
| Строка 1014: | Строка 1028: | ||
|Строка | |Строка | ||
|Список ИД услуг через точку с запятой, пример: «1;2;3» | |Список ИД услуг через точку с запятой, пример: «1;2;3» | ||
Устарело. Рекомендуется использовать параметр order_params. | |||
|- | |- | ||
|order_params | |order_params | ||
| Строка 1107: | Строка 1123: | ||
</pre> | </pre> | ||
=== | === Расчет суммы заказа 2 === | ||
Метод: POST | Метод: POST | ||
Название запроса: | Название запроса: calc_order_cost2 | ||
{| | {| | ||
!Параметр | !Параметр | ||
| Строка 1121: | Строка 1135: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |tariff_id | ||
|Целое | |Целое | ||
|ИД | |ИД тарифа | ||
|- | |- | ||
Параметры: | |||
!colspan="3"|Необязательные параметры | |||
|- | |||
|source_time | |||
|ГГГГММДДччммсс | |||
|Время подачи | |||
|- | |- | ||
| | |is_prior | ||
| | |true или false | ||
|Предварительный заказ | |||
|- | |- | ||
| | |client_id | ||
| | |Целое | ||
|ИД клиента | |||
|- | |- | ||
| | |discount_id | ||
| | |Целое | ||
| | |ИД скидки | ||
|- | |- | ||
| | |disc_card_id | ||
|Целое | |Целое | ||
|ИД | |ИД дисконтной карты | ||
|- | |- | ||
| | |source_zone_id | ||
|Целое | |Целое | ||
| | |ИД района подачи | ||
|- | |- | ||
|dest_zone_id | |||
|Целое | |||
|ИД района назначения | |||
|- | |- | ||
| | |distance_city | ||
| | |Дробное | ||
| | |Километраж по городу | ||
|- | |- | ||
| | |distance_country | ||
| | |Дробное | ||
| | |Километраж за городом | ||
|- | |- | ||
| | |source_distance_country | ||
| | |Дробное | ||
| | |Километраж до подачи за городом | ||
|- | |- | ||
| | |is_country | ||
| | |true или false | ||
| | |Загородный заказ | ||
|- | |- | ||
| | |waiting_minutes | ||
| | |Целое | ||
| | |Время ожидания посадки клиента в минутах | ||
|- | |- | ||
| | |is_hourly | ||
| | |true или false | ||
| | |Почасовой заказ | ||
|- | |- | ||
| | |hourly_minutes | ||
|Целое | |Целое | ||
| | |Длительность почасового заказа в минутах | ||
|- | |- | ||
| | |is_prize | ||
| | |true или false | ||
| | |Призовой заказ | ||
|- | |- | ||
| | |back_way | ||
|true или false | |true или false | ||
| | |Обратный путь за городом | ||
|- | |- | ||
| | |order_params | ||
| | |Массив | ||
| | |Массив параметров заказа | ||
|- | |- | ||
| | |• | ||
|Целое | |Целое | ||
| | |ИД параметра заказа | ||
|- | |- | ||
| | |cashless | ||
| | |true или false | ||
| | |Признак безналичного заказа | ||
|- | |- | ||
| | |stops | ||
| | |Массив | ||
| | |Список остановок | ||
|- | |- | ||
| | |• zone_id | ||
|Целое | |Целое | ||
| | |ИД района остановки | ||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |- | ||
| | |100 | ||
| | |Тариф не найден | ||
| | |- | ||
|101 | |||
|Ошибка при расчете по тарифу | |||
|- | |||
|102 | |||
|Скидка не найдена | |||
|- | |||
|103 | |||
|Клиент не найден | |||
|- | |||
|104 | |||
|Район подачи не найден | |||
|- | |||
|105 | |||
|Район назначения не найден | |||
|- | |||
|106 | |||
|Дисконтная карта не найдена | |||
|- | |||
|107 | |||
|Район остановки не найден | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |- | ||
| | |sum | ||
| | |Дробное | ||
| | |Рассчитанная общая сумма заказа | ||
|- | |- | ||
| | |info | ||
|Массив | |Массив | ||
| | |Дополнительная информация по расчету суммы заказа | ||
|- | |||
| • comment | |||
|Строка | |||
|Описание позиции дополнительной информации по расчету суммы заказа | |||
|- | |- | ||
|• | | • sum | ||
| | |Строка | ||
| | |Сумма позиции дополнительной информации по расчету суммы заказа | ||
|} | |} | ||
| Строка 1290: | Строка 1286: | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/ | GET https://ip:port/common_api/1.0/calc_order_cost2 HTTP/1.1 | ||
Signature: <...> | Signature: <...> | ||
Content-Type: application/json | |||
Content-Length: <...> | |||
{ | |||
"tariff_id":1, | |||
"source_time":"20140415172811", | |||
"is_prior":false, | |||
"client_id":1, | |||
"discount_id":1, | |||
"disc_card_id":1, | |||
"source_zone_id":1, | |||
"dest_zone_id":2, | |||
"distance_city":10, | |||
"distance_country":20, | |||
"source_distance_country":5, | |||
"is_country":true, | |||
"waiting_minutes":10, | |||
"is_hourly":false, | |||
"hourly_minutes":60, | |||
"is_prize":true, | |||
"back_way":false, | |||
"order_params":[3,4], | |||
"stops": [ | |||
{ | |||
"zone_id": 1 | |||
}, | |||
{ | |||
"zone_id": 2 | |||
} | |||
] | |||
} | |||
Ответ: | Ответ: | ||
{ | { | ||
"code":0, | "code":0, | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
" | "sum":1000, | ||
" | "info":[ | ||
{ | |||
"comment":"SUM1", | |||
"sum":"100" | |||
}, | |||
{ | |||
"comment":"SUM2", | |||
"sum":"200" | |||
} | |||
" | |||
] | ] | ||
} | } | ||
| Строка 1322: | Строка 1338: | ||
</pre> | </pre> | ||
=== Изменение состояния заказа === | |||
Метод: POST | |||
Название запроса: change_order_state | |||
Параметры: | |||
{| | {| | ||
!Параметр | !Параметр | ||
| Строка 1337: | Строка 1351: | ||
!Описание | !Описание | ||
|- | |- | ||
! colspan="3" | Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |ORDER_ID | ||
| | |Целое | ||
| | |ИД заказа | ||
|- | |- | ||
| | |NEW_STATE | ||
|Целое | |Целое | ||
| | |Новое состояние заказа | ||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |- | ||
| | |100 | ||
| | |Не найден заказ ИД=ORDER_ID | ||
|- | |- | ||
| | |101 | ||
| | |Не найдено состояние заказа ИД=NEW_STATE | ||
|- | |- | ||
| | |102 | ||
| | |Изменение состояния не соответствует необходимым условиям. | ||
| | |} | ||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |- | ||
| | |ORDER_ID | ||
|Целое | |Целое | ||
|ИД | |ИД заказа | ||
|- | |- | ||
| | |NEW_STATE | ||
|Целое | |Целое | ||
| | |Новое состояние заказа | ||
| | |} | ||
| | Пример: | ||
<pre> | |||
Запрос: | |||
POST https://ip:port/common_api/1.0/calc_order_cost?order_id=6&new_state=4 HTTP/1.1 | |||
Signature: <...> | |||
Ответ: | |||
{ | |||
"code":0, | |||
"descr":"OK", | |||
"data":{ | |||
"order_id":6, | |||
"new_state":4 | |||
} | |||
} | |||
</pre> | |||
=== Запрос информации об экипажах === | |||
Метод: GET | |||
Название запроса: get_crew_info | |||
Параметры: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |- | ||
| | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |crew_id | ||
|Целое | |Целое | ||
| | |ИД экипажа | ||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Экипаж не найден | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |- | ||
| | |crew_id | ||
|Целое | |Целое | ||
| | |ИД экипажа | ||
|- | |||
|code | |||
|Строка | |||
|Позывной экипажа | |||
|- | |||
|name | |||
|Строка | |||
|Наименование экипажа | |||
|- | |- | ||
| | |driver_id | ||
|Целое | |Целое | ||
| | |ИД водителя | ||
|- | |- | ||
| | |car_id | ||
|Целое | |Целое | ||
| | |ИД автомобиля | ||
|- | |- | ||
| | |crew_group_id | ||
| | |Целое | ||
| | |ИД группы экипажа | ||
|- | |- | ||
| | |crew_state_id | ||
| | |Целое | ||
| | |ИД состояния экипажа | ||
|- | |- | ||
| | |online | ||
|true или false | |true или false | ||
| | |Водитель подключен к серверу «Связи с водителями» | ||
|- | |- | ||
| | |work_shift_sum | ||
|Дробное | |||
|Сумма, списываемая за смену | |||
|- | |||
|min_balance | |||
|Дробное | |||
|Минимальный баланс, при котором можно выйти на смену | |||
|- | |||
|common_priority | |||
|Целое | |||
|Общий приоритет | |||
|- | |||
|static_priority | |||
|Целое | |||
|Статический приоритет | |||
|- | |||
|dynamic_priority | |||
|Целое | |||
|Динамический приоритет | |||
|- | |||
|order_change_id | |||
|Целое | |||
|Индивидуальная сдача с заказа | |||
|- | |||
|has_light_house | |||
|true или false | |||
|Шашка | |||
|- | |||
|has_label | |||
|true или false | |||
|Наклейка | |||
|- | |||
|order_params | |||
|Массив | |Массив | ||
|Массив параметров заказа экипажа | |Массив параметров заказа экипажа | ||
|- | |- | ||
|• | |• | ||
|Целое | |Целое | ||
|ИД параметра заказа | |ИД параметра заказа | ||
| Строка 1423: | Строка 1520: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/ | |||
GET https://ip:port/common_api/1.0/get_crew_info?crew_id=1 HTTP/1.1 | |||
Signature: <...> | Signature: <...> | ||
Ответ: | |||
{ | { | ||
"code":0, | "code":0, | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
"crew_id":1, | |||
"code":"123", | |||
"name":"CREW_NAME", | |||
"driver_id":1, | |||
"car_id":1, | |||
"crew_group_id":1, | |||
"crew_state_id":3, | |||
"online":true | |||
"work_shift_sum":0, | |||
"min_balance":10, | |||
"common_priority":0, | |||
"static_priority":0, | |||
"dynamic_priority":0, | "dynamic_priority":0, | ||
"order_change_id":218, | |||
"has_light_house":false, | |||
"has_label":false, | |||
"order_params":[ | |||
1, | |||
2, | |||
] | ] | ||
} | } | ||
| Строка 1479: | Строка 1554: | ||
</pre> | </pre> | ||
=== Запрос информации | === Запрос информации об экипажах на линии === | ||
Метод: GET | Метод: GET | ||
Название запроса: | Название запроса: get_crews_info | ||
Параметры: нет | |||
Специальные возвращаемые коды: нет | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | {| | ||
! | !Параметр | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
!colspan="3"|Обязательные параметры | ! colspan="3" | Обязательные параметры | ||
|- | |||
|crews_info | |||
|Массив | |||
|Массив экипажей на линии | |||
|- | |- | ||
| | |• crew_id | ||
|Целое | |Целое | ||
|ИД | |ИД экипажа | ||
|- | |- | ||
|• code | |||
|Строка | |||
|Позывной экипажа | |||
|- | |- | ||
| | |• name | ||
| | |Строка | ||
| | |Наименование экипажа | ||
|- | |- | ||
| | |• driver_id | ||
|Целое | |Целое | ||
|ИД водителя | |ИД водителя | ||
|- | |- | ||
| | |• car_id | ||
| | |Целое | ||
| | |ИД автомобиля | ||
|- | |- | ||
| | |• crew_group_id | ||
| | |Целое | ||
| | |ИД группы экипажа | ||
|- | |- | ||
| | |• crew_state_id | ||
|Целое | |Целое | ||
|ИД | |ИД состояния экипажа | ||
|- | |- | ||
| | |• online | ||
| | |true или false | ||
| | |Водитель подключен к серверу «Связи с водителями» | ||
|- | |- | ||
| | |• work_shift_sum | ||
| | |Дробное | ||
| | |Сумма, списываемая за смену | ||
|- | |- | ||
| | |• min_balance | ||
| | |Дробное | ||
| | |Минимальный баланс, при котором можно выйти на смену | ||
|- | |- | ||
| | |• common_priority | ||
| | |Целое | ||
| | |Общий приоритет | ||
|- | |- | ||
| | |• static_priority | ||
| | |Целое | ||
| | |Статический приоритет | ||
|- | |- | ||
| | |• dynamic_priority | ||
| | |Целое | ||
| | |Динамический приоритет | ||
|- | |||
|• order_change_id | |||
|Целое | |||
|Индивидуальная сдача с заказа | |||
|- | |||
|• has_light_house | |||
|true или false | |||
|Шашка | |||
|- | |||
|• has_label | |||
|true или false | |||
|Наклейка | |||
|- | |||
|• has_label | |||
|true или false | |||
|Наклейка | |||
|- | |||
|• order_params | |||
|Массив | |||
|Массив параметров заказа экипажа | |||
|- | |||
|• order_params | |||
|Целое | |||
|ИД параметра заказа | |||
|} | |} | ||
| Строка 1563: | Строка 1656: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/get_crews_info HTTP/1.1 | |||
GET https://ip:port/common_api/1.0/ | |||
Signature: <...> | Signature: <...> | ||
Ответ: | Ответ: | ||
{ | { | ||
"code":0, | "code":0, | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
"driver_id":1, | "crews_info":[ | ||
{ | |||
"crew_id":1, | |||
"code":"123", | |||
"name":"CREW_NAME1", | |||
"driver_id":1, | |||
"car_id":1, | |||
"crew_group_id":1, | |||
"crew_state_id":3 | |||
} | "online":true, | ||
} | "work_shift_sum":0, | ||
"min_balance":10, | |||
"common_priority":10, | |||
"static_priority":10, | |||
"dynamic_priority":0, | |||
"order_change_id":0, | |||
"has_light_house":false, | |||
"has_label":false, | |||
"order_params":[ | |||
1, | |||
5, | |||
] | |||
}, | |||
{ | |||
"crew_id":12, | |||
"code":"777", | |||
"name":"CREW_NAME2", | |||
"driver_id":12, | |||
"car_id":12, | |||
"crew_group_id":2 | |||
"crew_state_id":1, | |||
"online":false, | |||
"work_shift_sum":0, | |||
"min_balance":10, | |||
"common_priority":15, | |||
"static_priority":15, | |||
"dynamic_priority":0, | |||
"order_change_id":0, | |||
"has_light_house":false, | |||
"has_label":true, | |||
"order_params":[] | |||
} | |||
] | |||
} | |||
} | |||
</pre> | </pre> | ||
=== Запрос информации о водителе === | |||
=== Запрос | |||
Метод: GET | Метод: GET | ||
Название запроса: | Название запроса: get_driver_info | ||
Параметры: | Параметры: | ||
{| | {| | ||
! | !Параметры | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
!colspan="3"| | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |driver_id | ||
| | |Целое | ||
| | |ИД водителя | ||
|- | |- | ||
| | !colspan="3"|Необязательные параметры | ||
|- | |||
|need_photo | |||
|true или false | |true или false | ||
| | |Нужна ли фотография водителя | ||
|} | |} | ||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Водитель не найден | |||
|} | |||
Возвращаемые параметры в случае успешного выполнения запроса: | |||
Возвращаемые | |||
{| | {| | ||
!Параметр | !Параметр | ||
| Строка 1619: | Строка 1750: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |driver_id | ||
|Целое | |Целое | ||
|ИД водителя | |ИД водителя | ||
|- | |- | ||
| | |name | ||
|Строка | |Строка | ||
|ФИО водителя | |ФИО водителя | ||
|- | |- | ||
| | |balance | ||
|Дробное | |Дробное | ||
|Баланс водителя | |Баланс водителя | ||
|- | |- | ||
| | |birthday | ||
|ДД.ММ.ГГГГ | |ДД.ММ.ГГГГ | ||
|День рождения водителя | |День рождения водителя | ||
|- | |- | ||
| | |car_id | ||
|Целое | |Целое | ||
|ИД основного автомобиля водителя | |ИД основного автомобиля водителя | ||
|- | |- | ||
| | |license | ||
|Строка | |Строка | ||
|Удостоверение водителя | |Удостоверение водителя | ||
|- | |- | ||
| | |home_phone | ||
|Строка | |Строка | ||
|Домашний телефон водителя | |Домашний телефон водителя | ||
|- | |- | ||
| | |mobile_phone | ||
|Строка | |Строка | ||
|Мобильный телефон водителя | |Мобильный телефон водителя | ||
|- | |- | ||
| | |is_locked | ||
|true или false | |true или false | ||
|Водитель заблокирован | |Водитель заблокирован | ||
|- | |- | ||
| | |is_dismissed | ||
|true или false | |true или false | ||
|Водитель уволен | |Водитель уволен | ||
|- | |- | ||
| | |driver_photo | ||
|Массив | |Base64 | ||
|Фото водителя (только если need_photo = true) | |||
|- | |||
|order_params | |||
|Массив | |||
|Массив параметров заказа водителя | |Массив параметров заказа водителя | ||
|- | |- | ||
| Строка 1675: | Строка 1806: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/ | GET https://ip:port/common_api/1.0/get_driver_info?driver_id=1&need_photo=false HTTP/1.1 | ||
Signature: <...> | Signature: <...> | ||
Ответ: | Ответ: | ||
| Строка 1689: | Строка 1817: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
"driver_id":1, | |||
"name":"DRIVER_NAME", | |||
"balance":100, | |||
"birthday":"01.01.1980", | |||
"car_id":1, | |||
"license":"1234567890", | |||
"home_phone":"123456", | |||
"mobile_phone":"+79123456789", | |||
"is_locked":false, | |||
"is_dismissed":false, | |||
"order_params":[3,4] | |||
} | } | ||
} | } | ||
</pre> | </pre> | ||
=== Запрос | === Запрос списка водителей === | ||
Метод: GET | Метод: GET | ||
Название запроса: | Название запроса: get_drivers_info | ||
Параметры: | Параметры: | ||
{| | {| | ||
! | !Параметр | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
!colspan="3"| | !colspan="3"|Небязательные параметры | ||
|- | |- | ||
| | |locked_drivers | ||
| | |true или false | ||
| | |Включить в ответ запроса заблокированных водителей (по умолчанию false) | ||
|- | |- | ||
|dismissed_drivers | |||
|true или false | |true или false | ||
| | |Включить в ответ запроса уволенных водителей (по умолчанию false) | ||
|} | |} | ||
Специальные возвращаемые коды: | |||
Специальные возвращаемые коды: нет | |||
Возвращаемые данные в случае успешного выполнения запроса: | Возвращаемые данные в случае успешного выполнения запроса: | ||
{| | {| | ||
!Параметр | !Параметр | ||
| Строка 1761: | Строка 1864: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |drivers_info | ||
|Массив | |||
|Массив не удаленных водителей | |||
|- | |||
|• driver_id | |||
|Целое | |Целое | ||
|ИД | |ИД водителя | ||
|- | |- | ||
| | |• name | ||
|Строка | |Строка | ||
| | |ФИО водителя | ||
|- | |- | ||
| | |• balance | ||
| | |Дробное | ||
| | |Баланс водителя | ||
|- | |- | ||
| | |• birthday | ||
| | |ДД.ММ.ГГГГ | ||
| | |День рождения водителя | ||
|- | |- | ||
| | |• car_id | ||
| | |Целое | ||
| | |ИД основного автомобиля водителя | ||
|- | |- | ||
| | |• license | ||
|Строка | |Строка | ||
| | |Удостоверение водителя | ||
|- | |- | ||
| | |• home_phone | ||
|Строка | |Строка | ||
| | |Домашний телефон водителя | ||
|- | |- | ||
| | |• mobile_phone | ||
|Строка | |Строка | ||
| | |Мобильный телефон водителя | ||
|- | |- | ||
| | |• is_locked | ||
| | |true или false | ||
| | |Водитель заблокирован | ||
|- | |- | ||
| | |• is_dismissed | ||
|true или false | |true или false | ||
| | |Водитель уволен | ||
|- | |- | ||
|order_params | |• order_params | ||
|Массив | |Массив | ||
|Массив параметров заказа | |Массив параметров заказа водителя | ||
|- | |- | ||
|• | |• | ||
|Целое | |Целое | ||
|ИД параметра заказа | |ИД параметра заказа | ||
|} | |} | ||
| Строка 1817: | Строка 1920: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/ | GET https://ip:port/common_api/1.0/get_drivers_info HTTP/1.1 | ||
Signature: <...> | Signature: <...> | ||
locked_drivers=true&dismissed_drivers=true | |||
Ответ: | Ответ: | ||
| Строка 1828: | Строка 1934: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
"car_id":1, | "drivers_info":[ | ||
{ | |||
"driver_id":1, | |||
"name":"DRIVER_NAME1", | |||
"balance":100.00, | |||
"birthday":"01.01.1980", | |||
"car_id":1, | |||
"license":"1234567890", | |||
"home_phone":"123456", | |||
"mobile_phone":"+79123456788", | |||
"is_locked":false, | |||
"is_dismissed":false, | |||
"order_params":[3,4] | |||
}, | |||
{ | |||
"driver_id":2, | |||
"name":"DRIVER_NAME2", | |||
"balance":-50.00, | |||
"birthday":"01.01.1980", | |||
"car_id":2, | |||
"license":"1234567899", | |||
"home_phone":"123457", | |||
"mobile_phone":"+79123456789", | |||
"is_locked":true, | |||
"is_dismissed":true, | |||
"order_params":[5,6] | |||
} | |||
] | |||
} | } | ||
} | } | ||
</pre> | </pre> | ||
=== Запрос информации об автомобиле === | |||
=== Запрос | |||
Метод: GET | Метод: GET | ||
Название запроса: | Название запроса: get_car_info | ||
Параметры: | Параметры: | ||
| Строка 1855: | Строка 1977: | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |||
!colspan="3"|Обязательные параметры | |||
|- | |||
|car_id | |||
|Целое | |||
|ИД автомобиля | |||
|- | |- | ||
!colspan="3"|Необязательные параметры | !colspan="3"|Необязательные параметры | ||
|- | |- | ||
| | |need_photo | ||
|true или false | |true или false | ||
| | |Нужна ли фотография автомобиля | ||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Автомобиль не найден | |||
|} | |} | ||
Возвращаемые данные в случае успешного выполнения запроса: | Возвращаемые данные в случае успешного выполнения запроса: | ||
{| | {| | ||
! | !Параметр | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
| | |car_id | ||
|Целое | |Целое | ||
|ИД автомобиля | |ИД автомобиля | ||
|- | |- | ||
| | |code | ||
|Строка | |Строка | ||
|Позывной автомобиля | |Позывной автомобиля | ||
|- | |- | ||
| | |name | ||
|Строка | |Строка | ||
|Наименование автомобиля | |Наименование автомобиля | ||
|- | |- | ||
| | |gos_number | ||
|Строка | |Строка | ||
| | |Государственный номер автомобиля | ||
|- | |- | ||
| | |color | ||
|Строка | |Строка | ||
|Цвет автомобиля | |Цвет автомобиля | ||
|- | |- | ||
| | |mark | ||
|Строка | |Строка | ||
|Марка автомобиля | |Марка автомобиля | ||
|- | |- | ||
| | |model | ||
|Строка | |Строка | ||
|Модель автомобиля | |Модель автомобиля | ||
|- | |- | ||
| | |short_name | ||
|Строка | |Строка | ||
|Краткое название автомобиля | |Краткое название автомобиля | ||
|- | |- | ||
| | |production_year | ||
|Целое | |Целое | ||
|Год выпуска автомобиля | |Год выпуска автомобиля | ||
|- | |- | ||
| | |is_locked | ||
|true или false | |true или false | ||
|Автомобиль заблокирован | |Автомобиль заблокирован | ||
|- | |- | ||
| | |order_params | ||
|Массив | |Массив | ||
|Массив параметров заказа автомобиля | |Массив параметров заказа автомобиля | ||
|- | |- | ||
|• | |• | ||
|Целое | |Целое | ||
|ИД параметра заказа | |ИД параметра заказа | ||
|- | |||
|car_photo | |||
|Base64 | |||
|Фото автомобиля (только если need_photo = true) | |||
|} | |} | ||
| Строка 1932: | Строка 2064: | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/ | GET https://ip:port/common_api/1.0/get_car_info?car_id=1&need_photo=false HTTP/1.1 | ||
Signature: <...> | Signature: <...> | ||
Ответ: | Ответ: | ||
| Строка 1943: | Строка 2073: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
"car_id":1, | |||
"code":"123", | |||
"name":"CAR_NAME", | |||
"gos_number":"a123bc", | |||
"color":"COLOR", | |||
"mark":"MARK", | |||
"model":"MODEL", | |||
"short_name":"SHORT_NAME", | |||
"production_year":2000, | |||
"is_locked":false, | |||
"order_params":[1,2] | |||
} | } | ||
} | } | ||
</pre> | |||
=== Запрос | === Запрос списка автомобилей === | ||
Метод: GET | Метод: GET | ||
Название запроса: | Название запроса: get_cars_info | ||
Параметры: | Параметры: | ||
| Строка 1989: | Строка 2103: | ||
!colspan="3"|Необязательные параметры | !colspan="3"|Необязательные параметры | ||
|- | |- | ||
| | |locked_cars | ||
| | |true или false | ||
| | |Включить в ответ заблокированных автомобилей (по умолчанию false) | ||
|} | |} | ||
Специальные возвращаемые коды: | |||
Специальные возвращаемые коды: нет | |||
Возвращаемые данные в случае успешного выполнения запроса: | Возвращаемые данные в случае успешного выполнения запроса: | ||
Параметры: | |||
{| | {| | ||
! | !Параметры | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
| | |cars_info | ||
|Массив | |Массив | ||
| | |Массив автомобилей | ||
|- | |- | ||
|• | |• car_id | ||
|Целое | |Целое | ||
|ИД | |ИД автомобиля | ||
|- | |- | ||
|• | |• code | ||
|Строка | |Строка | ||
|Позывной | |Позывной автомобиля | ||
|- | |- | ||
|• | |• name | ||
| | |Строка | ||
| | |Наименование автомобиля | ||
|- | |- | ||
|• | |• gos_number | ||
| | |Строка | ||
| | |Гос. номер автомобиля | ||
|- | |- | ||
|• | |• color | ||
| | |Строка | ||
| | |Цвет автомобиля | ||
|- | |- | ||
|• | |• mark | ||
|Строка | |Строка | ||
| | |Марка автомобиля | ||
|- | |||
|• model | |||
|Строка | |||
|Модель автомобиля | |||
|- | |||
|• short_name | |||
|Строка | |||
|Краткое название автомобиля | |||
|- | |||
|• production_year | |||
|Целое | |||
|Год выпуска автомобиля | |||
|- | |||
|• is_locked | |||
|true или false | |||
|Автомобиль заблокирован | |||
|- | |||
|• order_params | |||
|Массив | |||
|Массив параметров заказа автомобиля | |||
|- | |||
|• | |||
|Целое | |||
|ИД параметра заказа | |||
|} | |} | ||
| Строка 2048: | Строка 2175: | ||
<pre> | <pre> | ||
Запрос: | |||
GET https://ip:port/common_api/1.0/get_cars_info HTTP/1.1 | |||
GET https://ip:port/common_api/1.0/ | |||
Signature: <...> | Signature: <...> | ||
locked_cars=true | |||
Ответ: | Ответ: | ||
| Строка 2059: | Строка 2188: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
"cars_info":[ | |||
{ | |||
"car_id":1, | |||
"code":"111", | |||
"name":"CAR_1", | |||
"gos_number":"111111", | |||
"color":"COLOR_1", | |||
"mark":"MARK_1", | |||
"model":"MODEL_1", | |||
"short_name":"SHORT_NAME_1", | |||
"production_year":2000, | |||
"is_locked":false, | |||
"order_params":[1,2] | |||
}, | |||
{ | |||
"car_id":2, | |||
} | "code":"222", | ||
"name":"CAR_2", | |||
"gos_number":"222222", | |||
"color":"COLOR_2", | |||
"mark":"MARK_2", | |||
"model":"MODEL_2", | |||
"short_name":"SHORT_NAME_2", | |||
"production_year":2000, | |||
"is_locked":false, | |||
"order_params":[3,4] | |||
} | |||
] | |||
} | } | ||
} | } | ||
</pre> | |||
=== Запрос координат экипажей === | |||
Метод: GET | |||
Название запроса: get_crews_coords | |||
Параметры: | |||
{| | |||
!Параметры | |||
!Тип | |||
!Описание | |||
|- | |||
Параметры: | |||
{| | |||
!Параметры | |||
!Тип | |||
!Описание | |||
|- | |||
!colspan="3"|Необязательные параметры | !colspan="3"|Необязательные параметры | ||
|- | |- | ||
| | |crew_id | ||
|Целое | |Целое | ||
| | |ИД экипажа, по которому нужно вернуть координаты. Если не задано, то будут возвращены координаты всех экипажей на линии. | ||
|} | |} | ||
| Строка 2152: | Строка 2245: | ||
|- | |- | ||
|100 | |100 | ||
| | |Координаты не найдены | ||
|} | |} | ||
| Строка 2161: | Строка 2254: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |crews_coords | ||
|Массив | |Массив | ||
|Список | |Список координат экипажей | ||
|- | |||
|• crew_id | |||
|Целое | |||
|ИД экипажа | |||
|- | |- | ||
|• | |• crew_code | ||
|Строка | |Строка | ||
| | |Позывной экипажа | ||
|- | |||
|• coords_time | |||
|ГГГГММДДччммсс | |||
|Время получения координат | |||
|- | |||
|• lat | |||
|Дробное | |||
|Долгота | |||
|- | |- | ||
|• | |• lon | ||
| | |Дробное | ||
| | |Широта | ||
|- | |- | ||
|• | |• state_kind | ||
|Строка | |Строка | ||
|Тип | |Тип состояния экипажа. Может принимать значения: | ||
• " | • "not_available" — экипаж не на линии | ||
• "waiting" — экипаж свободен, ожидает заказы | |||
• " | • "on_order" — экипаж на заказе | ||
• " | • "on_break" — экипаж на перерыве | ||
|} | |} | ||
| Строка 2192: | Строка 2295: | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/get_crews_coords HTTP/1.1 | |||
GET https://ip:port/common_api/1.0/ | |||
Signature: <...> | Signature: <...> | ||
| Строка 2203: | Строка 2304: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
" | "crews_coords":[ | ||
{ | { | ||
" | "crew_id":1, | ||
" | "crew_code":"111", | ||
" | "coords_time":"20120101101010", | ||
" | "lat":11.111111, | ||
"lon":22.222222, | |||
"state_kind":"waiting" | |||
" | }, | ||
" | { | ||
" | "crew_id":2, | ||
" | "crew_code":"222", | ||
"coords_time":"20120101101010", | |||
"lat":33.333333, | |||
" | "lon":44.444444, | ||
" | "state_kind":"on_order" | ||
" | |||
" | |||
} | } | ||
] | ] | ||
| Строка 2228: | Строка 2327: | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/ | GET https://ip:port/common_api/1.0/get_crews_coords?crew_id=1 HTTP/1.1 | ||
Signature: <...> | Signature: <...> | ||
| Строка 2238: | Строка 2336: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
" | "crews_coords":[ | ||
{ | { | ||
" | "crew_id":1, | ||
"crew_code":"111", | |||
"coords_time":"20120101101010", | |||
"lat":11.111111, | |||
"lon":22.222222, | |||
"state_kind":"waiting" | |||
} | |||
" | ] | ||
" | |||
" | |||
" | |||
" | |||
} | |||
] | |||
} | } | ||
} | } | ||
</pre> | </pre> | ||
=== | === Запрос адресов, содержащих нужную строку === | ||
Метод: GET | Метод: GET | ||
Название запроса: | Название запроса: get_addresses_like | ||
Параметры: | Параметры: | ||
| Строка 2274: | Строка 2362: | ||
!Описание | !Описание | ||
|- | |- | ||
!colspan="3"|Обязательные параметры | ! colspan="3"|Обязательные параметры | ||
|- | |||
|get_streets | |||
|true или false | |||
|Искать улицы | |||
|- | |||
|get_points | |||
|true или false | |||
|Искать пункты | |||
|- | |- | ||
| | |get_houses | ||
| | |true или false | ||
| | |Искать дома. Не может быть равно true, если get_streets = true или get_points = true. | ||
|- | |- | ||
| | |street | ||
|Строка | |Строка | ||
| | |Часть названия улицы или пункта, если идет поиск улиц или пунктов, или полное название улицы, если идет поиск домов | ||
|- | |- | ||
!colspan="3"|Необязательные параметры | !colspan="3"|Необязательные параметры | ||
|- | |- | ||
| | |house | ||
| | |Строка | ||
| | |Часть номера дома. Нужно только если get_houses = true. | ||
|- | |- | ||
| | |max_addresses_count | ||
| | |Целое | ||
| | |Максимальное количество адресов в ответе | ||
|} | |||
|} | |||
Специальные возвращаемые коды: | Специальные возвращаемые коды: | ||
{| | {| | ||
| Строка 2315: | Строка 2397: | ||
|- | |- | ||
|100 | |100 | ||
| | |Подходящие адреса не найдены | ||
|} | |} | ||
| Строка 2330: | Строка 2406: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |addresses | ||
| | |Массив | ||
| | |Список подходящих адресов | ||
|- | |- | ||
| | |• street | ||
| | |Строка | ||
| | |Название улицы или пункта | ||
|- | |- | ||
| | |• house | ||
| | |Строка | ||
| | |Номер дома | ||
|- | |- | ||
| | |• kind | ||
| | |Строка | ||
| | |Тип адреса. Может принимать значения: | ||
• "street" — улица | |||
• "house" — дом | |||
• "point" — пункт | |||
|- | |- | ||
| | |• comment | ||
| | |Строка | ||
| | |Комментарий | ||
|- | |- | ||
| | |• coords | ||
| | |Массив | ||
| | |Координаты дома или пункта | ||
|- | |- | ||
| | |• ◊ lat | ||
|Дробное | |Дробное | ||
| | |Широта | ||
|- | |- | ||
| | |• ◊ lon | ||
|Дробное | |Дробное | ||
| | |Долгота | ||
|} | |} | ||
| Строка 2370: | Строка 2447: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/ | GET https://ip:port/common_api/1.0/get_addresses_like?get_streets=true&get_points=true& | ||
get_houses=false&street=STREE HTTP/1.1 | |||
Signature: <...> | Signature: <...> | ||
| Строка 2382: | Строка 2460: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
" | "addresses":[ | ||
{ | |||
"street":"STREET1", | |||
"house":"", | |||
"kind":"street", | |||
"comment":"" | |||
"coords":{ | |||
"lat":0, | |||
"lon":0 | |||
} | } | ||
} | }, | ||
{ | |||
"street":"STREET2", | |||
"house":"", | |||
"kind":"street", | |||
"comment":"" | |||
"coords":{ | |||
"lat":0, | |||
"lon":0 | |||
} | |||
}, | |||
{ | |||
"street":"POINT_STREET1", | |||
"house":"", | |||
"kind":"point", | |||
"comment":"Point at street STREET1" | |||
"coords":{ | |||
"lat":53.224656, | |||
"lon":56.842521 | |||
} | |||
} | |||
] | |||
} | |||
} | |||
Запрос: | |||
=== | GET https://ip:port/common_api/1.0/get_addresses_like?get_streets=false&get_points=false& | ||
get_houses=true&street=STREET1&house=1&max_addresses_count=10 HTTP/1.1 | |||
Signature: <...> | |||
Ответ: | |||
{ | |||
"code":0, | |||
"descr":"OK", | |||
"data":{ | |||
"addresses":[ | |||
{ | |||
"street":"STREET1", | |||
"house":"1", | |||
"kind":"house", | |||
"comment":"" | |||
}, | |||
{ | |||
"street":"STREET1", | |||
"house":"10", | |||
"kind":"house", | |||
"comment":"" | |||
}, | |||
{ | |||
"street":"STREET1", | |||
"house":"11", | |||
"kind":"house", | |||
"comment":"" | |||
} | |||
] | |||
} | |||
} | |||
</pre> | |||
=== Анализ маршрута === | |||
Метод: GET | Метод: GET | ||
Название запроса: | Название запроса: analyze_route | ||
Параметры: | Параметры: | ||
{| | {| | ||
! | !Параметры | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
| Строка 2410: | Строка 2545: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |source | ||
| | |Строка | ||
| | |Адрес подачи | ||
|- | |- | ||
| | |dest | ||
|Строка | |Строка | ||
|Адрес подачи | |Адрес назначения | ||
|- | |||
!colspan="3"|Необязательные параметры | |||
|- | |||
|source_lon | |||
|Дробное | |||
|Долгота адреса подачи | |||
|- | |||
|source_lat | |||
|Дробное | |||
|Широта адреса подачи | |||
|- | |- | ||
| | |dest_lon | ||
|Дробное | |Дробное | ||
| | |Долгота адреса назначения | ||
|- | |- | ||
| | |dest_lat | ||
|Дробное | |Дробное | ||
| | |Широта адреса назначения | ||
|} | |} | ||
Параметр source не является обязательным к заполнению, если заданы source_lon и source_lat. | |||
Параметр dest не является обязательным к заполнению, если заданы dest_lon и dest_lat. | |||
Специальные возвращаемые коды: | Специальные возвращаемые коды: | ||
{| | {| | ||
!Код | !Код | ||
| Строка 2434: | Строка 2584: | ||
|- | |- | ||
|100 | |100 | ||
|Адрес подачи не распознан | |||
|- | |||
|101 | |||
|Адрес назначения не распознан | |||
|- | |||
|102 | |||
|Маршрут не распознан | |Маршрут не распознан | ||
|} | |} | ||
Возвращаемые данные в случае успешного выполнения запроса: | Возвращаемые данные в случае успешного выполнения запроса: | ||
{| | {| | ||
! | !Параметр | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
| | |source_lat | ||
| | |Дробное | ||
| | |Широта адреса подачи | ||
|- | |- | ||
| | |source_lon | ||
|Дробное | |Дробное | ||
|Широта адреса | |Долгота адреса подачи | ||
|- | |||
|source_zone_id | |||
|Целое | |||
|ИД района подачи | |||
|- | |||
|dest_lat | |||
|Дробное | |||
|Широта адреса назначения | |||
|- | |- | ||
| | |dest_lon | ||
|Дробное | |Дробное | ||
|Долгота адреса | |Долгота адреса назначения | ||
|- | |- | ||
| | |dest_zone_id | ||
|Целое | |Целое | ||
| | |ИД района назначения | ||
|- | |- | ||
|city_dist | |||
|city_dist | |||
|Дробное | |Дробное | ||
|Километраж по городу | |Километраж по городу | ||
|- | |- | ||
|country_dist | |country_dist | ||
|Дробное | |Дробное | ||
|Километраж за городом | |Километраж за городом | ||
|- | |- | ||
|source_country_dist | |source_country_dist | ||
|Дробное | |Дробное | ||
|Километраж до адреса подачи, если адрес подачи за городом | |Километраж до адреса подачи, если адрес подачи за городом | ||
|} | |} | ||
| Строка 2480: | Строка 2639: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/analyze_route?source=STREET1,1&dest=STREET2,2&source_lon= | |||
53.153044&source_lat=56.893301&dest_lon=53.218103&dest_lat=56.869759 HTTP/1.1 | |||
Signature: <...> | Signature: <...> | ||
Ответ: | Ответ: | ||
| Строка 2502: | Строка 2651: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
" | "source_lat":11.111111, | ||
"source_lon":22.222222, | |||
"source_zone_id":1, | |||
"dest_lat":33.333333, | |||
"dest_lon":44.444444, | |||
"dest_zone_id":2, | |||
"city_dist":1.1, | |||
"country_dist":2.2, | |||
"source_country_dist":3.3 | |||
"city_dist": | |||
"country_dist":2. | |||
"source_country_dist":3. | |||
} | } | ||
} | } | ||
</pre> | </pre> | ||
=== | === Анализ маршрута 2 === | ||
Метод: | Метод: POST | ||
Название запроса: | Название запроса: analyze_route2 | ||
Параметры: | Параметры: | ||
{| | {| | ||
! | !Параметр | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
| Строка 2539: | Строка 2679: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |get_full_route_coords | ||
| | |true или false | ||
| | |Возвращать координаты точек полного маршрута. | ||
|- | |||
|addresses | |||
|Массив | |||
|Массив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки. | |||
|- | |||
|• address | |||
|Строка | |||
|Адрес подачи | |||
|- | |||
|• lat | |||
|Дробное | |||
|Широта адреса | |||
|- | |||
|• lon | |||
|Дробное | |||
|Долгота адреса | |||
|} | |} | ||
Специальные возвращаемые коды: | Специальные возвращаемые коды: | ||
{| | {| | ||
!Код | !Код | ||
| Строка 2550: | Строка 2707: | ||
|- | |- | ||
|100 | |100 | ||
| | |Маршрут не распознан | ||
|} | |} | ||
Возвращаемые данные в случае успешного выполнения запроса: | Возвращаемые данные в случае успешного выполнения запроса: | ||
{| | {| | ||
! | !Параметры | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
| | |Addresses | ||
| | |Массив | ||
| | |Массив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки. | ||
|- | |- | ||
| | |• lat | ||
| | |Дробное | ||
| | |Широта адреса | ||
|- | |- | ||
| | |• lon | ||
| | |Дробное | ||
| | |Долгота адреса | ||
|- | |- | ||
| | |• zone_id | ||
|Целое | |Целое | ||
| | |Район адреса | ||
|- | |- | ||
| | |• parking_id | ||
|Целое | |Целое | ||
| | |Стоянка адреса | ||
|- | |- | ||
| | |city_dist | ||
| | |Дробное | ||
| | |Километраж по городу | ||
|- | |- | ||
| | |country_dist | ||
| | |Дробное | ||
| | |Километраж за городом | ||
|- | |- | ||
| | |source_country_dist | ||
| | |Дробное | ||
| | |Километраж до адреса подачи, если адрес подачи за городом. | ||
|- | |- | ||
| | |full_route_coords | ||
| | |Массив | ||
| | |Массив координат точек маршрута. | ||
|- | |- | ||
| | |• lat | ||
| | |Дробное | ||
| | |Широта точки | ||
|- | |- | ||
| | |• lon | ||
| | |Дробное | ||
| | |Долгота точки | ||
| | |} | ||
Пример: | |||
<pre> | |||
Запрос: | |||
POST /common_api/1.0/analyze_route2 HTTP/1.1 | |||
Host: ip:port | |||
Keep-Alive: 300 | |||
Connection: keep-alive | |||
Content-Type: application/json | |||
Content-Length: 243 | |||
Signature: <...> | |||
{"get_full_route_coords":true,"addresses":[{"address":"STREET1, 1","lat":11.111111, | |||
"lon":22.222222},{"address":"STREET2, 2","lat":33.333333,"lon":44.444444}, | |||
{"address":"STREET3, 3","lat":55.555555,"lon":55.555555},{"address":"STREET4, | |||
4","lat":77.777777,"lon":88.888888}]} | |||
Ответ: | Ответ: | ||
{ | { | ||
| Строка 2679: | Строка 2788: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
"addresses":[ | |||
{ | |||
"lat":11.111111, | |||
"lon":22.222222, | |||
"zone_id":1, | |||
"parking_id":1 | |||
}, | |||
{ | |||
"lat":33.333333, | |||
"lon":44.444444, | |||
"zone_id":2, | |||
"parking_id":2 | |||
} | |||
], | |||
"city_dist":0, | |||
"country_dist":2.647, | |||
"source_country_dist":3.412, | |||
"full_route_coords":[ | |||
{ | |||
"lat":55.833603, | |||
"lon":37.515537 | |||
}, | |||
{ | |||
"lat":55.832855, | |||
"lon":37.516315 | |||
}, | |||
{ | |||
"lat":55.833405, | |||
"lon":37.51799 | |||
}, | |||
... | |||
] | |||
} | } | ||
} | } | ||
</pre> | </pre> | ||
=== | === Запрос информации о состоянии заказа === | ||
Метод: | Метод: GET | ||
Название запроса: | Название запроса: get_order_state | ||
Параметры: | Параметры: | ||
| Строка 2723: | Строка 2839: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |order_id | ||
| | |Целое | ||
| | |ИД заказа | ||
|} | |} | ||
Специальные возвращаемые коды: | Специальные возвращаемые коды: | ||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Заказ не найден | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: | Возвращаемые данные в случае успешного выполнения запроса: | ||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|order_id | |||
|Целое | |||
|ИД заказа | |||
|- | |||
|state_id | |||
|Целое | |||
|ИД состояния заказа | |||
|- | |||
|state_kind | |||
|Строка | |||
|Тип состояния заказа. Может принимать значения: | |||
• "new_order" — новый заказ | |||
• "driver_assigned" — водитель назначен | |||
• "car_at_place" — машина подъехала на место | |||
• "client_inside" — клиент в машине | |||
• "finished" — заказ успешно завершен | |||
• "aborted" — заказ прекращен | |||
|- | |||
|crew_id | |||
|Целое | |||
|ИД экипажа | |||
|- | |||
|prior_crew_id | |||
|Целое | |||
|ИД предварительного экипажа | |||
|- | |||
|driver_id | |||
|Целое | |||
|ИД водителя | |||
|- | |- | ||
|car_id | |||
|Целое | |||
|ИД автомобиля | |||
|- | |- | ||
| | |start_time | ||
| | |ГГГГММДДччммсс | ||
| | |Время создания заказа | ||
|- | |- | ||
| | |source_time | ||
| | |ГГГГММДДччммсс | ||
| | |Время подачи | ||
|- | |- | ||
| | |finish_time | ||
| | |ГГГГММДДччммсс | ||
| | |Время завершения заказа | ||
|- | |||
|source | |||
|Строка | |||
|Адрес подачи | |||
|- | |||
|destination | |||
|Строка | |||
|Адрес назначения | |||
|- | |||
|passenger | |||
|Строка | |||
|Пассажир | |||
|- | |||
|phone | |||
|Строка | |||
|Номер телефона | |||
|- | |- | ||
|client_id | |client_id | ||
|Целое | |Целое | ||
|ИД клиента | |ИД клиента | ||
| | |- | ||
|order_crew_group_id | |||
|Целое | |||
|ИД группы экипажей, которая указана в заказе | |||
|- | |||
|tariff_id | |||
|Целое | |||
|ИД тарифа | |||
|- | |||
|car_mark | |||
|Строка | |||
|Марка автомобиля | |||
|- | |||
|car_model | |||
|Строка | |||
|Модель автомобиля | |||
|- | |||
|car_color | |||
|Строка | |||
|Цвет автомобиля | |||
|- | |||
|car_number | |||
|Строка | |||
|Государственный номер автомобиля | |||
|- | |||
|confirmed | |||
|Строка | |||
|Состояние подтвержденности заказа водителем или оператором. | |||
Может принимать значения: | |||
• "not_confirmed" — не подтверждено | |||
• "confirmed_by_driver" — заказ принят водителем | |||
• "confirmed_by_oper" — заказ подтвержден оператором | |||
|- | |- | ||
|crew_coords | |||
|Массив | |||
|Координаты экипажа | |||
|- | |- | ||
| | |• lat | ||
| | |Дробное | ||
| | |Широта | ||
|- | |- | ||
| | |• lon | ||
| | |Дробное | ||
| | |Долгота | ||
|- | |- | ||
| | |order_params | ||
| | |Массив | ||
| | |Массив параметров заказа экипажа | ||
|- | |- | ||
| | |• | ||
| | |Целое | ||
| | |ИД параметра заказа | ||
|- | |- | ||
| | |creation_way | ||
|Строка | |Строка | ||
| | |Способ создания заказа. Может принимать значения: | ||
• " | • "operator" — заказ создан оператором | ||
• "sms" — заказ создан через смс | |||
• "market" — заказ из биржи | |||
• "common_api" — заказ создан через api | |||
• "t_api" — заказ создан через api | |||
• "taxophone" — заказ создан из таксофона | |||
• "driver" — заказ создан водителем | |||
• "daily_order" — ежедневный заказ | |||
• "unknown" — неизвестный | |||
|} | |||
Пример: | |||
<pre> | |||
Запрос: | |||
GET https://ip:port/common_api/1.0/get_order_state?order_id=1 HTTP/1.1 | |||
Signature: <...> | Signature: <...> | ||
Ответ: | Ответ: | ||
{ | { | ||
"code":0, | "code":0, | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
"client_id": | "order_id":1, | ||
"state_id":12, | |||
"state_kind":"car_at_place", | |||
"crew_id":1, | |||
"prior_crew_id":0, | |||
"driver_id":2, | |||
"car_id":3, | |||
"start_time":"20130117125641", | |||
"source_time":"20130117132617", | |||
"finish_time":"20130117130343", | |||
"source":"1", | |||
"destination":"2", | |||
"passenger":"Слепаков", | |||
"phone":"8800", | |||
"client_id":1, | |||
"order_crew_group_id":1, | |||
"tariff_id":1, | |||
"car_mark":"Ауди", | |||
"car_model":"Q7", | |||
"car_color":"черный", | |||
"car_number":"А777АА", | |||
"confirmed":"confirmed_by_oper", | |||
"crew_coords": { | |||
"lat": 56.833981, | |||
"lon": 53.220249 | |||
}, | |||
"order_params":[ | |||
1, | |||
2, | |||
5 | |||
], | |||
"creation_way":"operator" | |||
} | } | ||
} | } | ||
</pre> | </pre> | ||
=== | === Создание задачи СМС серверу === | ||
Метод: | Метод: POST | ||
Название запроса: | Название запроса: send_sms | ||
Параметры: | Параметры: | ||
| Строка 2935: | Строка 3072: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |phone | ||
| | |Строка, <= 16 символов | ||
| | |Номер телефона | ||
|- | |||
|message | |||
|Строка | |||
|Текст СМС | |||
|} | |} | ||
Специальные возвращаемые коды: | Специальные возвращаемые коды: нет | ||
Возвращаемые данные в случае успешного выполнения запроса: нет | |||
Пример: | |||
<pre> | |||
Запрос: | |||
POST /common_api/1.0/send_sms HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: 33 | |||
Signature: <...> | |||
message=SMSText&phone=89050057216 | |||
Ответ: | Ответ: | ||
| Строка 3022: | Строка 3103: | ||
"code":0, | "code":0, | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{} | ||
} | |||
</pre> | |||
=== Проверка авторизации === | |||
} | |||
</pre> | |||
Метод: GET | |||
Название запроса: check_authorization | |||
Название запроса: | |||
Параметры: | Параметры: | ||
| Строка 3057: | Строка 3122: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
|login | |||
|login | |||
|Строка, <= 60 символов | |Строка, <= 60 символов | ||
|Логин | |Логин | ||
| Строка 3074: | Строка 3129: | ||
|Строка, <= 60 символов | |Строка, <= 60 символов | ||
|Пароль | |Пароль | ||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |- | ||
| | |100 | ||
| | |Не найден клиент с логином LOGIN и/или неверный пароль | ||
| | |} | ||
| | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |- | ||
| | |client_id | ||
|Целое | |Целое | ||
|ИД | |ИД клиента | ||
|} | |} | ||
Пример: | Пример: | ||
| Строка 3124: | Строка 3156: | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/check_authorization?login=LOGIN&password=PASSWORD HTTP/1.1 | |||
Signature: <...> | Signature: <...> | ||
Ответ: | Ответ: | ||
{ | { | ||
"code":0, | |||
"descr":"OK", | "descr":"OK", | ||
"data":{} | "data":{ | ||
"client_id":131 | |||
} | |||
} | } | ||
</pre> | </pre> | ||
=== | === Регистрация клиента === | ||
Метод: | Метод: POST | ||
Название запроса: | Название запроса: register_client | ||
Параметры: | Параметры: | ||
| Строка 3156: | Строка 3186: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |name | ||
| | |Строка, <= 60 символов | ||
| | |ФИО | ||
|- | |||
|login | |||
|Строка, <= 60 символов | |||
|Логин | |||
|- | |||
|password | |||
|Строка, <= 60 символов | |||
|Пароль | |||
|- | |||
|phones | |||
|Строка | |||
|Номера телефонов (через запятую) | |||
|- | |||
!colspan="4"|Необязательные параметры | |||
|- | |||
|address | |||
|Строка | |||
|Домашний адрес | |||
|- | |||
|birthday | |||
|ДД.ММ.ГГГГ | |||
|Дата рождения | |||
|- | |- | ||
| | |gender | ||
|Строка | |Строка | ||
| | |Пол. Может принимать значения: | ||
• "male" - мужской | |||
• "female" - женский | |||
|} | |} | ||
| Строка 3171: | Строка 3226: | ||
|- | |- | ||
|100 | |100 | ||
| | |Клиент с ИД=ID имеет такой же номер телефона=PHONE | ||
|- | |||
|101 | |||
|Клиент с логином=LOGIN уже существует | |||
|} | |} | ||
| Строка 3180: | Строка 3238: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |client_id | ||
|Целое | |Целое | ||
|ИД | |ИД созданного клиента | ||
|} | |||
Пример: | |||
<pre> | |||
Запрос: | |||
POST https://ip:port/common_api/1.0/create_order HTTP/1.1 | |||
Signature: <...> | |||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: 104 | |||
name=NAME&phones=88,99&login=LOGIN&password=PASSWORD&birthday=19930218115517&gender=male&address=ADDRESS | |||
Ответ: | |||
{ | |||
"code":0, | |||
"descr":"OK", | |||
"data":{ | |||
"client_id":140 | |||
} | |||
} | |||
</pre> | |||
=== Запрос информации по клиенту === | |||
Метод: GET | |||
Название запроса: get_client_info | |||
Параметры: | |||
{| | |||
!Параметры | |||
!Тип | |||
!Описание | |||
|- | |||
!colspan="3"|Обязательные параметры | |||
|- | |- | ||
| | |client_id | ||
|Целое | |Целое | ||
|ИД | |ИД клиента | ||
|- | |} | ||
| | |||
| | Специальные возвращаемые коды: | ||
| | {| | ||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Не найден клиент ИД=CLIENT_ID | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |- | ||
| | |client_id | ||
| | |Целое | ||
| | |ИД клиента | ||
|- | |- | ||
| | |name | ||
|Строка | |Строка | ||
| | |ФИО | ||
|- | |- | ||
| | |number | ||
|Строка | |Строка | ||
| | |Номер договора | ||
|- | |- | ||
| | |address | ||
|Строка | |Строка | ||
| | |Домашний адрес | ||
|- | |- | ||
| | |gender | ||
| | |Строка | ||
| | |Пол. Может принимать значения: | ||
• "male" - мужской | |||
• "female" - женский | |||
|- | |- | ||
| | |birthday | ||
| | |ДД.ММ.ГГГГ | ||
| | |Дата рождения | ||
|- | |||
|phones | |||
|Строка | |||
|Номера телефонов (через запятую) | |||
|- | |- | ||
| | |balance | ||
| | |Дробное | ||
| | |Баланс | ||
|- | |- | ||
| | |bonus_balance | ||
| | |Дробное | ||
| | |Бонусный баланс | ||
|- | |- | ||
| | |login | ||
|Строка | |Строка | ||
| | |Логин | ||
|- | |- | ||
| | |password | ||
| | |Строка | ||
| | |Пароль | ||
|- | |- | ||
| | |client_group_id | ||
|Целое | |Целое | ||
|ИД группы клиента | |||
|ИД группы | |||
|} | |} | ||
| Строка 3245: | Строка 3357: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/ | |||
GET https://ip:port/common_api/1.0/get_client_info?client_id=140 HTTP/1.1 | |||
Signature: <...> | Signature: <...> | ||
Ответ: | Ответ: | ||
{ | { | ||
"code":0, | "code":0, | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
" | "client_id":140, | ||
"name":"Васильев Артём", | |||
"number":"000140", | |||
"address":"Бутово,45", | |||
"gender":"male", | |||
"birthday":"18.02.1993", | |||
"phones":"[ | |||
"88", | |||
"99" | |||
]", | |||
"balance":2985, | |||
"bonus_balance":85, | |||
"login":"artem", | |||
"password":"vasilev", | |||
"client_group_id":1 | |||
} | } | ||
} | } | ||
</pre> | </pre> | ||
=== | === Изменение информации по клиенту === | ||
Метод: | Метод: POST | ||
Название запроса: | Название запроса: update_client_info | ||
Параметры: | Параметры: | ||
| Строка 3309: | Строка 3404: | ||
|client_id | |client_id | ||
|Целое | |Целое | ||
|ИД клиента | |ИД клиента | ||
|- | |- | ||
| | !colspan="3"|Необязательные параметры | ||
|Строка, <= | |- | ||
| | |name | ||
|Строка, <= 60 символов | |||
|ФИО | |||
|- | |||
|login | |||
|Строка, <= 60 символов | |||
|Логин | |||
|- | |||
|password | |||
|Строка, <= 60 символов | |||
|Пароль | |||
|- | |||
|phones | |||
|Строка | |||
|Номера телефонов (через запятую) | |||
|- | |||
|address | |||
|Строка | |||
|Домашний адрес | |||
|- | |||
|birthday | |||
|ДД.ММ.ГГГГ | |||
|Дата рождения | |||
|- | |- | ||
| | |gender | ||
| | |Строка | ||
| | |Пол. Может принимать значения: | ||
• "male" - мужской | |||
• "female" - женский | |||
|- | |- | ||
| | |client_group_id | ||
| | |Целое | ||
| | |ИД группы клиента | ||
|} | |} | ||
| Строка 3330: | Строка 3450: | ||
|- | |- | ||
|100 | |100 | ||
| | |Клиент с номером телефона=PHONE уже существует | ||
|} | |- | ||
|101 | |||
Возвращаемые данные в случае успешного выполнения запроса: | |Клиент с ИД=ID имеет такой же номер телефона=PHONE | ||
|- | |||
|102 | |||
|Клиент с логином=LOGIN уже существует | |||
|- | |||
|103 | |||
|Группа клиента с ИД=CLIENT_GROUP_ID не найдена | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: нет | |||
Пример: | |||
<pre> | |||
Запрос: | |||
POST https://ip:port/common_api/1.0/create_order HTTP/1.1 | |||
Signature: <...> | |||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: 118 | |||
client_id=140&name=NAME&phones=88,99&login=LOGIN&password=PASSWORD&birthday=20140901000000&gender=m | |||
ale&address=ADDRESS&client_group_id=3 | |||
Ответ: | |||
{ | |||
"code":0, | |||
"descr":"OK", | |||
"data":{} | |||
} | |||
</pre> | |||
=== Запрос текущих заказов === | |||
Метод: GET | |||
Название запроса: get_current_orders | |||
Параметры: | |||
{| | {| | ||
! | !Параметры | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
| | !colspan="3"|Обязательные параметры | ||
|- | |||
|client_id | |||
|Целое | |Целое | ||
|ИД | |ИД клиента (может отсутствовать, если phone заполнен) | ||
|- | |- | ||
|state_id | |phone | ||
|Строка, <= 16 символов | |||
|Телефон клиента (может отсутствовать, если client_id заполнен) | |||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Не найден клиент ИД=CLIENT_ID | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|id | |||
|Целое | |||
|ИД заказа | |||
|- | |||
|state_id | |||
|Целое | |Целое | ||
|ИД состояния заказа | |ИД состояния заказа | ||
| Строка 3349: | Строка 3535: | ||
|start_time | |start_time | ||
|ГГГГММДДччммсс | |ГГГГММДДччммсс | ||
| | |Дата создания заказа | ||
|- | |- | ||
|source_time | |source_time | ||
|ГГГГММДДччммсс | |ГГГГММДДччммсс | ||
|Время подачи | |Время подачи | ||
|- | |- | ||
|source | |source | ||
| Строка 3371: | Строка 3553: | ||
|Пассажир | |Пассажир | ||
|- | |- | ||
| | |crew_id | ||
| | |Целое | ||
| | |ИД экипажа | ||
|- | |- | ||
| | |prior_crew_id | ||
| | |Целое | ||
| | |ИД предварительного экипажа | ||
|- | |- | ||
| | |driver_id | ||
| | |Целое | ||
| | |ИД водителя | ||
|- | |- | ||
|car_id | |||
|car_id | |||
|Целое | |Целое | ||
|ИД автомобиля | |ИД автомобиля | ||
| Строка 3426: | Строка 3584: | ||
|Целое | |Целое | ||
|ИД группы экипажей, которая указана в заказе | |ИД группы экипажей, которая указана в заказе | ||
|- | |||
|creation_way | |||
|Строка | |||
|Способ создания заказа. Может принимать значения: | |||
• "operator" — заказ создан оператором | |||
• "sms" — заказ создан через смс | |||
• "market" — заказ из биржи | |||
• "common_api" — заказ создан через api | |||
• "t_api" — заказ создан через api | |||
• "taxophone" — заказ создан из таксофона | |||
• "driver" — заказ создан водителем | |||
• "daily_order" — ежедневный заказ | |||
• "unknown" — неизвестный | |||
|} | |} | ||
| Строка 3432: | Строка 3612: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/ | GET https://ip:port/common_api/1.0/get_current_orders?client_id=140&phone=18 HTTP/1.1 | ||
Signature: <...> | Signature: <...> | ||
Ответ: | Ответ: | ||
| Строка 3441: | Строка 3621: | ||
"orders":[ | "orders":[ | ||
{ | { | ||
"id": | "id":20648, | ||
"state_id": | "state_id":44, | ||
"start_time":"20130204181111", | |||
"start_time":" | "source_time":"20130204181111", | ||
" | "source":"1-й пр-т \/Москва\/,", | ||
"source":" | "destination":"12-й мкр,", | ||
"destination":" | "passenger":"маша", | ||
"passenger":" | "crew_id":0, | ||
"crew_id": | |||
"prior_crew_id":0, | "prior_crew_id":0, | ||
"driver_id": | "driver_id":0, | ||
"car_id": | "car_id":0, | ||
"phone":" | "phone":"18", | ||
"client_id":140, | "client_id":140, | ||
"tariff_id":1, | "tariff_id":1, | ||
| Строка 3465: | Строка 3638: | ||
}, | }, | ||
{ | { | ||
"id": | "id":20670, | ||
"state_id": | "state_id":45, | ||
"start_time":"20130207153022", | |||
"start_time":" | "source_time":"20130207153022", | ||
" | "source":"11-й мкр,", | ||
"source":" | "destination":"1-й пр-т \/Москва\/,", | ||
"destination":" | "passenger":"саша", | ||
"passenger":" | "crew_id":1, | ||
"prior_crew_id":1, | |||
"driver_id":1, | |||
"car_id":1, | |||
"phone":"18", | |||
"crew_id": | |||
"prior_crew_id": | |||
"driver_id": | |||
"car_id": | |||
"phone":" | |||
"client_id":140, | "client_id":140, | ||
"tariff_id":2, | "tariff_id":2, | ||
"order_crew_group_id":2 | "order_crew_group_id":2 | ||
"creation_way":"operator" | |||
} | } | ||
] | ] | ||
| Строка 3493: | Строка 3660: | ||
</pre> | </pre> | ||
=== | === Запрос выполненных заказов === | ||
Метод: | Метод: GET | ||
Название запроса: | Название запроса: get_finished_orders | ||
Параметры: | Параметры: | ||
| Строка 3510: | Строка 3677: | ||
|client_id | |client_id | ||
|Целое | |Целое | ||
|ИД клиента | |ИД клиента (может отсутствовать, если phone заполнен) | ||
|- | |- | ||
| | |phone | ||
| | |Строка, <= 16 символов | ||
| | |Телефон клиента (может отсутствовать, если client_id заполнен) | ||
|- | |- | ||
| | |start_time | ||
| | |ГГГГММДДччммсс | ||
| | |Начало периода | ||
|- | |- | ||
| | |finish_time | ||
|ГГГГММДДччммсс | |ГГГГММДДччммсс | ||
| | |Конец периода | ||
|} | |} | ||
| Строка 3556: | Строка 3707: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |id | ||
|Целое | |||
|ИД заказа | |||
|- | |||
|state_id | |||
|Целое | |Целое | ||
|ИД | |ИД состояния заказа | ||
|- | |- | ||
|start_time | |||
|ГГГГММДДччммсс | |||
|Время создания заказа | |||
|- | |- | ||
| | |source_time | ||
|ГГГГММДДччммсс | |ГГГГММДДччммсс | ||
| | |Время подачи | ||
|- | |- | ||
|finish_time | |finish_time | ||
|ГГГГММДДччммсс | |ГГГГММДДччммсс | ||
| | |Время завершения заказа | ||
| | |- | ||
|source | |||
|Строка | |||
|Адрес подачи | |||
|- | |- | ||
| | |source_lat | ||
| | |Дробное | ||
| | |Широта адреса подачи | ||
|- | |- | ||
| | |source_lon | ||
| | |Дробное | ||
| | |Долгота адреса подачи | ||
|- | |- | ||
| | |destination | ||
| | |Строка | ||
| | |Адрес назначения | ||
|- | |- | ||
| | |destination_lat | ||
|Дробное | |Дробное | ||
| | |Широта адреса назначения | ||
|- | |- | ||
| | |destination_lon | ||
| | |Дробное | ||
| | |Долгота адреса назначения | ||
|- | |- | ||
| | |stops | ||
| | |Массив | ||
| | |Массив адресов остановок | ||
|- | |- | ||
| | |• address | ||
| | |Строка | ||
| | |Адрес остановки | ||
|- | |||
|• lat | |||
|Дробное | |||
|Широта адреса остановки | |||
|- | |||
|• lon | |||
|Дробное | |||
|Долгота адреса остановки | |||
|- | |- | ||
| | |passenger | ||
|Строка | |Строка | ||
| | |Пассажир | ||
|- | |||
|sum | |||
|Дробное | |||
|Стоимость заказа без учета скидок (наценок) | |||
|- | |||
|total_sum | |||
|Дробное | |||
|Итоговая стоимость заказа | |||
|- | |||
|cash_sum | |||
|Дробное | |||
|Заплачено наличными | |||
|- | |- | ||
| | |cashless_sum | ||
| | |Дробное | ||
| | |Заплачено с безналичного счета клиента | ||
|- | |- | ||
|bonus_sum | |||
|Дробное | |||
|Заплачено с бонусного счета клиента | |||
|- | |||
|bank_card_sum | |||
|Дробное | |||
|Заплачено банковской картой | |||
|- | |||
|crew_id | |||
|Целое | |||
|ИД экипажа | |||
|- | |||
|prior_crew_id | |||
|Целое | |||
|ИД предварительного экипажа | |||
|- | |- | ||
|driver_id | |driver_id | ||
| Строка 3735: | Строка 3807: | ||
|ИД водителя | |ИД водителя | ||
|- | |- | ||
| | |car_id | ||
| | |Целое | ||
| | |ИД автомобиля | ||
|- | |- | ||
| | |phone | ||
|Строка | |Строка | ||
| | |Номер телефона | ||
|- | |- | ||
|client_id | |||
|Целое | |||
|ИД клиента | |||
|- | |- | ||
| | |tariff_id | ||
| | |Целое | ||
| | |ИД тарифа | ||
|- | |- | ||
| | |order_crew_group_id | ||
| | |Целое | ||
| | |ИД группы экипажей, которая указана в заказе | ||
|- | |- | ||
| | |creation_way | ||
|Строка | |Строка | ||
| | |Способ создания заказа. Может принимать значения: | ||
• "operator" — заказ создан оператором | |||
• "sms" — заказ создан через смс | |||
• "market" — заказ из биржи | |||
• "common_api" — заказ создан через api | |||
• "t_api" — заказ создан через api | |||
• "taxophone" — заказ создан из таксофона | |||
• "driver" — заказ создан водителем | |||
• "daily_order" — ежедневный заказ | |||
• "unknown" — неизвестный | |||
|} | |} | ||
Пример: | Пример: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/common_api/1.0/get_finished_orders?client_id=140&phone= HTTP/1.1 | |||
Signature: <...> | Signature: <...> | ||
Ответ: | Ответ: | ||
{ | { | ||
"code":0, | |||
"descr":"OK", | |||
"data":{ | |||
"orders":[ | |||
{ | |||
} | "id":20651, | ||
"state_id":34, | |||
</pre> | "source_time":"20130205110812", | ||
"start_time":"20130205110812", | |||
"finish_time":"20130205115618", | |||
"source":"прпроп", | |||
"source_lat":42.9806060791016, | |||
"source_lon":47.4614906311035, | |||
"destination":"рррррр", | |||
"destination_lat":55.6898765563965, | |||
"destination_lon":37.6890335083008, | |||
"stops":[ | |||
{ | |||
"address":"ввввв", | |||
"lat":55.6792640686035, | |||
"lon":37.5807800292969 | |||
}, | |||
{ | |||
"address":"ааааа", | |||
"lat":55.6731262207031, | |||
"lon":37.6959686279297 | |||
}, | |||
{ | |||
"address":"ппппп", | |||
"lat":55.678165435791, | |||
"lon":37.6913642883301 | |||
} | |||
], | |||
"passenger":"вера", | |||
"sum":908, | |||
"total_sum":1000, | |||
"cash_sum":700, | |||
"cashless_sum":100, | |||
"bonus_sum":150, | |||
"bank_card_sum":50, | |||
"crew_id":6, | |||
"prior_crew_id":0, | |||
"driver_id":4, | |||
"car_id":6, | |||
"phone":"111111", | |||
"client_id":140, | |||
"tariff_id":1, | |||
"order_crew_group_id":1 | |||
}, | |||
{ | |||
"id":20669, | |||
"state_id":34, | |||
"source_time":"20130205130500", | |||
"start_time":"20130205130500", | |||
"finish_time":"20130205134511", | |||
"source":"1", | |||
"destination":"2", | |||
"passenger":"маша", | |||
"sum":454, | |||
"total_sum":500, | |||
"cash_sum":0, | |||
"cashless_sum":500, | |||
"bonus_sum":0, | |||
"bank_card_sum":0, | |||
"crew_id":6, | |||
"prior_crew_id":0, | |||
"driver_id":4, | |||
"car_id":6, | |||
"phone":"222222", | |||
"client_id":140, | |||
"tariff_id":2, | |||
"order_crew_group_id":2 | |||
"creation_way":"operator" | |||
} | |||
] | |||
} | |||
} | |||
</pre> | |||
=== Проведение операции по клиенту === | |||
Название запроса: | Метод: POST | ||
Название запроса: create_client_operation | |||
Параметры: | Параметры: | ||
{| | {| | ||
! | !Параметры | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
| Строка 3829: | Строка 3952: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |client_id | ||
|Целое | |||
|ИД клиента | |||
|- | |||
|sum | |||
|Дробное | |||
|Сумма | |||
|- | |||
|oper_type | |||
|Целое | |Целое | ||
| | |Тип операции: | ||
• "receipt" - приход | |||
• "expense" - расход | |||
|- | |||
!colspan="3"|Необязательные параметры | |||
|- | |- | ||
| | |oper_time | ||
|ГГГГММДДччммсс | |ГГГГММДДччммсс | ||
| | |Время создания операции | ||
|- | |||
|comment | |||
|Строка | |||
|Комментарий | |||
|- | |||
|pay_type | |||
|Целое | |||
|Тип оплаты: | |||
• "cash" - наличный | |||
• "nocash" - безналичный | |||
|- | |- | ||
| | |bonus_oper | ||
| | |true или false | ||
| | |Операция по бонусному счёту | ||
|} | |} | ||
Специальные возвращаемые коды: | Специальные возвращаемые коды: | ||
| Строка 3849: | Строка 3995: | ||
|- | |- | ||
|100 | |100 | ||
|Не найден | |Не найден клиент ИД=CLIENT_ID | ||
|} | |} | ||
Возвращаемые данные в случае успешного выполнения запроса: | Возвращаемые данные в случае успешного выполнения запроса: | ||
| Строка 3862: | Строка 4007: | ||
|Целое | |Целое | ||
|ИД операции | |ИД операции | ||
|} | |||
Пример: | |||
|} | |||
Пример: | |||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
POST https://ip:port/common_api/1.0/create_client_operation HTTP/1.1 | |||
Signature: <...> | Signature: <...> | ||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: 99 | |||
client_id=112&oper_time=20130221100719&oper_sum=300&oper_type=receipt&pay_type=cash&comment=COMMENT&bonus_oper=true | |||
Ответ: | Ответ: | ||
| Строка 3905: | Строка 4027: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
"oper_id":31 | |||
} | |||
} | |||
</pre> | |||
=== Запрос операций по клиенту === | |||
Метод: GET | |||
} | |||
} | |||
</pre> | |||
Название запроса: get_client_operations | |||
Параметры: | |||
{| | {| | ||
! | !Параметры | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
!Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |client_id | ||
|Целое | |Целое | ||
|ИД | |ИД клиента (обязателен, если phone отсутствует) | ||
|- | |- | ||
| | |phone | ||
|Целое | |Целое | ||
| | |Телефон клиента (обязателен, если client_id отсутствует) | ||
|- | |- | ||
| | |start_time | ||
| | |ГГГГММДДччммсс | ||
| | |Начало периода | ||
|- | |- | ||
| | |finish_time | ||
| | |ГГГГММДДччммсс | ||
| | |Конец периода | ||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |- | ||
|100 | |||
|Не найден клиент ИД=CLIENT_ID | |||
| | |||
| | |||
|} | |} | ||
Возвращаемые данные в случае успешного выполнения запроса: | |||
Возвращаемые данные в случае успешного выполнения запроса | |||
{| | {| | ||
!Параметр | !Параметр | ||
| Строка 4009: | Строка 4080: | ||
!Описание | !Описание | ||
|- | |- | ||
|oper_id | |||
|Целое | |||
|ИД операции | |||
|- | |- | ||
| | |oper_time | ||
| | |ГГГГММДДччммсс | ||
| | |Время создания операции | ||
|- | |||
|sum | |||
|Дробное | |||
|Сумма | |||
|- | |- | ||
|order_id | |||
|Целое | |||
|Заказ, связанный с операцией | |||
|- | |- | ||
| | |oper_type | ||
| | |Целое | ||
| | |Тип операции: | ||
• "receipt" - приход | |||
• "expense" - расход | |||
|- | |- | ||
| | |pay_type | ||
| | |Целое | ||
| | |Тип оплаты: | ||
• "cash" - наличный | |||
• "nocash" - безналичный | |||
|- | |- | ||
| | |name | ||
| | |Строка | ||
| | |Наименование | ||
|- | |- | ||
| | |comment | ||
| | |Строка | ||
| | |Комментарий | ||
|} | |} | ||
Пример: | |||
<pre> | |||
Запрос: | |||
GET | |||
GET https://ip:port/common_api/1.0/get_client_operations? | |||
client_id=112&start_time=20130201092112&finish_time=20130221092112 HTTP/1.1 | |||
Signature: <...> | |||
< | |||
Ответ: | Ответ: | ||
| Строка 4082: | Строка 4137: | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{ | ||
"operations":[ | |||
{ | |||
"oper_id":112, | |||
} | "oper_time":"20130219091328", | ||
"sum":"21,8", | |||
"order_id":11800, | |||
"oper_type":"receipt", | |||
"pay_type":"cash", | |||
"name":"Пополнение счета", | |||
"comment":"Комментарий" | |||
}, | |||
{ | |||
"oper_id":112, | |||
"oper_time":"20130220112245", | |||
"sum":"4500", | |||
"order_id":11801, | |||
"oper_type":"receipt", | |||
"pay_type":"cash", | |||
"name":"Пополнение счета", | |||
"comment":"Комментарий" | |||
} | |||
] | |||
} | |||
} | |||
</pre> | </pre> | ||
=== | === Проведение операции по водителю === | ||
Метод: POST | Метод: POST | ||
Название запроса: | Название запроса: create_driver_operation | ||
Параметры: | Параметры: | ||
| Строка 4103: | Строка 4177: | ||
!Описание | !Описание | ||
|- | |- | ||
!Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |||
|driver_id | |||
|Целое | |||
|ИД водителя | |||
|- | |||
|oper_sum | |||
|Дробное | |||
|Сумма | |||
|- | |- | ||
| | |oper_type | ||
|Строка | |Строка | ||
| | |Тип операции: receipt - приход, expense - расход. | ||
|- | |- | ||
!Необязательные параметры | !colspan="3"|Необязательные параметры | ||
|- | |- | ||
| | |name | ||
|Строка | |Строка | ||
| | |Наименование операции | ||
|- | |- | ||
| | |oper_time | ||
| | |ГГГГММДДччммсс | ||
| | |Время создания операции (если не задано, текущее) | ||
|- | |- | ||
| | |comment | ||
| | |Строка | ||
| | |Комментарий | ||
|} | |} | ||
Специальные возвращаемые коды: | Специальные возвращаемые коды: | ||
| Строка 4136: | Строка 4213: | ||
|- | |- | ||
|100 | |100 | ||
| | |Водитель не найден ИД=DRIVER_ID | ||
|} | |} | ||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|oper_id | |||
|Целое | |||
|ИД операции | |||
|} | |||
Пример: | Пример: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
POST /common_api/1.0/ | |||
POST https://ip:port/common_api/1.0/create_driver_operation HTTP/1.1 | |||
Signature: <...> | |||
Content-Type: application/json | |||
Content-Length: 99 | |||
{ | { | ||
" | "driver_id": 1, | ||
" | "oper_sum": 10.00, | ||
"oper_type": "receipt", | |||
"name": "Пополнение счета", | |||
"oper_time": "20141210100719", | |||
"comment": "Комментарий к операции" | |||
" | |||
" | |||
} | } | ||
Ответ: | Ответ: | ||
{ | { | ||
"code":0, | |||
"descr":"OK", | |||
"data":{ | |||
"oper_id":31 | |||
} | |||
} | } | ||
| Строка 4175: | Строка 4262: | ||
=== Запрос | === Запрос операций по водителю === | ||
Метод: GET | Метод: GET | ||
Название запроса: | Название запроса: get_driver_operations | ||
Параметры: | Параметры: | ||
| Строка 4188: | Строка 4275: | ||
!Описание | !Описание | ||
|- | |- | ||
!Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |||
|driver_id | |||
|Целое | |||
|ИД водителя | |||
|- | |- | ||
|start_time | |start_time | ||
| Строка 4197: | Строка 4288: | ||
|ГГГГММДДччммсс | |ГГГГММДДччммсс | ||
|Конец периода | |Конец периода | ||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |- | ||
! | |100 | ||
|Не найден водитель ИД=DRIVER_ID | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |- | ||
| | |oper_id | ||
|Целое | |Целое | ||
|ИД | |ИД операции | ||
|- | |- | ||
| | |oper_time | ||
| | |ГГГГММДДччммсс | ||
| | |Время создания операции | ||
|- | |- | ||
| | |sum | ||
| | |Дробное | ||
| | |Сумма | ||
|- | |||
|order_id | |||
|Целое | |||
|Заказ, связанный с операцией | |||
|- | |- | ||
| | |oper_type | ||
| | |Целое | ||
| | |Тип операции: | ||
•"receipt" - приход | |||
•"expense" - расход | |||
|- | |- | ||
| | |name | ||
| | |Строка | ||
| | |Наименование | ||
|- | |- | ||
| | |comment | ||
| | |Строка | ||
| | |Комментарий | ||
|} | |} | ||
Пример: | |||
<pre> | |||
Запрос: | |||
GET https://ip:port/common_api/1.0/get_driver_operations? | |||
driver_id=112&start_time=20130201092112&finish_time=20130221092112 HTTP/1.1 | |||
Signature: <...> | |||
Ответ: | |||
{ | { | ||
"code":0, | |||
"descr":"OK", | |||
"data":{ | |||
"operations":[ | |||
{ | |||
"oper_id":112, | |||
"oper_time":"20130219091328", | |||
| | "sum":"21,8", | ||
"order_id":11800, | |||
"oper_type":"receipt", | |||
"name":"DRIVER_OPERATION_1", | |||
"comment":"DRIVER_OPERATION_COMMENT_1" | |||
}, | |||
{ | |||
"oper_id":112, | |||
"oper_time":"20130220112245", | |||
"sum":"4500", | |||
"order_id":11801, | |||
"oper_type":"receipt", | |||
"name":"DRIVER_OPERATION_2", | |||
"comment":"DRIVER_OPERATION_COMMENT_2" | |||
} | |||
] | |||
} | |||
} | |||
</pre> | |||
=== Задание координат экипажей === | |||
Метод: POST | |||
Название запроса: set_crews_coords | |||
Параметры в формате JSON: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |- | ||
!Обязательные параметры | |||
|- | |- | ||
| | |crew_coords | ||
| | |Массив | ||
| | |Массив координат экипажей | ||
|- | |- | ||
|• | |• crew_id | ||
| | |Целое | ||
|ИД | |ИД экипажа | ||
|- | |- | ||
|• | |• gps_id | ||
| | |Целое | ||
| | |GPS идентификатор (если не задан ИД экипажа) | ||
|- | |- | ||
|• | |• lat | ||
|Дробное | |Дробное | ||
| | |Широта | ||
|- | |- | ||
|• | |• lon | ||
| | |Дробное | ||
| | |Долгота | ||
|- | |- | ||
!Необязательные параметры | |||
|- | |- | ||
| | |speed | ||
| | |Дробное | ||
| | |Скорость | ||
| | |} | ||
Специальные возвращаемые коды: нет | |||
Возвращаемые данные в случае успешного выполнения запроса: нет | |||
Пример: | |||
Пример: | |||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
POST https://ip:port/common_api/1.0/set_crews_coords HTTP/1.1 | |||
Signature: <...> | Signature: <...> | ||
Content-Type: application/json | |||
Content-Length: 109 | |||
{"crews_coords":[{"crew_id":1,"lat":11.111111,"lon":22.222222}, | |||
{"gps_id":2,"lat":33.333333,"lon":44.444444}]} | |||
Ответ: | Ответ: | ||
| Строка 4325: | Строка 4441: | ||
"code":0, | "code":0, | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{} | ||
} | |||
</pre> | |||
=== Изменение информации по заказу === | |||
Метод: POST | |||
Название запроса: update_order | |||
Параметры: | |||
} | |||
</pre> | |||
=== | |||
Метод: | |||
Название запроса: | |||
Параметры: | |||
{| | {| | ||
| Строка 4386: | Строка 4456: | ||
!Описание | !Описание | ||
|- | |- | ||
!Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |order_id | ||
| | |Целое | ||
| | |ИД заказа | ||
|- | |- | ||
| | !colspan="3"|Необязательные параметры | ||
|- | |- | ||
|phone | |||
|Строка, <= 16 символов | |||
|Номер телефона | |||
|- | |- | ||
| | |source_time | ||
| | |ГГГГММДДччммсс | ||
| | |Время подачи | ||
|- | |- | ||
| | |is_prior | ||
|true или false | |true или false | ||
| | |Предварительный заказ | ||
|- | |- | ||
| | |customer | ||
| | |Строка | ||
| | |Заказчик | ||
|- | |- | ||
| | |passenger | ||
| | |Строка | ||
| | |Пассажир | ||
|- | |- | ||
| | |comment | ||
|Строка | |Строка | ||
| | |Комментарий | ||
|- | |- | ||
| | |crew_group_id | ||
| | |Целое | ||
| | |ИД группы экипажей | ||
|- | |- | ||
| | |client_id | ||
| | |Целое | ||
| | |ИД клиента | ||
|- | |- | ||
| | |uds_id | ||
| | |Целое | ||
| | |ИД службы ЕДС | ||
|- | |- | ||
| | |tariff_id | ||
| | |Целое | ||
| | |ИД тариф | ||
|- | |- | ||
| | |addresses | ||
| | |Массив | ||
| | |Массив адресов. Первый элемент — адрес | ||
подачи(обязательно), последний — адрес назначения, | |||
между ними — остановки. | |||
|- | |- | ||
|• | |• address | ||
| | |Строка | ||
| | |Адрес подачи | ||
|- | |- | ||
|• | |• lat | ||
| | |Дробное | ||
| | |Широта адреса | ||
|- | |- | ||
|• | |• lon | ||
| | |Дробное | ||
| | |Долгота адреса | ||
|- | |- | ||
|• | |order_params | ||
|Целое | |Массив | ||
| | |Массив параметров заказа | ||
|- | |||
|• | |||
|Целое | |||
|ИД параметра заказа | |||
|- | |||
|cost_order | |||
|Дробное | |||
|Сумма заказа | |||
|- | |||
|state_id | |||
|Целое | |||
|ИД состояния заказа | |||
|- | |||
|discount_id | |||
|Целое | |||
|ИД скидки | |||
|- | |||
|auto_select_discount | |||
|true или false | |||
|Автоматически подобрать скидку, если не указана явно | |||
|- | |||
|auto_select_tariff | |||
|true или false | |||
|Автоматически подобрать тариф, если не указан явно | |||
|- | |||
|auto_recalc_cost | |||
|true или false | |||
|Автоматически пересчитать сумму заказа | |||
|- | |||
|auto_update_order_params | |||
|true или false | |||
|Автоматически обновить параметры заказа по клиенту и группе клиента | |||
|} | |} | ||
Пример: | Специальные возвращаемые коды: | ||
{| | |||
<pre> | !Код | ||
!Описание | |||
|- | |||
|100 | |||
Signature: <...> | |Заказ не найден | ||
|- | |||
|101 | |||
|Состояние заказа не найдено | |||
|- | |||
|102 | |||
|Тариф не найден | |||
|- | |||
|103 | |||
|Скидка не найдена | |||
|- | |||
|104 | |||
|Группа экипажа не найдена | |||
|- | |||
|105 | |||
|Служба не найдена | |||
|- | |||
|106 | |||
|Клиент не найден | |||
|- | |||
|107 | |||
|Изменение состояния не соответствует необходимым условиям | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: нет. | |||
Пример: | |||
<pre> | |||
POST https://ip:port/common_api/1.0/update_order HTTP/1.1 | |||
Signature: <...> | |||
Content-Type: application/json | |||
Content-Length: 208 | |||
{ | |||
"order_id": 12105, | |||
"phone": "555", | |||
"source_time": "20141216095044", | |||
"is_prior": true, | |||
"auto_select_discount": true, | |||
"auto_select_tariff": true, | |||
"auto_recalc_cost": true, | |||
"auto_update_order_params": true, | |||
"customer": "Заказчик", | |||
"passenger": "Пассажир", | |||
"comment": "Комментарий", | |||
"crew_group_id": 8, | |||
"client_id": 30, | |||
"tariff_id": 33, | |||
"addresses":[ | |||
{"address":"SOURCE","lat":56.896817,"lon":53.147830}, | |||
{"address":"STOP1","lat":56.845452,"lon":53.226775}, | |||
{"address":"STOP2"}, | |||
{"address":"DESTINATION","lat":56.861230,"lon":53.241870} | |||
], | |||
"cost_order": 200, | |||
"state_id": 55, | |||
"discount_id": 1 | |||
} | |||
Ответ: | |||
{ | { | ||
"code":0, | "code":0, | ||
"descr":"OK", | "descr":"OK", | ||
"data":{ | "data":{} | ||
} | |||
</pre> | |||
=== Анализ телефона === | |||
Метод: GET | |||
Название запроса: analyze_phone | |||
} | |||
</pre> | |||
=== | |||
Метод: | |||
Название запроса: | |||
Параметры: | Параметры: | ||
{| | {| | ||
!Параметр | !Параметр | ||
| Строка 4527: | Строка 4646: | ||
!Обязательные параметры | !Обязательные параметры | ||
|- | |- | ||
| | |phone | ||
| | |Строка | ||
| | |Номер телефона | ||
|- | |- | ||
!Необязательные параметры | |||
! | |||
|- | |- | ||
| | |search_in_drivers_mobile | ||
| | |true или false | ||
|Искать среди мобильных телефонов водителей | |||
|- | |- | ||
| | |search_in_drivers_home | ||
| | |true или false | ||
|Искать среди домашних телефонов водителей | |||
|- | |- | ||
| | |search_in_clients | ||
| | |true или false | ||
|Искать среди телефонов клиентов | |||
|- | |- | ||
| | |search_in_phones | ||
| | |true или false | ||
| | |Искать в справочнике телефонов | ||
|} | |} | ||
Если параметры search_in_drivers_mobile, search_in_drivers_home, search_in_clients, search_in_phones не заданы, то поиск телефона будет происходить во всех справочниках. | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Телефон не найден | |||
|} | |||
<pre> | Возвращаемые данные в случае успешного выполнения запроса: | ||
Запрос: | {| | ||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|phone_type | |||
|Строка | |||
|Может принимать значения: «driver_mobile», «driver_home», «client», «phone». | |||
|- | |||
|id | |||
|Целое | |||
|ИД водителя, клиента, телефона из справочника. | |||
|} | |||
Пример: | |||
<pre> | |||
Запрос: | |||
GET /common_api/1.0/analyze_phone? | |||
phone=89501234567&search_in_drivers_mobile=true&search_in_drivers_home=true&search_in_clients=true& | |||
search_in_phones=true HTTP/1.1 | |||
Host: 127.0.0.1:8089 | |||
Keep-Alive: 300 | |||
Connection: keep-alive | |||
Signature: 4285286a446064353f4a951b721c54f7 | |||
Ответ: | Ответ: | ||
| Строка 4590: | Строка 4716: | ||
"code":0, | "code":0, | ||
"descr":"OK", | "descr":"OK", | ||
"data":{} | "data":{ | ||
"phone_type":"client", | |||
"id":1 | |||
} | |||
} | } | ||
</pre> | </pre> | ||
=== | === Показать сообщение в ТМ === | ||
Метод: POST | |||
Название запроса: show_tm_message | |||
Параметры: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
!Обязательные параметры | |||
|- | |||
|text | |||
|Строка | |||
|Текст сообщения | |||
|- | |||
!Необязательные параметры | |||
|- | |||
|header | |||
|Строка | |||
|Заголовок сообщения | |||
|- | |||
|timeout | |||
|Целое | |||
|Скрывать сообщение через, сек. (0 — не скрывать) | |||
|- | |||
|users | |||
|Массив | |||
|Массив пользователей (если не указаны — отправлять всем) | |||
|- | |||
|• | |||
|Целое | |||
|ИД пользователя | |||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Пользователи для отправки сообщения не найдены | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: нет. | |||
Пример: | Пример: | ||
<pre> | <pre> | ||
Запрос: | |||
POST /common_api/1.0/show_tm_message HTTP/1.1 | |||
Host: 127.0.0.1:8089 | |||
Keep-Alive: 300 | |||
Connection: keep-alive | |||
Signature: 4285286a446064353f4a951b721c54f7 | |||
{ | |||
"text": "Текст сообщения", | |||
"users": [ | |||
1, | |||
2, | |||
3 | |||
], | |||
"header": "Заголовок", | |||
"timeout": 12 | |||
} | |||
Ответ: | |||
{ | |||
"code":0, | |||
"descr":"OK", | |||
"data":{} | |||
} | |||
</pre> | </pre> | ||
=== Запрос списка купленных смен водителей === | |||
Метод: GET | |||
Название запроса: get_driver_shifts | |||
Параметры: | |||
{| | {| | ||
! | !Параметр | ||
! Описание | !Тип | ||
!Описание | |||
|- | |- | ||
!Обязательные параметры | |||
|- | |- | ||
| | |start_time | ||
| | |ГГГГММДДччммсс | ||
|Начало периода | |||
|- | |- | ||
| | |finish_time | ||
| | |ГГГГММДДччммсс | ||
|Конец периода | |||
|- | |- | ||
!Необязательные параметры | |||
|- | |- | ||
| | |driver_id | ||
| | |Целое | ||
|ИД водителя | |||
|- | |- | ||
| | |new_shifts | ||
| | |true или false | ||
|Включить в ответ новые смены (по умолчанию true) | |||
|- | |- | ||
| | |in_work_shifts | ||
| | |true или false | ||
|Включить в ответ смены в работе (по умолчанию true) | |||
|- | |- | ||
| | |finished_shifts | ||
| | |true или false | ||
|Включить в ответ выполненные смены (по умолчанию true) | |||
|- | |- | ||
| | |failed_shifts | ||
| | |true или false | ||
|Включить в ответ неуспешно завершенные смены (по умолчанию true) | |||
|- | |- | ||
| | |returned_shifts | ||
| | |true или false | ||
|Включить в ответ возвращенные смены (по умолчанию false) | |||
|} | |} | ||
Специальные возвращаемые коды: нет | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | {| | ||
!Параметр | !Параметр | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
|shifts | |||
|Массив | |||
|Массив купленных смен | |||
|- | |||
|• shift_id | |||
|Целое | |||
|ИД купленной смены | |||
|- | |||
|• driver_id | |||
|Целое | |||
|ИД водителя | |||
|- | |- | ||
| | |•driver_name | ||
|Строка | |Строка | ||
| | |ФИО водителя | ||
|- | |- | ||
| | |• plan_shift_id | ||
|Строка | |Строка | ||
| | |ИД запланированной смены | ||
|- | |- | ||
| | |• plan_shift_name | ||
|Строка | |Строка | ||
| | |Наименование запланированной смены | ||
| | |- | ||
|• plan_shift_cost | |||
|Дробное | |||
|Цена смены | |||
|- | |||
|• plan_shift_type | |||
|Строка | |||
|Тип смены («limited» - срочная, «unlimited» - бессрочная) | |||
|- | |- | ||
| | |• plan_shift_start_time | ||
| | |ГГГГММДДччммсс | ||
| | |План-начало смены (для срочных) | ||
( | |||
|- | |- | ||
| | |• plan_shift_finish_time | ||
| | |ГГГГММДДччммсс | ||
| | |План-конец смены (для срочных) | ||
|- | |- | ||
| | |• plan_shift_length | ||
|Целое | |Целое | ||
| | |План продолжительность смены, ч. (для бессрочных) | ||
|- | |- | ||
| | |• plan_shift_crew_group_id | ||
| | |Целое | ||
| | |ИД группы экипажей, которые могут купить смену | ||
|- | |- | ||
| | |• shift_state | ||
| | |Строка | ||
| | |Состояние смены («new» - новая, «in_work» - в работе, «finished» - завершена успешно, «failed» - завершена неуспешно) | ||
|- | |- | ||
| | |• buy_time | ||
| | |ГГГГММДДччммсс | ||
| | |Время продажи смены водителю | ||
|- | |- | ||
| | |• is_returned | ||
| | |true или false | ||
| | |Признак возвращенной смены | ||
|- | |- | ||
| | |• return_time | ||
| | |ГГГГММДДччммсс | ||
| | |Время возврата смены | ||
|- | |- | ||
| | |• orders_count | ||
|Целое | |Целое | ||
| | |Количество заказов, выполненных водителем за смену | ||
|- | |- | ||
| | |• orders_sum | ||
|Дробное | |Дробное | ||
| | |Сумма заказов, выполненных водителем за смену | ||
|- | |- | ||
| | |• fact_length | ||
|Дробное | |Дробное | ||
| | |Фактическая продолжительность смены, ч. | ||
| | |} | ||
Пример: | |||
<pre> | |||
Запрос: | |||
GET https://ip:port/common_api/1.0/get_driver_shifts?start_time=20140101101010&finish_time=20140101202020 HTTP/1.1 | |||
Signature: <...> | |||
Ответ: | |||
{ | |||
"code":0, | |||
"descr":"OK", | |||
"data":{ | |||
"shifts":[ | |||
{ | |||
"shift_id":1, | |||
"driver_id":1, | |||
"driver_name":"DRIVER_1", | |||
"plan_shift_id":1, | |||
"plan_shift_name":"PLAN_SHIFT_1", | |||
"plan_shift_cost":100, | |||
"plan_shift_type":"limited", | |||
"plan_shift_start_time":"20140101101010", | |||
"plan_shift_finish_time":"20140101101010", | |||
"plan_shift_length":null, | |||
"plan_shift_crew_group_id":1, | |||
"shift_state":new, | |||
"buy_time":"20140101101010", | |||
"is_returned":false, | |||
"return_time":null, | |||
"orders_count":10, | |||
"orders_sum":1000, | |||
"fact_length":1.2 | |||
}, | |||
{ | |||
"shift_id":2, | |||
"driver_id":2, | |||
"driver_name":"DRIVER_2", | |||
"plan_shift_id":2, | |||
"plan_shift_name":"PLAN_SHIFT_2", | |||
"plan_shift_cost":200, | |||
"plan_shift_type":"unlimited", | |||
"plan_shift_start_time":null, | |||
"plan_shift_finish_time":null, | |||
"plan_shift_length":8, | |||
"plan_shift_crew_group_id":null, | |||
"shift_state":new, | |||
"buy_time":"20140101101010", | |||
"is_returned":true, | |||
"return_time":"20140101101010", | |||
"orders_count":0, | |||
"orders_sum":0, | |||
"fact_length":0 | |||
} | |||
] | |||
} | |||
} | |||
</pre> | |||
=== Запрос списка запланированных смен водителей === | |||
Метод: GET | Метод: GET | ||
Название запроса: | Название запроса: get_driver_plan_shifts | ||
Параметры: | Параметры: | ||
{| | {| | ||
!Параметр | !Параметр | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
!Обязательные параметры | |||
|- | |- | ||
| | |start_time | ||
| | |ГГГГММДДччммсс | ||
| | |Начало периода (если включаем в ответ срочные смены) | ||
|- | |||
|finish_time | |||
|ГГГГММДДччммсс | |||
|Конец периода (если включаем в ответ срочные смены) | |||
|- | |||
!Необязательные параметры | |||
|- | |- | ||
| | |limited_shifts | ||
| | |true или false | ||
| | |Включить в ответ срочные смены (по умолчанию true) | ||
|- | |- | ||
| | |unlimited_shifts | ||
| | |true или false | ||
| | |Включить в ответ бессрочные смены (по умолчанию true) | ||
|} | |} | ||
Специальные возвращаемые коды: нет | Специальные возвращаемые коды: нет | ||
Возвращаемые данные в случае успешного выполнения запроса: | Возвращаемые данные в случае успешного выполнения запроса: | ||
{| | {| | ||
!Параметр | !Параметр | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
| | |plan_shifts | ||
| | |Массив | ||
| | |Массив запланированных смен | ||
|- | |||
|• plan_shift_id | |||
|Целое | |||
|ИД запланированной смены | |||
|- | |- | ||
| | |• plan_shift_name | ||
|Строка | |Строка | ||
| | |Наименование запланированной смены | ||
|- | |- | ||
| | |• plan_shift_comment | ||
|Строка | |Строка | ||
| | |Комментарий запланированной смены | ||
|- | |- | ||
| | |• plan_shift_cost | ||
|Дробное | |||
|Цена смены | |||
|- | |||
|• plan_shift_type | |||
|Строка | |Строка | ||
| | |Тип смены («limited» - срочная, «unlimited» - бессрочная) | ||
|- | |- | ||
| | |• plan_shift_start_time | ||
| | |ГГГГММДДччммсс | ||
| | |План-начало смены (для срочных) | ||
|- | |- | ||
| | |• plan_shift_finish_time | ||
| | |ГГГГММДДччммсс | ||
| | |План-конец смены (для срочных) | ||
|- | |- | ||
| | |• plan_shift_length | ||
|Целое | |Целое | ||
| | |План продолжительность смены, ч. (для бессрочных) | ||
|- | |- | ||
| | |• plan_shift_crew_group_id | ||
| | |Целое | ||
| | |ИД группы экипажей, которые могут купить смену | ||
|- | |- | ||
| | |• max_sell_count | ||
|Целое | |Целое | ||
| | |Максимальное количество продаж смены | ||
|- | |- | ||
| | |• sold_count | ||
|Целое | |Целое | ||
| | |Количество продаж смены | ||
|} | |||
|} | |||
Пример: | Пример: | ||
| Строка 5004: | Строка 5104: | ||
Запрос: | Запрос: | ||
GET https://ip:port/ | GET https://ip:port/common_api/1.0/get_driver_plan_shifts?start_time=20140101101010&finish_time=20140101202020 HTTP/1.1 | ||
Signature: <...> | |||
HTTP/1.1 | |||
Ответ: | Ответ: | ||
{ | |||
"code":0, | |||
"descr":"OK", | |||
"data":{ | |||
"plan_shifts":[ | |||
{ | |||
"plan_shift_id":1, | |||
"plan_shift_name":"PLAN_SHIFT_1", | |||
"plan_shift_comment":"PLAN_SHIFT_COMMENT_1", | |||
"plan_shift_cost":100, | |||
"plan_shift_type":"limited", | |||
"plan_shift_start_time":"20140101101010", | |||
"plan_shift_finish_time":"20140101101010", | |||
"plan_shift_length":null, | |||
"plan_shift_crew_group_id":1, | |||
"max_sell_count":100, | |||
"sold_count":10 | |||
}, | |||
{ | |||
"plan_shift_id":2, | |||
"plan_shift_name":"PLAN_SHIFT_2", | |||
"plan_shift_comment":"PLAN_SHIFT_COMMENT_2", | |||
"plan_shift_cost":200, | |||
"plan_shift_type":"unlimited", | |||
"plan_shift_start_time":null, | |||
"plan_shift_finish_time":null, | |||
"plan_shift_length":8, | |||
"plan_shift_crew_group_id":2, | |||
"max_sell_count":200, | |||
"sold_count":20 | |||
} | |||
] | |||
} | |||
} | |||
</pre> | </pre> | ||
=== | |||
=== Продажа смены водителю === | |||
Метод: POST | Метод: POST | ||
Название запроса: | Название запроса: driver_buy_shift | ||
Параметры: | Параметры: | ||
{| | {| | ||
!Параметр | !Параметр | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
! | !Обязательные параметры | ||
|- | |- | ||
| | |crew_id | ||
|Целое | |Целое | ||
|ИД | |ИД экипажа | ||
|- | |- | ||
| | |plan_shift_id | ||
|Целое | |Целое | ||
| | |ИД запланированной смены | ||
|} | |} | ||
| Строка 5055: | Строка 5174: | ||
{| | {| | ||
!Код | !Код | ||
!Описание | !Описание | ||
|- | |- | ||
|100 | |100 | ||
| | |Запланированная смена не найдена | ||
|- | |- | ||
|101 | |101 | ||
| | |Экипаж не найден | ||
|- | |||
|102 | |||
|Водитель не найден | |||
|- | |||
|103 | |||
|Недостаточно денег на счете водителя | |||
|- | |||
|104 | |||
|Водитель уволен либо заблокирован | |||
|- | |||
|105 | |||
|Запланированная смена устарела | |||
|- | |||
|106 | |||
|Не подходит группа экипажа | |||
|- | |||
|107 | |||
|Превышено максимальное число покупок смены | |||
|- | |||
|108 | |||
|Повторная покупка смены | |||
|} | |} | ||
Возвращаемые данные в случае успешного выполнения запроса: нет. | |||
Пример: | Пример: | ||
| Строка 5086: | Строка 5213: | ||
Запрос: | Запрос: | ||
POST https://ip:port/ | POST https://ip:port/common_api/1.0/get_cars_info HTTP/1.1 | ||
Signature: <...> | |||
Content-Type: application/x-www-form-urlencoded | Content-Type: application/x-www-form-urlencoded | ||
Content-Length: | Content-Length: 25 | ||
crew_id=1&plan_shift_id=1 | |||
Ответ: | Ответ: | ||
{ | |||
"code":0, | |||
"descr":"OK", | |||
"data":{} | |||
} | |||
</pre> | </pre> | ||
=== Сохранение отзыва клиента === | |||
==== | |||
Метод: POST | Метод: POST | ||
Название запроса: | Название запроса: save_client_feed_back | ||
Параметры: | Параметры: | ||
{| | {| | ||
!Параметр | !Параметр | ||
!Тип | !Тип | ||
!Описание | !Описание | ||
|- | |- | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |phone | ||
| | |Строка | ||
| | |Телефон | ||
|- | |- | ||
| | |rating | ||
|Целое | |Целое | ||
| | |Рейтинг (от 1 до 5) | ||
|- | |- | ||
| | |text | ||
|Строка | |Строка | ||
| | |Текстовый отзыв | ||
|- | |- | ||
!colspan="3"|Необязательные параметры | |||
| | |||
|- | |- | ||
| | |order_id | ||
| | |Целое | ||
| | |ИД заказа | ||
| | |} | ||
Допускается указывать либо параметр rating либо text, либо оба параметра. | |||
Специальные возвращаемые коды: нет. | |||
Возвращаемые данные в случае успешного выполнения запроса: нет. | |||
Возвращаемые данные в случае успешного выполнения запроса | |||
Пример: | Пример: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
POST /common_api/1.0/save_client_feed_back HTTP/1.1 | |||
Host: 127.0.0.1:8090 | |||
Keep-Alive: 300 | |||
Connection: keep-alive | |||
Content-Type: application/json | |||
Content-Length: 72 | |||
Signature: <...> | |||
{ | |||
"phone":"89123456789", | |||
"rating":4, | |||
"text":"test feedback", | |||
"order_id":100 | |||
} | |||
Ответ: | Ответ: | ||
{ | |||
"code":0, | |||
"descr":"OK", | |||
"data":{} | |||
} | |||
</pre> | </pre> | ||
== | == Описание протокола TMTAPI Версия 1.0 == | ||
=== Общее описание протокола === | |||
==== Формат запроса ==== | |||
TM API принимает входящие запросы по протоколу HTTPS. В URI запроса после ip адреса и порта, который будет слушать TM API, должно идти название API (tm_tapi) и версия API. | |||
Пример: | |||
<pre> | |||
GET https://ip:port/tm_tapi/1.0/get_info_by_phone HTTP/1.1 | |||
</pre> | |||
Для получения данных из БД используются запросы типа GET. Для записи данных в БД используются запросы типа POST. В запросе типа GET параметры запроса передаются в URI. | |||
Пример: | |||
<pre> | |||
GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565&fields=PHONE_TYPE-PHONE_ | |||
TO_DIAL&signature=661ce071eeefcb4f7fc8bc1f17bd520b HTTP/1.1 | |||
</pre> | |||
В запросе типа POST параметры передаются в теле запроса в формате application/x-www-form- | |||
urlencoded. | |||
Пример: | |||
<pre> | |||
POST https://ip:port/tm_tapi/1.0/change_order_state HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: 71 | |||
order_id=98798&need_state=12&signature=a204c50c7e48f0c6849a87485fe5e171 | |||
</pre> | |||
В любом запросе обязательно с другими полями должно передаваться поле signature. В нем передается MD5 хэш, рассчитанный для строки, которая получается сцеплением строки параметров запроса с секретным ключом. Секретный ключ задается в настройках модуля TMAPI в Такси-Мастер. | |||
Пример: | |||
<pre> | |||
Запрос: | |||
GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565&fields=PHONE_TYPE | |||
&signature=ef17ea682d09e452af544a5758dba396 HTTP/1.1 | |||
Секретный ключ: | |||
321 | |||
Signature = MD5("phone=89058800565&fields=PHONE_TYPE" + "321") = ef17ea682d09e452af544a5758dba396 | |||
| | HTTP/1.1 | ||
</pre> | |||
==== Формат ответа ==== | |||
TM API всегда возвращает HTTP код 200 ОК. Результат выполнения запроса содержится в теле ответа в формате XML. Общий вид возвращаемого результата: | |||
<pre> | |||
<response> | |||
<code>Числовой код результата</code> | |||
<descr>Строковое описание результата</descr> | |||
<data>Дополнительная информация</data> | |||
</response> | |||
</pre> | |||
Существуют общие для всех запросов коды результатов: | |||
{| | |||
! Код | |||
! Описание | |||
|- | |- | ||
| | |0 | ||
| | |Успешное выполнение запроса | ||
|- | |- | ||
| | |1 | ||
| | |Неизвестная ошибка | ||
|- | |- | ||
| | |2 | ||
| | |Неизвестный тип API | ||
|- | |- | ||
| | |3 | ||
| | |API отключено в настройках модуля TM API в Такси-Мастер | ||
|- | |- | ||
| | |4 | ||
| | |Не совпадает секретный ключ | ||
|- | |- | ||
| | |5 | ||
| | |Неподдерживаемая версия API | ||
|- | |- | ||
| | |6 | ||
| | |Неизвестное название запроса | ||
|- | |- | ||
| | |7 | ||
| | |Неверный тип запроса GET | ||
|- | |- | ||
| | |8 | ||
| | |Не хватает входного параметра (в доп. информации ответа будет название отсутствующего параметра) | ||
|- | |- | ||
| | |9 | ||
| | |Некорректный входной параметр (в доп. информации ответа будет название некорректного параметра) | ||
|- | |- | ||
| | |10 | ||
| | |Внутренняя ошибка обработки запроса | ||
| | |} | ||
=== Описание запросов === | |||
| | ==== Запрос информации по номеру телефона ==== | ||
Метод: GET | |||
Название запроса: get_info_by_phone | |||
Параметры: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |- | ||
| | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |PHONE | ||
| | |Строка, <= 16 символов | ||
| | |Номер телефона | ||
|- | |- | ||
| | |FIELDS | ||
| | |Строка | ||
| | |Список полей, которые необходимо вернуть. Поля перечисляются через символ ''"-"'' | ||
|- | |- | ||
| | |signature | ||
| | |Строка | ||
| | |Поле для проверки секретного ключа. | ||
|} | |||
Специальные возвращаемые коды: нет | |||
Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields. | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |- | ||
| | |PHONE_TYPE | ||
| | |Целое | ||
| | |Тип телефона звонящего | ||
(1 - если звонит водитель; 2 - если звонит физическое лицо; 3 - если звонит юридическое лицо; 4 - если звонит номер из справочника Телефоны; 0 - неизвестный номер) | |||
|- | |- | ||
| | |PHONE_TO_DIAL | ||
| | |Строка, <= 16 символов | ||
| | |Номер телефона для отзвона по заказу | ||
|- | |- | ||
| | |CREW_ID | ||
| | |Целое | ||
| | |ИД экипажа | ||
|- | |- | ||
| | |IS_PRIOR | ||
| | |true или false | ||
| | |Признак предварительного заказа | ||
|- | |- | ||
| | |ORDER_CLIENT_ID | ||
|Целое | |Целое | ||
| | |ИД клиента из заказа | ||
|- | |- | ||
| | |DRIVER_PHONE | ||
| | |Строка, <= 16 символов | ||
| | |Номер телефона водителя | ||
|- | |- | ||
| | |CREW_SYSTEMSTATE | ||
|Целое | |Целое | ||
| | |Состояние экипажа | ||
|- | |- | ||
| | |CLIENT_ID | ||
| | |Целое | ||
| | |ИД клиента | ||
|- | |- | ||
| | |CLIENT_TYPE | ||
| | |Целое | ||
| | |Тип клиента | ||
|- | |- | ||
| | |CATEGORYID | ||
| | |Целое | ||
| | |ИД категории телефона | ||
|- | |- | ||
| | |PHONE_SYSTEM_CATEGORY | ||
|0 | |Целое | ||
|Системное значение категории телефона (0 - обычный, 1 - черный, 2 - белый, 3 - серый) | |||
|- | |- | ||
| | |ORDER_ID | ||
| | |Целое | ||
| | |ИД заказа | ||
|- | |- | ||
| | |DRIVER_ID | ||
| | |Целое | ||
| | |ИД водителя | ||
|- | |- | ||
| | |ORDER_STATE | ||
| | |Целое | ||
| | |Состояние заказа | ||
|- | |- | ||
| | |DRIVER_REMAINDER | ||
| | |Дробное | ||
| | |Баланс счета водителя | ||
|- | |- | ||
| | |DISCOUNTEDSUMM | ||
| | |Строка | ||
| | |Сумма заказа с учетом всех скидок | ||
|- | |- | ||
| | |CREW_GROUP_ID | ||
| | |Целое | ||
| | |ИД группы экипажа | ||
|- | |- | ||
| | |FIRST_CREW_GROUP_ID | ||
| | |Целое | ||
| | |ИД первой группы экипажа | ||
|- | |- | ||
| | |CLIENT_BALANCE | ||
| | |Дробное | ||
| | |Баланс клиента | ||
|- | |- | ||
| | |DRIVER_TIMECOUNT | ||
| | |Целое | ||
| | |Время пути водителя до адреса подачи (в минутах) | ||
|- | |- | ||
| | |SOURCE_TIMECOUNT | ||
|Целое | |Целое | ||
| | |Время оставшееся до подачи (в минутах) | ||
|- | |- | ||
| | |SOUND_COLOR | ||
| | |Строка | ||
| | |Запись с информацией о цвете | ||
|- | |- | ||
| | |SOUND_MARK | ||
| | |Строка | ||
| | |Запись с информацией о марке автомобиля | ||
|- | |- | ||
| | |GOSNUMBER | ||
| | |Строка | ||
| | |Государственный номер автомобиля | ||
|- | |- | ||
| | |CAR_COLOR | ||
| | |Строка | ||
| | |Цвет автомобиля | ||
|- | |- | ||
| | |CAR_MARK | ||
| | |Строка | ||
| | |Марка автомобиля | ||
|- | |- | ||
| | |ORDER_COORDS | ||
| | |Строка | ||
| | |Координаты места подачи | ||
|- | |||
|CREW_COORDS | |||
|Строка | |||
|Координаты назначенного экипажа | |||
|- | |- | ||
| | |MARKET_TYPE | ||
| | |Целое | ||
|Тип биржи заказов (2 — Яндекс, 3 — ЦОЗ). | |||
|- | |- | ||
| | |ORDERS_COUNT | ||
|Целое | |Целое | ||
| | |Для телефона клиента — количество текущих и предварительных заказов по телефону; для телефона водителя — количество текущих заказов, на которые назначен данный водитель | ||
|- | |- | ||
| | |CLIENT_GROUP_ID | ||
|Целое | |Целое | ||
| | |ИД группы клиента | ||
|- | |||
|CLIENT_BONUS_BALANCE | |||
|Дробное | |||
|Бонусный баланс клиента | |||
|- | |||
|AD_LIGHTHOUSE | |||
|Строка | |||
|Признак наличия шашек. Пустая строка – номер клиента или водителя без экипажа. 1 – есть шашки, 0 – нет шашек. | |||
|- | |- | ||
| | |CREW_STATE | ||
|Целое | |Целое | ||
| | |Состояние экипажа. | ||
|- | |||
|SOURCE_TIME | |||
|ГГГГММДДччммсс | |||
|Дата и время подачи | |||
|- | |||
|DRV_SHIFT_START_TIME | |||
|ГГГГММДДччммсс | |||
|Начало фактической смены водителя | |||
|- | |||
|START_USER_SIP_ACCOUNTS | |||
|Строка | |||
|Список логинов SIP–аккаунтов пользователя, принявшего заказ | |||
|- | |||
|CREATION_WAY | |||
|Строка | |||
|Способ создания заказа (operator, sms, market, common_api, t_api, taxophone, driver, daily_order, unknown) | |||
|} | |} | ||
Пример: | |||
<pre> | |||
Запрос: | |||
GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565l&fields=PHONE_TYPE-PHONE_ | |||
TO_DIAL-CREW_ID-ORDER_ID&signature=d35ab2765f2968d48c096d5f5327db26 HTTP/1.1 | |||
Ответ: | |||
Ответ: | |||
<response> | <response> | ||
| Строка 5437: | Строка 5599: | ||
<descr>OK</descr> | <descr>OK</descr> | ||
<data> | <data> | ||
< | <PHONE_TYPE>0</PHONE_TYPE> | ||
<PHONE_TO_DIAL></PHONE_TO_DIAL> | |||
<CREW_ID>3</CREW_ID> | |||
<ORDER_ID>6</ORDER_ID> | |||
<SOURCE_TIME>20140929134911</SOURCE_TIME> | |||
<DRV_SHIFT_START_TIME>20141007105050</DRV_SHIFT_START_TIME> | |||
</data> | </data> | ||
</response> | </response> | ||
</pre> | </pre> | ||
==== | ==== Запрос информации по ИД заказа ==== | ||
Метод: | |||
Метод: GET | |||
Название запроса: | Название запроса: get_info_by_order_id | ||
Параметры: | Параметры: | ||
| Строка 5456: | Строка 5624: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |ORDER_ID | ||
|Целое | |Целое | ||
|ИД | |ИД заказа | ||
|- | |- | ||
| | |FIELDS | ||
|Строка | |Строка | ||
| | |Список полей, которые необходимо вернуть. Поля перечисляются через символ ''"-"'' | ||
|- | |- | ||
|signature | |signature | ||
|Строка | |Строка | ||
|Поле для проверки секретного ключа | |Поле для проверки секретного ключа | ||
|} | |} | ||
| Строка 5475: | Строка 5639: | ||
Специальные возвращаемые коды: нет | Специальные возвращаемые коды: нет | ||
Возвращаемые данные в случае успешного выполнения запроса: | Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields. | ||
{| | {| | ||
| Строка 5482: | Строка 5646: | ||
!Описание | !Описание | ||
|- | |- | ||
| | |DRIVER_TIMECOUNT | ||
|Строка, <= 16 символов | |||
|Время до подачи в минутах, указанное водителем | |||
|- | |||
|SOUND_COLOR | |||
|Строка | |||
|Запись с информацией о цвете | |||
|- | |||
|CAR_MARK | |||
|Строка | |||
|Марка автомобиля | |||
|- | |||
|CAR_COLOR | |||
|Строка | |||
|Цвет автомобиля | |||
|- | |||
|GOSNUMBER | |||
|Строка | |||
|Государственный номер автомобиля | |||
|- | |||
|SOUND_MARK | |||
|Строка | |||
|Запись с информацией о марке автомобиля | |||
|- | |||
|CREW_GROUP_ID | |||
|Целое | |Целое | ||
|ИД | |ИД группы экипажа | ||
|- | |||
|FIRST_CREW_GROUP_ID | |||
|Целое | |||
|ИД первой группы экипажа | |||
|- | |- | ||
| | |IS_PRIOR | ||
| | |true или false | ||
| | |Признак предварительного заказа | ||
|- | |- | ||
| | |DISCOUNTEDSUMM | ||
| | |Строка | ||
| | |Сумма заказа с учетом всех скидок | ||
|- | |- | ||
| | |DRIVER_PHONE | ||
|Строка, <= | |Строка, <= 16 символов | ||
| | |Номер телефона водителя | ||
|- | |||
|CATEGORYID | |||
|Целое | |||
|ИД категории телефона | |||
|- | |||
|SOURCE_TIMECOUNT | |||
|Целое | |||
|Время до подачи в минутах | |||
|- | |||
|ORDER_COORDS | |||
|Строка | |||
|Координаты места подачи | |||
|- | |||
|CREW_COORDS | |||
|Строка | |||
|Координаты назначенного экипажа | |||
|- | |||
|ORDER_STATE | |||
|Целое | |||
|ИД состояния заказа | |||
|- | |||
|MARKET_TYPE | |||
|Целое | |||
|Тип биржи заказов (2 — Яндекс, 3 — ЦОЗ). | |||
|- | |||
|AD_LIGHTHOUSE | |||
|Строка | |||
|Признак наличия шашек (1 – шашки есть, 0 – шашек нет). | |||
|- | |||
|CREW_STATE | |||
|Целое | |||
|Состояние экипажа. | |||
|- | |||
|SOURCE_TIME | |||
|ГГГГММДДччммсс | |||
|Дата и время подачи | |||
|- | |||
|START_USER_SIP_ACCOUNTS | |||
|Строка | |||
|Список логинов SIP–аккаунтов пользователя, принявшего заказ | |||
|- | |||
|ORDER_PARAMS | |||
|Целое | |||
|Список ИД параметров заказа | |||
|- | |||
|CREATION_WAY | |||
|Строка | |||
|Способ создания заказа (operator, sms, market, common_api, t_api, taxophone, driver, daily_order, unknown) | |||
|} | |} | ||
Пример: | Пример: | ||
| Строка 5504: | Строка 5743: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/tm_tapi/1.0/get_info_by_order_id?order_id=60&fields=DRIVER_SOURCETIME-MARKCOLOR- | |||
GOSNUMBER-IS_PRIOR-MOBILE_PHONE-SOURCE_TIME&signature=fdcd04e570443b56176b83f44748dc23 | |||
HTTP/1.1 | |||
Ответ: | Ответ: | ||
| Строка 5517: | Строка 5754: | ||
<descr>OK</descr> | <descr>OK</descr> | ||
<data> | <data> | ||
< | <DRIVER_SOURCETIME></DRIVER_SOURCETIME> | ||
< | <MARK></MARK> | ||
< | <COLOR></COLOR> | ||
< | <GOSNUMBER></GOSNUMBER> | ||
<IS_PRIOR></IS_PRIOR> | |||
<MOBILE_PHONE></MOBILE_PHONE> | |||
<SOURCE_TIME>20140929134911</SOURCE_TIME> | |||
</data> | </data> | ||
</response> | </response> | ||
</pre> | </pre> | ||
==== Смена состояния заказа | ==== Смена состояния заказа ==== | ||
Метод: POST | Метод: POST | ||
Название запроса: | Название запроса: change_order_state | ||
Параметры: | Параметры: | ||
| Строка 5539: | Строка 5779: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
|ORDER_ID | |||
|Целое | |||
|ORDER_ID | |||
|Целое | |||
|ИД заказа | |ИД заказа | ||
|- | |- | ||
| | |NEED_STATE | ||
|Целое | |Целое | ||
| | |Новое состояние заказа | ||
|- | |- | ||
|signature | |signature | ||
|Строка | |Строка | ||
|Поле для проверки секретного ключа | |Поле для проверки секретного ключа | ||
|} | |} | ||
Специальные возвращаемые коды: | Специальные возвращаемые коды: | ||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Заказ с таким ИД не найден | |||
|- | |||
|101 | |||
|Изменение состояния не соответствует необходимым условиям | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|ORDER_ID | |||
|Целое | |||
|ИД созданного заказа | |||
|- | |||
|NEW_STATE | |||
|Целое | |||
|Новое состояние заказа | |||
|} | |||
Пример: | Пример: | ||
| Строка 5571: | Строка 5825: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
POST https://ip:port/tm_tapi/1.0/ | |||
POST https://ip:port/tm_tapi/1.0/change_order_state HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | Content-Type: application/x-www-form-urlencoded | ||
Content-Length: 71 | Content-Length: 71 | ||
order_id=18561&need_state=14&signature=3e8107e0c044e55d983db1fbed82fd8c | |||
Ответ: | Ответ: | ||
<response> | <response> | ||
<code>0</code> | |||
<descr>OK</descr> | |||
<data> | |||
<ORDER_ID>18561</ORDER_ID> | |||
<NEW_STATE>14</NEW_STATE> | |||
</data> | |||
</response> | </response> | ||
</pre> | </pre> | ||
==== | ==== Запись пути к файлу разговора в базу данных ==== | ||
Метод: POST | Метод: POST | ||
Название запроса: | Название запроса: create_record_link | ||
Параметры: | Параметры: | ||
| Строка 5599: | Строка 5859: | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
| | |RECORD_DATE | ||
|Целое | |ДДММГГГГччммсс | ||
| | |Дата записи | ||
|- | |||
|RECORD_LENGTH | |||
|Целое | |||
|Продолжительность записи (в секундах) | |||
|- | |- | ||
|signature | |CALL_ID | ||
|Строка | |Строка, <= 60 символов | ||
|Поле для проверки секретного ключа | |ИД звонка (необязателен, если указан PHONE) | ||
|} | |- | ||
|PHONE | |||
|Строка, <= 16 символов | |||
|Номер телефона (необязателен, если указан CALL_ID) | |||
|- | |||
|FILE_PATH | |||
|Строка, <=255 символов | |||
|Путь к файлу записи | |||
|- | |||
|CALL_TYPE | |||
|0 или 1 | |||
|0 — Исходящий, 1 — Входящий | |||
|- | |||
|signature | |||
|Строка | |||
|Поле для проверки секретного ключа | |||
|} | |||
Специальные возвращаемые коды: нет. | |||
Возвращаемые данные в случае успешного выполнения запроса | |||
{| | {| | ||
! | !Параметр | ||
!Тип | |||
!Описание | !Описание | ||
|- | |- | ||
| | |RECORD_ID | ||
| | |Целое | ||
| | |ИД созданной записи | ||
|} | |} | ||
Пример: | Пример: | ||
| Строка 5627: | Строка 5907: | ||
Запрос: | Запрос: | ||
POST https://ip:port/tm_tapi/1.0/ | POST https://ip:port/tm_tapi/1.0/create_record_link HTTP/1.1 | ||
Content-Type: application/x-www-form-urlencoded | Content-Type: application/x-www-form-urlencoded | ||
Content-Length: | Content-Length: 185 | ||
RECORD_DATE=20130122180949&RECORD_LENGTH=215&CALL_ID=12345&PHONE=8987564&FILE_PATH=d%3A%5Ctemp%5CTM | |||
%5Ctrunk%5CSource%5CDevUtils%5CTMAPITest%5C&CALL_TYPE=1&signature=56851c4e8d2d4bb9ba615615f76ad7f7 | |||
Ответ: | Ответ: | ||
<response> | <response> | ||
<code>0</code> | |||
<descr>OK</descr> | |||
<data> | |||
<RECORD_ID>25</RECORD_ID> | |||
</data> | |||
</response> | </response> | ||
</pre> | </pre> | ||
==== Создать новый заказ ==== | |||
Метод: POST | Метод: POST | ||
Название запроса: | Название запроса: make_new_order | ||
Параметры: | Параметры: | ||
| Строка 5656: | Строка 5938: | ||
|- | |- | ||
!colspan="3"|Обязательные параметры | !colspan="3"|Обязательные параметры | ||
|- | |- | ||
|dnd | |PHONE | ||
|Строка | |Строка, <= 16 символов | ||
|0 или 1 | |Номер телефона | ||
|- | |- | ||
|user_login | |ORDER_STATE_ID | ||
|Строка | |Целое | ||
|Логин пользователя ТМ | |ИД состояния заказа | ||
|- | |- | ||
|lines | |signature | ||
|Строка | |Строка | ||
|<nowiki>Список линий, разделенных символом «|».</nowiki> | |Поле для проверки секретного ключа | ||
|- | |- | ||
|signature | !colspan="3"|Необязательные параметры | ||
|Строка | |- | ||
|Поле для проверки секретного ключа. | |CREWGROUPID | ||
|} | |Целое | ||
|ИД группы экипажа | |||
Специальные возвращаемые коды: | |- | ||
{| | |TARIF_ID | ||
!Код | |Целое | ||
!Описание | |ИД тарифа | ||
|- | |- | ||
|100 | |DISCOUNTEDSUMM | ||
|Пользователь с таким логином или линиями не найден. | |Дробное | ||
|Фиксированная сумма за заказ | |||
|- | |||
|CUSTOMER | |||
|Строка, <=80 символов | |||
|Заказчик | |||
|- | |||
|SOURCE | |||
|Строка, <=80 символов | |||
|Адрес подачи | |||
|- | |||
|SOURCE_STREET | |||
|Целое | |||
|ИД улицы подачи | |||
|- | |||
|SOURCE_HOUSE | |||
|Строка, <=10 символов | |||
|Дом подачи | |||
|- | |||
|SOURCE_FLAT | |||
|Строка, <=10 символов | |||
|Квартира подачи | |||
|- | |||
|SOURCE_POINT | |||
|Целое | |||
|ИД пункта подачи | |||
|- | |||
|DESTINATION | |||
|Строка, <=80 символов | |||
|Адрес назначения | |||
|- | |||
|DESTINATION_STREET | |||
|Целое | |||
|ИД улицы назначения | |||
|- | |||
|DESTINATION_HOUSE | |||
|Строка, <=10 символов | |||
|Дом назначения | |||
|- | |||
|DESTINATION_FLAT | |||
|Строка, <=10 символов | |||
|Квартира назначения | |||
|- | |||
|DESTINATION_POINT | |||
|Целое | |||
|ИД пункта назначения | |||
|- | |||
|CREWID | |||
|Целое | |||
|ИД экипажа | |||
|- | |||
|SUMM | |||
|Дробное | |||
|Стоимость заказа без учета скидок (наценок) | |||
|- | |||
|STARTUSER | |||
|Целое | |||
|Пользователь, создавший заказ | |||
|- | |||
|STARTTIME | |||
|ГГГГММДДччммсс | |||
|Дата создания заказа | |||
|- | |||
|FINISHUSER | |||
|Целое | |||
|Пользователь, завершивший заказ | |||
|- | |||
|FINISHTIME | |||
|ГГГГММДДччммсс | |||
|Дата завершения заказа | |||
|- | |||
|SOURCE_ZONE | |||
|Целое | |||
|Район подачи | |||
|- | |||
|DESTINATION_ZONE | |||
|Целое | |||
|Район назначения | |||
|- | |||
|SOURCE_PARKING | |||
|Целое | |||
|Стоянка подачи | |||
|- | |||
|DESTINATION_PARKING | |||
|Целое | |||
|Стоянка назначения | |||
|- | |||
|SOURCE_TIME | |||
|ГГГГММДДччммсс | |||
|Дата подачи | |||
|- | |||
|SOURCE_COUNTRY | |||
|0 или 1 (false или true) | |||
|Признак междугороднего заказа | |||
|- | |||
|IS_PRIOR | |||
|0 или 1 (false или true) | |||
|Признак предварительного заказа | |||
|- | |||
|PRIZE | |||
|0 или 1 (false или true) | |||
|Признак призового заказа | |||
|- | |||
|NOTE | |||
|Строка, <=80 символов | |||
|Примечание | |||
|- | |||
|BONUSPOINT | |||
|Дробное | |||
|Бонусные баллы, начисленные водителю за заказ | |||
|- | |||
|DISTANCE | |||
|Дробное | |||
|Километраж по городу (в километрах) | |||
|- | |||
|HOURLY_LEN | |||
|Целое | |||
|Длительность исполнения почасового заказа (в минутах) | |||
|- | |||
|HOURLY_START | |||
|ГГГГММДДччммсс | |||
|Дата начала отсчета при почасовом заказе | |||
|- | |||
|HOURLY_PAY | |||
|0 или 1 (false или true) | |||
|Признак почасового заказа | |||
|- | |||
|PHONE_TO_DIAL | |||
|Строка, <=16 символов | |||
|Номер телефона для отзвона по заказу | |||
|- | |||
|FROMBORDER | |||
|0 или 1 (false или true) | |||
|Признак заказа "с бордюра" | |||
|- | |||
|WAITING_START | |||
|ГГГГММДДччммсс | |||
|Дата начала ожидания заказчика водителем | |||
|- | |||
|WAITING_LENGTH | |||
|Целое | |||
|Общая длина периода ожидания заказчика водителем (в минутах) | |||
|- | |||
|BACKFREE | |||
|Целое | |||
|Признак применения скидки в 50% на обратный путь | |||
|- | |||
|INPUTTIME | |||
|ГГГГММДДччммсс | |||
|Дата принятия заказа (от даты создания заказа отличается тем, что может быть задана пользователем) | |||
|- | |||
|MONEY_RECEIVE | |||
|0 или 1 (false или true) | |||
|Подтверждение принятия денег наличными | |||
|- | |||
|NOTIFY_BEFORE | |||
|Целое | |||
|Период времени, за который пользователь оповещается о наступлении даты подачи | |||
|- | |||
|WANTCREWID | |||
|Целое | |||
|ИД желаемого экипажа | |||
|- | |||
|DISTANCE_COUNTRY | |||
|Дробное | |||
|Километраж за границами города (в километрах) | |||
|- | |||
|DISTANCE_CHECK | |||
|0 или 1 (false или true) | |||
|Разрешение ручного ввода километража | |||
|- | |||
|CLIENTID | |||
|Целое | |||
|ИД постоянного клиента | |||
|- | |||
|INFRA_STATE | |||
|Целое | |||
|Состояние заявки в исходящей кампании колцентра INFRA (1 - заявка передана в исходящую компанию, 2 - отзвон успешно произведен, 3 - занято, 4 - не берут трубку) | |||
|- | |||
|INFRA_ORDER | |||
|Целое | |||
|INFRA-заказ (спец. поле для работы с колцентром компании Инфрател) | |||
|} | |||
Специальные возвращаемые коды: нет | |||
Возвращаемые данные в случае успешного выполнения запроса | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|ORDER_ID | |||
|Целое | |||
|ИД созданного заказа | |||
|} | |||
Пример: | |||
<pre> | |||
Запрос: | |||
POST https://ip:port/tm_tapi/1.0/make_new_order HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: 206 | |||
PHONE=89058770593&ORDER_STATE_ID=10&DISCOUNTED_SUMM=100&signature=afc947f610eba380df6d0e441b03ddad | |||
Ответ: | |||
<response> | |||
<code>0</code> | |||
<descr>OK</descr> | |||
<data> | |||
<order_id>27</order_id> | |||
</data> | |||
</response> | |||
</pre> | |||
==== Поиск улицы в базе ==== | |||
Метод: POST | |||
Название запроса: street_search | |||
Параметры: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
!colspan="3"|Обязательные параметры | |||
|- | |||
|PHONE | |||
|Строка, <= 16 символов | |||
|Номер телефона | |||
|- | |||
|CALL_ID | |||
|Целое | |||
|ИД звонка | |||
|- | |||
|VOICE_STREET | |||
|Строка, <= 60 символов | |||
|Название улицы или пункта, полученное через преобразование голоса в текст | |||
|- | |||
|signature | |||
|Строка | |||
|Поле для проверки секретного ключа | |||
|} | |||
Специальные возвращаемые коды: нет | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|CALL_ID | |||
|Целое | |||
|ИД звонка | |||
|- | |||
|PHONE | |||
|Строка, <= 16 символов | |||
|Номер телефона | |||
|- | |||
|STREET_FOUND | |||
|0 или 1 (false или true) | |||
|Признак того, что улица найдена | |||
|- | |||
|STREET_NAME | |||
|Строка, <= 60 символов | |||
|Наименование улицы или пункта, найденное в базе данных | |||
|} | |||
Пример: | |||
<pre> | |||
Запрос: | |||
POST https://ip:port/tm_tapi/1.0/new_order_by_voice HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: 175 | |||
PHONE=89058770593&CALL_ID=56&VOICE_STREET=пушкинск&FIND_STREET=0&API_FIND_STREET=&NUM_HOUSE=&signat | |||
ure=9204a53e0f4842bb623c3a5f7683520a | |||
Ответ: | |||
<response> | |||
<code>0</code> | |||
<descr>OK</descr> | |||
<data> | |||
<CALL_ID>56</CALL_ID> | |||
<PHONE>89058770593</PHONE> | |||
<FIND_STREET>1</FIND_STREET> | |||
<API_FIND_STREET>Пушкинская</API_FIND_STREET> | |||
</data> | |||
</response> | |||
</pre> | |||
==== Смена состояния заказа по результату автодозвона ==== | |||
Метод: POST | |||
Название запроса: set_request_state | |||
Параметры: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
!colspan="3"|Обязательные параметры | |||
|- | |||
|STATE_ID | |||
|Целое | |||
|Cостояние заказа до отзвона | |||
|- | |||
|PHONE_TYPE | |||
|0 или 1 | |||
|Признак, указывающий кому был совершен звонок (0 - водителю, 1 - клиенту) | |||
|- | |||
|ORDER_ID | |||
|Целое | |||
|ИД заказа | |||
|- | |||
|STATE | |||
|Целое (2, 3, 4, 5) | |||
|Состояние отзвона | |||
|- | |||
|signature | |||
|Строка | |||
|Поле для проверки секретного ключа | |||
|} | |||
Специальные возвращаемые коды: нет | |||
Возвращаемые данные в случае успешного выполнения запроса: нет | |||
Настройки смены состояний заказа с использованием автодозвона задаются в карточке | |||
состояний заказа. | |||
Пример: | |||
<pre> | |||
Запрос: | |||
POST https://ip:port/tm_tapi/1.0/set_request_state HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: 71 | |||
state_id=7&phone_type=1&order_id=50&state=4&signature=0eb50db401d3540e038fde68eb260333 | |||
Ответ: | |||
<response> | |||
<code>0</code> | |||
<descr>OK</descr> | |||
</response> | |||
</pre> | |||
==== Соединить клиента и водителя ==== | |||
Метод: POST | |||
Название запроса: connect_client_and_driver | |||
Параметры: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
!colspan="3"|Обязательные параметры | |||
|- | |||
|order_id | |||
|Целое | |||
|ИД заказа | |||
|- | |||
|signature | |||
|Строка | |||
|Поле для проверки секретного ключа | |||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Не найден заказ с таким ИД | |||
|- | |||
|102 | |||
|Не найдена биржа заказа у данного заказа | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: нет | |||
Пример: | |||
<pre> | |||
Запрос: | |||
POST https://ip:port/tm_tapi/1.0/connect_client_and_driver HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: 53 | |||
order_id=13&signature=6a4b16da44a495b67eb7af11d51954d4 | |||
Ответ: | |||
<response> | |||
<code>102</code> | |||
<descr>Market not found by OrderId</descr> | |||
</response> | |||
</pre> | |||
==== Количество свободных экипажей на линии ==== | |||
Метод: GET | |||
Название запроса: get_free_crews_count | |||
Параметры: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
!colspan="3"|Обязательные параметры | |||
|- | |||
|signature | |||
|Строка | |||
|Поле для проверки секретного ключа. | |||
|- | |||
!colspan="3"|Необязательные параметры | |||
|- | |||
|crew_group_id | |||
|Целое | |||
|ИД группы экипажа предполагаемого заказа. | |||
|- | |||
|uds_id | |||
|Целое | |||
|ИД службы ЕДС предполагаемого заказа. | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|COUNT | |||
|Целое | |||
|Количество свободных экипажей на линии | |||
|} | |||
Пример: | |||
<pre> | |||
Запрос: | |||
GET https://ip:port/tm_tapi/1.0/get_free_crews_count? | |||
crew_group_id=1&uds_id=1&signature=88ca2091061c3e90123275f2c5df55a6 HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | |||
Ответ: | |||
<response> | |||
<code>0</code> | |||
<descr>OK</descr> | |||
<data> | |||
<COUNT>5</COUNT> | |||
</data> | |||
</response> | |||
</pre> | |||
==== Запрос пользователя по логину софтфона ==== | |||
Метод: GET | |||
Название запроса: get_user_by_sip_login | |||
Параметры: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
!colspan="3"|Обязательные параметры | |||
|- | |||
|signature | |||
|Строка | |||
|Поле для проверки секретного ключа. | |||
|- | |||
|login | |||
|Строка | |||
|Логин SIP-аккаунта. | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|ID | |||
|Целое | |||
|ИД пользователя, который использует указанный логин SIP-аккаунта софтфона в данный момент. | |||
|- | |||
|NAME | |||
|Строка | |||
|Имя пользователя, который использует указанный логин SIP-аккаунта софтфона в данный момент. | |||
|} | |||
Пример: | |||
<pre> | |||
Запрос: | |||
GET https://ip:port/tm_tapi/1.0/get_user_by_sip_login? | |||
login=LOGIN&signature=9b06455cdfe933e7af12a35a70e9b1c6 HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | |||
Ответ: | |||
<response> | |||
<code>0</code> | |||
<descr>OK</descr> | |||
<data> | |||
<ID>1</ID> | |||
<NAME>ADMINISTRATOR</NAME> | |||
</data> | |||
</response> | |||
</pre> | |||
==== Установить режим «Перерыв» для линий софтфона ==== | |||
Метод: POST | |||
Название запроса: set_sip_account_dnd_mode | |||
Параметры: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
!colspan="3"|Обязательные параметры | |||
|- | |||
|dnd | |||
|Строка | |||
|0 или 1 | |||
|- | |||
|user_login | |||
|Строка | |||
|Логин пользователя ТМ | |||
|- | |||
|lines | |||
|Строка | |||
|<nowiki>Список линий, разделенных символом «|».</nowiki> | |||
|- | |||
|signature | |||
|Строка | |||
|Поле для проверки секретного ключа. | |||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Пользователь с таким логином или линиями не найден. | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: нет | |||
Пример: | |||
<pre> | |||
Запрос: | |||
POST https://ip:port/tm_tapi/1.0/set_sip_account_dnd_mode HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: 66 | |||
dnd=1&user_login=USER&lines=101%7C102&signature=3e8107e0c044e55d983db1fbed82fd8c | |||
Ответ: | |||
<response> | |||
<code>0</code> | |||
<descr>OK</descr> | |||
</response> | |||
</pre> | |||
=== Запрос телефонов водителя по позывному экипажа === | |||
Метод: GET | |||
Название запроса: get_driver_phones_by_crew_code | |||
Параметры: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
!colspan="3"|Обязательные параметры | |||
|- | |||
|crew_code | |||
|Строка | |||
|Позывной экипажа | |||
|} | |||
Специальные возвращаемые коды: | |||
{| | |||
!Код | |||
!Описание | |||
|- | |||
|100 | |||
|Водитель не найден | |||
|} | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|mobile_phone | |||
|Строка | |||
|Сотовый телефон водителя | |||
|- | |||
|home_phone | |||
|Строка | |||
|Домашний телефон водителя | |||
|} | |||
Пример: | |||
<pre> | |||
Запрос: | |||
GET https://ip:port/tm_tapi/1.0/get_driver_phones_by_crew_code? | |||
crew_code=CODE&signature=6f03bc45d3aa17f7738672180a3ee5de HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | |||
Ответ: | |||
<response> | |||
<code>0</code> | |||
<descr>OK</descr> | |||
<data> | |||
<mobile_phone>123456789</mobile_phone> | |||
<home_phone>987654321</home_phone> | |||
</data> | |||
</response> | |||
</pre> | |||
=== Запрос информации о ключе защиты === | |||
Метод: GET | |||
Название запроса: get_key_info | |||
Параметры: нет. | |||
Специальные возвращаемые коды: нет. | |||
Возвращаемые данные в случае успешного выполнения запроса: | |||
{| | |||
!Параметр | |||
!Тип | |||
!Описание | |||
|- | |||
|company_name | |||
|Строка | |||
|Наименование организации | |||
|- | |||
|company_id | |||
|Целое | |||
|ИД организации | |||
|- | |||
|tm_server_license_count | |||
|Целое | |||
|Количество лицензий для TMServer | |||
|- | |||
|tm_license_count | |||
|Целое | |||
|Количество лицензий для TM2 | |||
|- | |||
|tm_terminal_license_count | |||
|Целое | |||
|Количество лицензий для терминала | |||
|- | |||
|tm_driver_server_license_count | |||
|Целое | |||
|Количество лицензий для TMDriverServer | |||
|- | |||
|tm_driver_license_count | |||
|Целое | |||
|Количество лицензий для водителей | |||
|- | |||
|tm_sms_server_license_count | |||
|Целое | |||
|Количество лицензий для TMSMSServer | |||
|} | |} | ||
Пример: | Пример: | ||
<pre> | <pre> | ||
Запрос: | Запрос: | ||
GET https://ip:port/tm_tapi/1.0/get_key_info HTTP/1.1 | |||
Content-Type: application/x-www-form-urlencoded | Content-Type: application/x-www-form-urlencoded | ||
signature=6f03bc45d3aa17f7738672180a3ee5de | |||
Ответ: | Ответ: | ||
| Строка 5767: | Строка 6685: | ||
<descr>OK</descr> | <descr>OK</descr> | ||
<data> | <data> | ||
< | company_name>ООО БИТ-Мастер</company_name> | ||
< | <company_id>000</company_id> | ||
<tm_server_license_count>1</tm_server_license_count> | |||
<tm_license_count>10</tm_license_count> | |||
<tm_terminal_license_count>1</tm_terminal_license_count> | |||
<tm_driver_server_license_count>1</tm_driver_server_license_count> | |||
<tm_driver_license_count>30</tm_driver_license_count> | |||
<tm_sms_server_license_count>1</tm_sms_server_license_count> | |||
</data> | </data> | ||
</response> | </response> | ||
</pre> | </pre> | ||
Версия от 17:09, 26 мая 2015
TM API - специальный набор инструментов Такси-Мастер, который позволит объединить систему с вашим сайтом и различными полезными сервисами. Он предоставляется вам на свободных условиях.
Благодаря этому набору вы сможете:
- Создать механизм приема заказов через интернет.
- Сделать ваш сайт более информативным: публиковать полезную для клиентов информацию прямо из системы - список ближайших экипажей, предварительный расчет стоимости поездки, мониторинг движения автомобиля такси в процессе выполнения заказа, карты города и контактную информацию.
- Расширить возможности своей службы за счет популярного онлайн-сервиса Яндекс.Такси.
Параметры TM API
Задать настройки для корректной работы TM API вы сможете в программе Такси-Мастер в меню Настройки в одноименной ветке TM API. Параметры организуют и контролируют работу модуля «Интернет-заказы».
- Установите флажок
Использовать TM API, чтобы приступить к его использованию. - В поле Локальный порт введите номер порта подключения к интернету, на котором работает и будет ожидать запросы о новых заказах TMServer. Рекомендуется оставить номер порта по умолчанию.
- Установите флажок
Можно использовать данное рабочее место TMServer для распознавания адресов для того, чтобы конкретно с данного рабочего места происходило распознавание адресов модулем "Интернет-заказы". - Перезапустите Такси-Мастер и TMServer для запуска работы модуля.
Ветка «Открытое API»
В данной ветке регулируется доступ к синхронизации Такси-Мастер со сторонним сервисом (сайтом), с помощью которого клиенты будут создавать интернет-заказы. С примером кода для работы вы можете ознакомиться в данной статье в разделе Общее описание протокола.
- Установите флажок
Использовать открытое API для того, чтобы запустить работу по обслуживанию модуля «Интернет-заказы». При установленном флажке сервер модуля «Интернет-заказы» запускается и ожидает запросы о новых заказах. - В поле Секретный ключ укажите произвольный номер. В дальнейшем этот номер следует использовать в API-запросах на сайте.
- Перезапустите Такси-Мастер и TMServer для запуска работы модуля.
Ветка «API для телефонии»
В данной ветке регулируются настройки API для телефонии, т.е. взаимодействие Такси-Мастер с call-центром через программный интерфейс. С его помощью call-центр может дать команду Такси-Мастер создать заказ или запросить информацию о статусе текущего заказа.
- Установите флажок
Использовать открытое API для телефонии для того, чтобы запустить работу по обслуживанию телефонии через API. - В поле Секретный ключ укажите номер секретного ключа для работы.
- Перезапустите Такси-Мастер и TMServer для запуска работы модуля.
Ветка «Платежные терминалы»
Параметры этой ветки отвечают за работу модуля интеграции с платежными системами.
- Установите флажок
Включить прием терминальных платежей. Данная функция позволит отображать все платежные операции по приходу средств от водителей через терминалы в базе данных программы. - В поле Секретный ключ укажите номер секретного ключа для работы с платежными системами и сверки платежей, который будет выслан вам в письме от менеджера. Секретный ключ - это определенный набор символов, необходимый для формирования подписи при передаче информации о платеже.
- В полях Логин и Пароль введите данные учетной записи на сайте http://term.bitmaster.ru.
- Кнопка Задать всем водителям терминальный аккаунт по их ИД служит для соединения TM API с сервером Такси-Мастер. В результате соединения записи о терминальных аккаунтах генерируются, заносятся (для тех водителей, у которых они отсутствуют) и обновляются (для тех водителей, у которых уже существуют терминальные аккаунты) в Такси-Мастер.
- Перезапустите Такси-Мастер и TMServer для запуска работы модуля.
Общее описание протокола
Формат запроса
TMAPI принимает входящие запросы по протоколу HTTPS. В URI запроса после ip адреса и порта, который будет слушать TM API, должно идти название API (common_api) и версия API. Пример:
GET https://ip:port/common_api/1.0/get_crew_groups_list HTTP/1.1
Для получения данных из БД используются запросы типа GET. Для записи данных в базу данных используются запросы типа POST. В запросе типа GET параметры запроса передаются в URI. Пример:
GET https://ip:port/common_api/1.0/calc_order_cost?tariff_id=1&distance_city=10 HTTP/1.1 Signature: <...>
В запросе типа POST параметры передаются в теле запроса в формате application/x-www-form-urlencoded. Пример:
POST https://ip:port/common_api/1.0/create_order HTTP/1.1 Signature: <...> Content-Type: application/x-www-form-urlencoded Content-Length: 118 phone=89123456789&source=SOURCE&source_time=20120501100000&dest=DEST&customer=CUSTOMER& comment=COMMENT&crew_group_id=1
В любом запросе обязательно должен быть заголовок Signature. В нем передается MD5 хэш, рассчитанный для строки, которая получается сцеплением строки параметров запроса с секретным ключом. Секретный ключ задается в настройках модуля TMWeb в ТМ2. Пример:
Запрос:
GET https://ip:port/common_api/1.0/calc_order_cost?tariff_id=1&distance_city=10 HTTP/1.1
Секретный ключ:
1234567890
Signature = MD5("tariff_id=1&distance_city=10" + "1234567890") = d7b8fb11b5499b64d750b8efe53e2877
Формат ответа
TM API всегда возвращает HTTP код 200 ОК. Результат выполнения запроса содержится в теле ответа в формате JSON. Общий вид возвращаемого результата:
{
"code":<Числовой код результата>,
"descr":"<Строковое описание результата>",
"data":{<Дополнительная информация>}
}
Существуют общие для всех запросов коды результатов:
| Код | Описание |
|---|---|
| 0 | Успешное выполнение запроса |
| 1 | Неизвестная ошибка |
| 2 | Неизвестный тип API |
| 3 | API отключено в настройках модуля TM API в ТМ2 |
| 4 | Не совпадает секретный ключ |
| 5 | Неподдерживаемая версия API |
| 6 | Неизвестное название запроса |
| 7 | Неверный тип запроса GET/POST |
| 8 | Не хватает входного параметра (в доп. информации ответа будет название отсутствующего параметра) |
| 9 | Некорректный входной параметр (в доп. информации ответа будет название некорректного параметра) |
| 10 | Внутренняя ошибка обработки запроса |
Описание запросов
Запрос-пинг
Для данного запроса не проверяется версия API, секретный ключ и тип запроса GET/POST.
Метод: GET или POST
Название запроса: ping
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос:
GET https://ip:port/common_api/1.0/ping HTTP/1.1
Ответ:
{
"code":0,
"descr":"OK",
"data":{}
}
Запрос списка групп экипажей
Метод: GET
Название запроса: get_crew_groups_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| crew_groups | Массив | Список групп экипажей |
| • id | Целое | ИД группы экипажей |
| • name | Строка | Название группы экипажей |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_crew_groups_list HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"crew_groups":[
{
"id":1,
"name":"CREW_GROUP1"
},
{
"id":2,
"name":"CREW_GROUP2"
}
]
}
}
Запрос списка групп клиентов
Метод: GET
Название запроса: get_client_groups_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| client_groups | Массив | Список групп клиентов |
| • id | Целое | ИД группы клиентов |
| • name | Строка | Название группы клиентов |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_client_groups_list HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"client_groups":[
{
"id":1,
"name":"CLIENT_GROUP1"
},
{
"id":2,
"name":"CLIENT_GROUP2"
}
]
}
}
Запрос списка служб ЕДС
Метод: GET
Название запроса: get_uds_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| uds | Массив | Список служб ЕДС |
| • id | Целое | ИД службы ЕДС |
| • name | Строка | Название службы ЕДС |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_uds_list HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"uds":[
{
"id":1,
"name":"UDS1"
},
{
"id":2,
"name":"UDS2"
}
]
}
}
Запрос списка тарифов
Метод: GET
Название запроса: get_tariffs_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| tariffs | Массив | Список тарифов |
| • id | Целое | ИД тарифа |
| • name | Строка | Название тарифа |
| • is_active | true или false | Активный тариф |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_tariffs_list HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"tariffs":[
{
"id":1,
"name":"TARIFF1"
"is_active":true
},
{
"id":2,
"name":"TARIFF2"
"is_active":true
}
]
}
}
Запрос списка услуг
Метод: GET
Название запроса: get_services_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| services | Массив | Список услуг |
| • id | Целое | ИД услуги |
| • name | Строка | Название услуги |
| • sum | Дробное | Абсолютная сумма услуги, руб |
| • percent | Дробное | Процент услуги от стоимости заказа, % |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_services_list HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"services":[
{
"id":1,
"name":"SERVICE1",
"sum":100,
"percent":0
},
{
"id":2,
"name":"SERVICE2"
"sum":0,
"percent":10
}
]
}
}
Запрос списка параметров заказа
Метод: GET
Название запроса: get_order_params_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| order_params | Массив | Список переметров заказа |
| • id | Целое | ИД параметра |
| • name | Строка | Название параметра |
| • sum | Дробное | Абсолютная сумма параметра, руб |
| • percent | Дробное | Процент параметра от стоимости заказа, % |
| • order_access_control | true или falce | Регулирует доступ к заказу |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_order_params_list HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"order_params":[
{
"id":1,
"name":"PARAM1",
"sum":100,
"percent":0,
"order_access_control":true
},
{
"id":2,
"name":"PARAM2",
"sum":0,
"percent":10,
"order_access_control":false
}
]
}
}
Запрос списка скидок
Метод: GET
Название запроса: get_discounts_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| discounts | Массив | Список скидок |
| • id | Целое | ИД скидки |
| • name | Строка | Название скидки |
| • sum | Дробное | Абсолютная сумма скидки, руб |
| • percent | Дробное | Процент скидки от стоимости заказа, % |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_discounts_list HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"discounts":[
{
"id":1,
"name":"DISCOUNT1",
"sum":100,
"percent":0
},
{
"id":2,
"name":"DISCOUNT2"
"sum":0,
"percent":10
}
]
}
}
Создание нового заказа
Метод: POST
Название запроса: create_order
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| phone | Строка, <= 16 символов | Номер телефона |
| source | Строка | Адрес подачи |
| source_time | ГГГГММДДччммсс | Время подачи |
| Необязательные параметры | ||
| dest | Строка | Адрес назначения |
| customer | Строка | Заказчик |
| comment | Строка | Комментарий |
| crew_group_id | Целое | ИД группы экипажей |
| uds_id | Целое | ИД службы ЕДС |
| tariff_id | Целое | ИД тарифа |
| is_prior | true или false | Предварительный заказ |
| source_lon | Дробное | Долгота адреса подачи |
| source_lat | Дробное | Широта адреса подачи |
| dest_lon | Дробное | Долгота адреса назначения |
| dest_lat | Дробное | Широта адреса назначения |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Заказ с такими параметрами уже создан |
| 101 | Тариф не найден |
| 102 | Группа экипажа не найдена |
| 103 | Служба ЕДС не найдена |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| order_id | Целое | ИД созданного заказа |
Пример:
Запрос:
POST https://ip:port/common_api/1.0/create_order HTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: 156
phone=89123456789&source=SOURCE&source_time=20120501100000&dest=DEST&customer=CUSTOMER&
comment=COMMENT&crew_group_id=1&uds_id=1&tariff_id=3&is_prior=false&source_lon=53.147836&source_lat
=56.896817&dest_lon=53.226775&dest_lat=56.845452
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"order_id":12345
}
}
Создание нового заказа 2
Метод: POST
Название запроса: create_order2
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| phone | Строка, <= 16 символов | Номер телефонам (необязателен, если client_id присутствует). |
| client_id | Целое | ИД клиента (необязателен, если phone присутствует). |
| addresses | Массив | Массив адресов. Первый элемент — адрес подачи(обязательно), последний — адрес назначения, между ними — остановки. |
| • address | Строка | Адрес подачи |
| • lat | Дробное | Широта адреса |
| • lon | Дробное | Долгота адреса |
| • zone_id | Целое | ИД района |
| • parking_id | Целое | ИД стоянки |
| source_time | ГГГГММДДччммсс | Время подачи |
| Необязательные параметры | ||
| passenger | Строка | Пассажир |
| customer | Строка | Заказчик |
| comment | Строка | Комментарий |
| crew_group_id | Целое | ИД группы экипажей |
| uds_id | Целое | ИД службы ЕДС |
| tariff_id | Целое | ИД тарифа |
| is_prior | true или false | Предварительный заказ |
| services | Массив | Массив услуг. Устарело. Рекомендуется использовать параметр order_params. |
| • | Целое | ИД услуги |
| crew_props | Массив | Массив признаков экипажей. Устарело. Рекомендуется использовать параметр order_params. |
| • | Целое | ИД признака экипажа |
| order_params | Массив | Массив параметров заказа |
| • | Целое | ИД параметра заказа |
| total_cost | Дробное | Сумма заказа |
| use_cashless | true или false | Оплата по возможности всей суммы заказа с безналичного счета клиента (насколько хватает средств на счете). |
| use_bonus | true или false | Оплата по возможности всей суммы заказа с бонусного счета клиента (насколько хватает средств на бонусном счете). |
| cashless_sum | Дробное | Фиксированная сумма оплаты заказа с безналичного счета клиента (не используется, если use_cashless = true). |
| bonus_sum | Дробное | Фиксированная сумма оплаты заказа с бонусного счета клиента (не используется, если use_bonus = true). |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Заказ с такими параметрами уже создан |
| 101 | Тариф не найден |
| 102 | Группа экипажа не найдена |
| 103 | Служба ЕДС не найдена |
| 104 | Клиент не найден |
| 105 | Район не найден |
| 106 | Стоянка не найдена |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| order_id | Целое | ИД созданного заказа |
Пример:
Запрос:
POST https://ip:port/common_api/1.0/create_order2 HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: 395
{
"source_time":"20140415172811",
"is_prior":false,
"phone":"123456",
"client_id":1,
"customer":"CUSTOMER",
"passenger":"PASSENGER",
"comment":"COMMENT",
"crew_group_id":1,
"uds_id":1,
"tariff_id":1,
"addresses":[
{"address":"SOURCE","lat":56.896817,"lon":53.147830,"zone_id":1,"parking_id":1},
{"address":"STOP1","lat":56.845452,"lon":53.226775,"zone_id":2,"parking_id":2},
{"address":"STOP2"},
{"address":"DESTINATION","lat":56.861230,"lon":53.241870}
],
"services":[1,2],
"crew_props":[1],
"order_params":[3,4],
"total_cost":370,
"use_cashless":false,
"use_bonus":false,
"cashless_sum":700,
"bonus_sum":350
}
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"order_id":1672
}
}
Расчет суммы заказа
Метод: GET
Название запроса: calc_order_cost
Параметры:| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| tariff_id | Целое | ИД тарифа |
| Необязательные параметры | ||
| source_time | ГГГГММДДччммсс | Время подачи |
| is_prior | true или false | Предварительный заказ |
| client_id | Целое | ИД клиента |
| discount_id | Целое | ИД скидки |
| disc_card_id | Целое | ИД дисконтной карты |
| source_zone_id | Целое | ИД района подачи |
| dest_zone_id | Целое | ИД района назначения |
| distance_city | Дробное | Километраж по городу |
| distance_country | Дробное | Километраж за городом |
| source_distance_country | Дробное | Километраж до подачи за городом |
| is_country | true или false | Загородный заказ |
| waiting_minutes | Целое | Время ожидания посадки клиента в минутах |
| is_hourly | true или false | Почасовой заказ |
| hourly_minutes | Целое | Длительность почасового заказа в минутах |
| is_prize | true или false | Призовой заказ |
| back_way | true или false | Обратный путь за городом |
| services | Строка | Список ИД услуг через точку с запятой, пример: «1;2;3»
Устарело. Рекомендуется использовать параметр order_params. |
| order_params | Строка | Список ИД параметров заказа через точку с запятой, пример: «1;2;3» |
| cashless | true или false | Признак безналичного заказа |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Тариф не найден |
| 101 | Ошибка при расчете по тарифу |
| 102 | Скидка не найдена |
| 103 | Клиент не найден |
| 104 | Район подачи не найден |
| 105 | Район назначения не найден |
| 106 | Дисконтная карта не найдена |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| sum | Дробное | Рассчитанная общая сумма заказа |
| info | Массив | Дополнительная информация по расчету суммы заказа |
| • comment | Строка | Описание позиции дополнительной информации по расчету суммы заказа |
| • sum | Строка | Сумма позиции дополнительной информации по расчету суммы заказа |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/calc_order_cost?
tariff_id=1&source_time=20120501100000&is_prior=false&client_id=1&discount_id=1&disc_card_id=1&sour
ce_zone_id=1&dest_zone_id=2&distance_city=10&distance_country=20&source_distance_country=5&is_count
ry=true&waiting_minutes=10&is_hourly=false&hourly_minutes=60&is_prize=true&back_way=false&services=
1;2;3&order_params=1;2;3 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"sum":1000,
"info":[
{
"comment":"SUM1",
"sum":"100"
},
{
"comment":"SUM2",
"sum":"200"
}
]
}
}
Расчет суммы заказа 2
Метод: POST
Название запроса: calc_order_cost2
Параметры:| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| tariff_id | Целое | ИД тарифа |
| Необязательные параметры | ||
| source_time | ГГГГММДДччммсс | Время подачи |
| is_prior | true или false | Предварительный заказ |
| client_id | Целое | ИД клиента |
| discount_id | Целое | ИД скидки |
| disc_card_id | Целое | ИД дисконтной карты |
| source_zone_id | Целое | ИД района подачи |
| dest_zone_id | Целое | ИД района назначения |
| distance_city | Дробное | Километраж по городу |
| distance_country | Дробное | Километраж за городом |
| source_distance_country | Дробное | Километраж до подачи за городом |
| is_country | true или false | Загородный заказ |
| waiting_minutes | Целое | Время ожидания посадки клиента в минутах |
| is_hourly | true или false | Почасовой заказ |
| hourly_minutes | Целое | Длительность почасового заказа в минутах |
| is_prize | true или false | Призовой заказ |
| back_way | true или false | Обратный путь за городом |
| order_params | Массив | Массив параметров заказа |
| • | Целое | ИД параметра заказа |
| cashless | true или false | Признак безналичного заказа |
| stops | Массив | Список остановок |
| • zone_id | Целое | ИД района остановки |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Тариф не найден |
| 101 | Ошибка при расчете по тарифу |
| 102 | Скидка не найдена |
| 103 | Клиент не найден |
| 104 | Район подачи не найден |
| 105 | Район назначения не найден |
| 106 | Дисконтная карта не найдена |
| 107 | Район остановки не найден |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| sum | Дробное | Рассчитанная общая сумма заказа |
| info | Массив | Дополнительная информация по расчету суммы заказа |
| • comment | Строка | Описание позиции дополнительной информации по расчету суммы заказа |
| • sum | Строка | Сумма позиции дополнительной информации по расчету суммы заказа |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/calc_order_cost2 HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>
{
"tariff_id":1,
"source_time":"20140415172811",
"is_prior":false,
"client_id":1,
"discount_id":1,
"disc_card_id":1,
"source_zone_id":1,
"dest_zone_id":2,
"distance_city":10,
"distance_country":20,
"source_distance_country":5,
"is_country":true,
"waiting_minutes":10,
"is_hourly":false,
"hourly_minutes":60,
"is_prize":true,
"back_way":false,
"order_params":[3,4],
"stops": [
{
"zone_id": 1
},
{
"zone_id": 2
}
]
}
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"sum":1000,
"info":[
{
"comment":"SUM1",
"sum":"100"
},
{
"comment":"SUM2",
"sum":"200"
}
]
}
}
Изменение состояния заказа
Метод: POST
Название запроса: change_order_state
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| ORDER_ID | Целое | ИД заказа |
| NEW_STATE | Целое | Новое состояние заказа |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Не найден заказ ИД=ORDER_ID |
| 101 | Не найдено состояние заказа ИД=NEW_STATE |
| 102 | Изменение состояния не соответствует необходимым условиям. |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| ORDER_ID | Целое | ИД заказа |
| NEW_STATE | Целое | Новое состояние заказа |
Пример:
Запрос:
POST https://ip:port/common_api/1.0/calc_order_cost?order_id=6&new_state=4 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"order_id":6,
"new_state":4
}
}
Запрос информации об экипажах
Метод: GET
Название запроса: get_crew_info
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| crew_id | Целое | ИД экипажа |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Экипаж не найден |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| crew_id | Целое | ИД экипажа |
| code | Строка | Позывной экипажа |
| name | Строка | Наименование экипажа |
| driver_id | Целое | ИД водителя |
| car_id | Целое | ИД автомобиля |
| crew_group_id | Целое | ИД группы экипажа |
| crew_state_id | Целое | ИД состояния экипажа |
| online | true или false | Водитель подключен к серверу «Связи с водителями» |
| work_shift_sum | Дробное | Сумма, списываемая за смену |
| min_balance | Дробное | Минимальный баланс, при котором можно выйти на смену |
| common_priority | Целое | Общий приоритет |
| static_priority | Целое | Статический приоритет |
| dynamic_priority | Целое | Динамический приоритет |
| order_change_id | Целое | Индивидуальная сдача с заказа |
| has_light_house | true или false | Шашка |
| has_label | true или false | Наклейка |
| order_params | Массив | Массив параметров заказа экипажа |
| • | Целое | ИД параметра заказа |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_crew_info?crew_id=1 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"crew_id":1,
"code":"123",
"name":"CREW_NAME",
"driver_id":1,
"car_id":1,
"crew_group_id":1,
"crew_state_id":3,
"online":true
"work_shift_sum":0,
"min_balance":10,
"common_priority":0,
"static_priority":0,
"dynamic_priority":0,
"order_change_id":218,
"has_light_house":false,
"has_label":false,
"order_params":[
1,
2,
]
}
}
Запрос информации об экипажах на линии
Метод: GET
Название запроса: get_crews_info
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| crews_info | Массив | Массив экипажей на линии |
| • crew_id | Целое | ИД экипажа |
| • code | Строка | Позывной экипажа |
| • name | Строка | Наименование экипажа |
| • driver_id | Целое | ИД водителя |
| • car_id | Целое | ИД автомобиля |
| • crew_group_id | Целое | ИД группы экипажа |
| • crew_state_id | Целое | ИД состояния экипажа |
| • online | true или false | Водитель подключен к серверу «Связи с водителями» |
| • work_shift_sum | Дробное | Сумма, списываемая за смену |
| • min_balance | Дробное | Минимальный баланс, при котором можно выйти на смену |
| • common_priority | Целое | Общий приоритет |
| • static_priority | Целое | Статический приоритет |
| • dynamic_priority | Целое | Динамический приоритет |
| • order_change_id | Целое | Индивидуальная сдача с заказа |
| • has_light_house | true или false | Шашка |
| • has_label | true или false | Наклейка |
| • has_label | true или false | Наклейка |
| • order_params | Массив | Массив параметров заказа экипажа |
| • order_params | Целое | ИД параметра заказа |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_crews_info HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"crews_info":[
{
"crew_id":1,
"code":"123",
"name":"CREW_NAME1",
"driver_id":1,
"car_id":1,
"crew_group_id":1,
"crew_state_id":3
"online":true,
"work_shift_sum":0,
"min_balance":10,
"common_priority":10,
"static_priority":10,
"dynamic_priority":0,
"order_change_id":0,
"has_light_house":false,
"has_label":false,
"order_params":[
1,
5,
]
},
{
"crew_id":12,
"code":"777",
"name":"CREW_NAME2",
"driver_id":12,
"car_id":12,
"crew_group_id":2
"crew_state_id":1,
"online":false,
"work_shift_sum":0,
"min_balance":10,
"common_priority":15,
"static_priority":15,
"dynamic_priority":0,
"order_change_id":0,
"has_light_house":false,
"has_label":true,
"order_params":[]
}
]
}
}
Запрос информации о водителе
Метод: GET
Название запроса: get_driver_info
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| driver_id | Целое | ИД водителя |
| Необязательные параметры | ||
| need_photo | true или false | Нужна ли фотография водителя |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Водитель не найден |
Возвращаемые параметры в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| driver_id | Целое | ИД водителя |
| name | Строка | ФИО водителя |
| balance | Дробное | Баланс водителя |
| birthday | ДД.ММ.ГГГГ | День рождения водителя |
| car_id | Целое | ИД основного автомобиля водителя |
| license | Строка | Удостоверение водителя |
| home_phone | Строка | Домашний телефон водителя |
| mobile_phone | Строка | Мобильный телефон водителя |
| is_locked | true или false | Водитель заблокирован |
| is_dismissed | true или false | Водитель уволен |
| driver_photo | Base64 | Фото водителя (только если need_photo = true) |
| order_params | Массив | Массив параметров заказа водителя |
| • | Целое | ИД параметра заказа |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_driver_info?driver_id=1&need_photo=false HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"driver_id":1,
"name":"DRIVER_NAME",
"balance":100,
"birthday":"01.01.1980",
"car_id":1,
"license":"1234567890",
"home_phone":"123456",
"mobile_phone":"+79123456789",
"is_locked":false,
"is_dismissed":false,
"order_params":[3,4]
}
}
Запрос списка водителей
Метод: GET
Название запроса: get_drivers_info
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Небязательные параметры | ||
| locked_drivers | true или false | Включить в ответ запроса заблокированных водителей (по умолчанию false) |
| dismissed_drivers | true или false | Включить в ответ запроса уволенных водителей (по умолчанию false) |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| drivers_info | Массив | Массив не удаленных водителей |
| • driver_id | Целое | ИД водителя |
| • name | Строка | ФИО водителя |
| • balance | Дробное | Баланс водителя |
| • birthday | ДД.ММ.ГГГГ | День рождения водителя |
| • car_id | Целое | ИД основного автомобиля водителя |
| • license | Строка | Удостоверение водителя |
| • home_phone | Строка | Домашний телефон водителя |
| • mobile_phone | Строка | Мобильный телефон водителя |
| • is_locked | true или false | Водитель заблокирован |
| • is_dismissed | true или false | Водитель уволен |
| • order_params | Массив | Массив параметров заказа водителя |
| • | Целое | ИД параметра заказа |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_drivers_info HTTP/1.1
Signature: <...>
locked_drivers=true&dismissed_drivers=true
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"drivers_info":[
{
"driver_id":1,
"name":"DRIVER_NAME1",
"balance":100.00,
"birthday":"01.01.1980",
"car_id":1,
"license":"1234567890",
"home_phone":"123456",
"mobile_phone":"+79123456788",
"is_locked":false,
"is_dismissed":false,
"order_params":[3,4]
},
{
"driver_id":2,
"name":"DRIVER_NAME2",
"balance":-50.00,
"birthday":"01.01.1980",
"car_id":2,
"license":"1234567899",
"home_phone":"123457",
"mobile_phone":"+79123456789",
"is_locked":true,
"is_dismissed":true,
"order_params":[5,6]
}
]
}
}
Запрос информации об автомобиле
Метод: GET
Название запроса: get_car_info
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| car_id | Целое | ИД автомобиля |
| Необязательные параметры | ||
| need_photo | true или false | Нужна ли фотография автомобиля |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Автомобиль не найден |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| car_id | Целое | ИД автомобиля |
| code | Строка | Позывной автомобиля |
| name | Строка | Наименование автомобиля |
| gos_number | Строка | Государственный номер автомобиля |
| color | Строка | Цвет автомобиля |
| mark | Строка | Марка автомобиля |
| model | Строка | Модель автомобиля |
| short_name | Строка | Краткое название автомобиля |
| production_year | Целое | Год выпуска автомобиля |
| is_locked | true или false | Автомобиль заблокирован |
| order_params | Массив | Массив параметров заказа автомобиля |
| • | Целое | ИД параметра заказа |
| car_photo | Base64 | Фото автомобиля (только если need_photo = true) |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_car_info?car_id=1&need_photo=false HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"car_id":1,
"code":"123",
"name":"CAR_NAME",
"gos_number":"a123bc",
"color":"COLOR",
"mark":"MARK",
"model":"MODEL",
"short_name":"SHORT_NAME",
"production_year":2000,
"is_locked":false,
"order_params":[1,2]
}
}
Запрос списка автомобилей
Метод: GET
Название запроса: get_cars_info
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Необязательные параметры | ||
| locked_cars | true или false | Включить в ответ заблокированных автомобилей (по умолчанию false) |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| cars_info | Массив | Массив автомобилей |
| • car_id | Целое | ИД автомобиля |
| • code | Строка | Позывной автомобиля |
| • name | Строка | Наименование автомобиля |
| • gos_number | Строка | Гос. номер автомобиля |
| • color | Строка | Цвет автомобиля |
| • mark | Строка | Марка автомобиля |
| • model | Строка | Модель автомобиля |
| • short_name | Строка | Краткое название автомобиля |
| • production_year | Целое | Год выпуска автомобиля |
| • is_locked | true или false | Автомобиль заблокирован |
| • order_params | Массив | Массив параметров заказа автомобиля |
| • | Целое | ИД параметра заказа |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_cars_info HTTP/1.1
Signature: <...>
locked_cars=true
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"cars_info":[
{
"car_id":1,
"code":"111",
"name":"CAR_1",
"gos_number":"111111",
"color":"COLOR_1",
"mark":"MARK_1",
"model":"MODEL_1",
"short_name":"SHORT_NAME_1",
"production_year":2000,
"is_locked":false,
"order_params":[1,2]
},
{
"car_id":2,
"code":"222",
"name":"CAR_2",
"gos_number":"222222",
"color":"COLOR_2",
"mark":"MARK_2",
"model":"MODEL_2",
"short_name":"SHORT_NAME_2",
"production_year":2000,
"is_locked":false,
"order_params":[3,4]
}
]
}
}
Запрос координат экипажей
Метод: GET
Название запроса: get_crews_coords
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Необязательные параметры | ||
| crew_id | Целое | ИД экипажа, по которому нужно вернуть координаты. Если не задано, то будут возвращены координаты всех экипажей на линии. |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Координаты не найдены |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| crews_coords | Массив | Список координат экипажей |
| • crew_id | Целое | ИД экипажа |
| • crew_code | Строка | Позывной экипажа |
| • coords_time | ГГГГММДДччммсс | Время получения координат |
| • lat | Дробное | Долгота |
| • lon | Дробное | Широта |
| • state_kind | Строка | Тип состояния экипажа. Может принимать значения:
• "not_available" — экипаж не на линии • "waiting" — экипаж свободен, ожидает заказы • "on_order" — экипаж на заказе • "on_break" — экипаж на перерыве |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_crews_coords HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"crews_coords":[
{
"crew_id":1,
"crew_code":"111",
"coords_time":"20120101101010",
"lat":11.111111,
"lon":22.222222,
"state_kind":"waiting"
},
{
"crew_id":2,
"crew_code":"222",
"coords_time":"20120101101010",
"lat":33.333333,
"lon":44.444444,
"state_kind":"on_order"
}
]
}
}
Запрос:
GET https://ip:port/common_api/1.0/get_crews_coords?crew_id=1 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"crews_coords":[
{
"crew_id":1,
"crew_code":"111",
"coords_time":"20120101101010",
"lat":11.111111,
"lon":22.222222,
"state_kind":"waiting"
}
]
}
}
Запрос адресов, содержащих нужную строку
Метод: GET
Название запроса: get_addresses_like
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| get_streets | true или false | Искать улицы |
| get_points | true или false | Искать пункты |
| get_houses | true или false | Искать дома. Не может быть равно true, если get_streets = true или get_points = true. |
| street | Строка | Часть названия улицы или пункта, если идет поиск улиц или пунктов, или полное название улицы, если идет поиск домов |
| Необязательные параметры | ||
| house | Строка | Часть номера дома. Нужно только если get_houses = true. |
| max_addresses_count | Целое | Максимальное количество адресов в ответе |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Подходящие адреса не найдены |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| addresses | Массив | Список подходящих адресов |
| • street | Строка | Название улицы или пункта |
| • house | Строка | Номер дома |
| • kind | Строка | Тип адреса. Может принимать значения:
• "street" — улица • "house" — дом • "point" — пункт |
| • comment | Строка | Комментарий |
| • coords | Массив | Координаты дома или пункта |
| • ◊ lat | Дробное | Широта |
| • ◊ lon | Дробное | Долгота |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_addresses_like?get_streets=true&get_points=true&
get_houses=false&street=STREE HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"addresses":[
{
"street":"STREET1",
"house":"",
"kind":"street",
"comment":""
"coords":{
"lat":0,
"lon":0
}
},
{
"street":"STREET2",
"house":"",
"kind":"street",
"comment":""
"coords":{
"lat":0,
"lon":0
}
},
{
"street":"POINT_STREET1",
"house":"",
"kind":"point",
"comment":"Point at street STREET1"
"coords":{
"lat":53.224656,
"lon":56.842521
}
}
]
}
}
Запрос:
GET https://ip:port/common_api/1.0/get_addresses_like?get_streets=false&get_points=false&
get_houses=true&street=STREET1&house=1&max_addresses_count=10 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"addresses":[
{
"street":"STREET1",
"house":"1",
"kind":"house",
"comment":""
},
{
"street":"STREET1",
"house":"10",
"kind":"house",
"comment":""
},
{
"street":"STREET1",
"house":"11",
"kind":"house",
"comment":""
}
]
}
}
Анализ маршрута
Метод: GET
Название запроса: analyze_route
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| source | Строка | Адрес подачи |
| dest | Строка | Адрес назначения |
| Необязательные параметры | ||
| source_lon | Дробное | Долгота адреса подачи |
| source_lat | Дробное | Широта адреса подачи |
| dest_lon | Дробное | Долгота адреса назначения |
| dest_lat | Дробное | Широта адреса назначения |
Параметр source не является обязательным к заполнению, если заданы source_lon и source_lat.
Параметр dest не является обязательным к заполнению, если заданы dest_lon и dest_lat.
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Адрес подачи не распознан |
| 101 | Адрес назначения не распознан |
| 102 | Маршрут не распознан |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| source_lat | Дробное | Широта адреса подачи |
| source_lon | Дробное | Долгота адреса подачи |
| source_zone_id | Целое | ИД района подачи |
| dest_lat | Дробное | Широта адреса назначения |
| dest_lon | Дробное | Долгота адреса назначения |
| dest_zone_id | Целое | ИД района назначения |
| city_dist | Дробное | Километраж по городу |
| country_dist | Дробное | Километраж за городом |
| source_country_dist | Дробное | Километраж до адреса подачи, если адрес подачи за городом |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/analyze_route?source=STREET1,1&dest=STREET2,2&source_lon=
53.153044&source_lat=56.893301&dest_lon=53.218103&dest_lat=56.869759 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"source_lat":11.111111,
"source_lon":22.222222,
"source_zone_id":1,
"dest_lat":33.333333,
"dest_lon":44.444444,
"dest_zone_id":2,
"city_dist":1.1,
"country_dist":2.2,
"source_country_dist":3.3
}
}
Анализ маршрута 2
Метод: POST
Название запроса: analyze_route2
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| get_full_route_coords | true или false | Возвращать координаты точек полного маршрута. |
| addresses | Массив | Массив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки. |
| • address | Строка | Адрес подачи |
| • lat | Дробное | Широта адреса |
| • lon | Дробное | Долгота адреса |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Маршрут не распознан |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметры | Тип | Описание |
|---|---|---|
| Addresses | Массив | Массив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки. |
| • lat | Дробное | Широта адреса |
| • lon | Дробное | Долгота адреса |
| • zone_id | Целое | Район адреса |
| • parking_id | Целое | Стоянка адреса |
| city_dist | Дробное | Километраж по городу |
| country_dist | Дробное | Километраж за городом |
| source_country_dist | Дробное | Километраж до адреса подачи, если адрес подачи за городом. |
| full_route_coords | Массив | Массив координат точек маршрута. |
| • lat | Дробное | Широта точки |
| • lon | Дробное | Долгота точки |
Пример:
Запрос:
POST /common_api/1.0/analyze_route2 HTTP/1.1
Host: ip:port
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/json
Content-Length: 243
Signature: <...>
{"get_full_route_coords":true,"addresses":[{"address":"STREET1, 1","lat":11.111111,
"lon":22.222222},{"address":"STREET2, 2","lat":33.333333,"lon":44.444444},
{"address":"STREET3, 3","lat":55.555555,"lon":55.555555},{"address":"STREET4,
4","lat":77.777777,"lon":88.888888}]}
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"addresses":[
{
"lat":11.111111,
"lon":22.222222,
"zone_id":1,
"parking_id":1
},
{
"lat":33.333333,
"lon":44.444444,
"zone_id":2,
"parking_id":2
}
],
"city_dist":0,
"country_dist":2.647,
"source_country_dist":3.412,
"full_route_coords":[
{
"lat":55.833603,
"lon":37.515537
},
{
"lat":55.832855,
"lon":37.516315
},
{
"lat":55.833405,
"lon":37.51799
},
...
]
}
}
Запрос информации о состоянии заказа
Метод: GET
Название запроса: get_order_state
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| order_id | Целое | ИД заказа |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Заказ не найден |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| order_id | Целое | ИД заказа |
| state_id | Целое | ИД состояния заказа |
| state_kind | Строка | Тип состояния заказа. Может принимать значения:
• "new_order" — новый заказ • "driver_assigned" — водитель назначен • "car_at_place" — машина подъехала на место • "client_inside" — клиент в машине • "finished" — заказ успешно завершен • "aborted" — заказ прекращен |
| crew_id | Целое | ИД экипажа |
| prior_crew_id | Целое | ИД предварительного экипажа |
| driver_id | Целое | ИД водителя |
| car_id | Целое | ИД автомобиля |
| start_time | ГГГГММДДччммсс | Время создания заказа |
| source_time | ГГГГММДДччммсс | Время подачи |
| finish_time | ГГГГММДДччммсс | Время завершения заказа |
| source | Строка | Адрес подачи |
| destination | Строка | Адрес назначения |
| passenger | Строка | Пассажир |
| phone | Строка | Номер телефона |
| client_id | Целое | ИД клиента |
| order_crew_group_id | Целое | ИД группы экипажей, которая указана в заказе |
| tariff_id | Целое | ИД тарифа |
| car_mark | Строка | Марка автомобиля |
| car_model | Строка | Модель автомобиля |
| car_color | Строка | Цвет автомобиля |
| car_number | Строка | Государственный номер автомобиля |
| confirmed | Строка | Состояние подтвержденности заказа водителем или оператором.
Может принимать значения: • "not_confirmed" — не подтверждено • "confirmed_by_driver" — заказ принят водителем • "confirmed_by_oper" — заказ подтвержден оператором |
| crew_coords | Массив | Координаты экипажа |
| • lat | Дробное | Широта |
| • lon | Дробное | Долгота |
| order_params | Массив | Массив параметров заказа экипажа |
| • | Целое | ИД параметра заказа |
| creation_way | Строка | Способ создания заказа. Может принимать значения:
• "operator" — заказ создан оператором • "sms" — заказ создан через смс • "market" — заказ из биржи • "common_api" — заказ создан через api • "t_api" — заказ создан через api • "taxophone" — заказ создан из таксофона • "driver" — заказ создан водителем • "daily_order" — ежедневный заказ • "unknown" — неизвестный |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_order_state?order_id=1 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"order_id":1,
"state_id":12,
"state_kind":"car_at_place",
"crew_id":1,
"prior_crew_id":0,
"driver_id":2,
"car_id":3,
"start_time":"20130117125641",
"source_time":"20130117132617",
"finish_time":"20130117130343",
"source":"1",
"destination":"2",
"passenger":"Слепаков",
"phone":"8800",
"client_id":1,
"order_crew_group_id":1,
"tariff_id":1,
"car_mark":"Ауди",
"car_model":"Q7",
"car_color":"черный",
"car_number":"А777АА",
"confirmed":"confirmed_by_oper",
"crew_coords": {
"lat": 56.833981,
"lon": 53.220249
},
"order_params":[
1,
2,
5
],
"creation_way":"operator"
}
}
Создание задачи СМС серверу
Метод: POST
Название запроса: send_sms
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| phone | Строка, <= 16 символов | Номер телефона |
| message | Строка | Текст СМС |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос:
POST /common_api/1.0/send_sms HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 33
Signature: <...>
message=SMSText&phone=89050057216
Ответ:
{
"code":0,
"descr":"OK",
"data":{}
}
Проверка авторизации
Метод: GET
Название запроса: check_authorization
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| login | Строка, <= 60 символов | Логин |
| password | Строка, <= 60 символов | Пароль |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Не найден клиент с логином LOGIN и/или неверный пароль |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| client_id | Целое | ИД клиента |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/check_authorization?login=LOGIN&password=PASSWORD HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"client_id":131
}
}
Регистрация клиента
Метод: POST
Название запроса: register_client
Параметры:
| Параметры | Тип | Описание | |
|---|---|---|---|
| Обязательные параметры | |||
| name | Строка, <= 60 символов | ФИО | |
| login | Строка, <= 60 символов | Логин | |
| password | Строка, <= 60 символов | Пароль | |
| phones | Строка | Номера телефонов (через запятую) | |
| Необязательные параметры | |||
| address | Строка | Домашний адрес | |
| birthday | ДД.ММ.ГГГГ | Дата рождения | |
| gender | Строка | Пол. Может принимать значения:
• "male" - мужской • "female" - женский | |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Клиент с ИД=ID имеет такой же номер телефона=PHONE |
| 101 | Клиент с логином=LOGIN уже существует |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| client_id | Целое | ИД созданного клиента |
Пример:
Запрос:
POST https://ip:port/common_api/1.0/create_order HTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: 104
name=NAME&phones=88,99&login=LOGIN&password=PASSWORD&birthday=19930218115517&gender=male&address=ADDRESS
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"client_id":140
}
}
Запрос информации по клиенту
Метод: GET
Название запроса: get_client_info
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| client_id | Целое | ИД клиента |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Не найден клиент ИД=CLIENT_ID |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| client_id | Целое | ИД клиента |
| name | Строка | ФИО |
| number | Строка | Номер договора |
| address | Строка | Домашний адрес |
| gender | Строка | Пол. Может принимать значения:
• "male" - мужской • "female" - женский |
| birthday | ДД.ММ.ГГГГ | Дата рождения |
| phones | Строка | Номера телефонов (через запятую) |
| balance | Дробное | Баланс |
| bonus_balance | Дробное | Бонусный баланс |
| login | Строка | Логин |
| password | Строка | Пароль |
| client_group_id | Целое | ИД группы клиента |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_client_info?client_id=140 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"client_id":140,
"name":"Васильев Артём",
"number":"000140",
"address":"Бутово,45",
"gender":"male",
"birthday":"18.02.1993",
"phones":"[
"88",
"99"
]",
"balance":2985,
"bonus_balance":85,
"login":"artem",
"password":"vasilev",
"client_group_id":1
}
}
Изменение информации по клиенту
Метод: POST
Название запроса: update_client_info
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| client_id | Целое | ИД клиента |
| Необязательные параметры | ||
| name | Строка, <= 60 символов | ФИО |
| login | Строка, <= 60 символов | Логин |
| password | Строка, <= 60 символов | Пароль |
| phones | Строка | Номера телефонов (через запятую) |
| address | Строка | Домашний адрес |
| birthday | ДД.ММ.ГГГГ | Дата рождения |
| gender | Строка | Пол. Может принимать значения:
• "male" - мужской • "female" - женский |
| client_group_id | Целое | ИД группы клиента |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Клиент с номером телефона=PHONE уже существует |
| 101 | Клиент с ИД=ID имеет такой же номер телефона=PHONE |
| 102 | Клиент с логином=LOGIN уже существует |
| 103 | Группа клиента с ИД=CLIENT_GROUP_ID не найдена |
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос:
POST https://ip:port/common_api/1.0/create_order HTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: 118
client_id=140&name=NAME&phones=88,99&login=LOGIN&password=PASSWORD&birthday=20140901000000&gender=m
ale&address=ADDRESS&client_group_id=3
Ответ:
{
"code":0,
"descr":"OK",
"data":{}
}
Запрос текущих заказов
Метод: GET
Название запроса: get_current_orders
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| client_id | Целое | ИД клиента (может отсутствовать, если phone заполнен) |
| phone | Строка, <= 16 символов | Телефон клиента (может отсутствовать, если client_id заполнен) |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Не найден клиент ИД=CLIENT_ID |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| id | Целое | ИД заказа |
| state_id | Целое | ИД состояния заказа |
| start_time | ГГГГММДДччммсс | Дата создания заказа |
| source_time | ГГГГММДДччммсс | Время подачи |
| source | Строка | Адрес подачи |
| destination | Строка | Адрес назначения |
| passenger | Строка | Пассажир |
| crew_id | Целое | ИД экипажа |
| prior_crew_id | Целое | ИД предварительного экипажа |
| driver_id | Целое | ИД водителя |
| car_id | Целое | ИД автомобиля |
| phone | Строка | Номер телефона |
| client_id | Целое | ИД клиента |
| tariff_id | Целое | ИД тарифа |
| order_crew_group_id | Целое | ИД группы экипажей, которая указана в заказе |
| creation_way | Строка | Способ создания заказа. Может принимать значения:
• "operator" — заказ создан оператором • "sms" — заказ создан через смс • "market" — заказ из биржи • "common_api" — заказ создан через api • "t_api" — заказ создан через api • "taxophone" — заказ создан из таксофона • "driver" — заказ создан водителем • "daily_order" — ежедневный заказ • "unknown" — неизвестный |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_current_orders?client_id=140&phone=18 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"orders":[
{
"id":20648,
"state_id":44,
"start_time":"20130204181111",
"source_time":"20130204181111",
"source":"1-й пр-т \/Москва\/,",
"destination":"12-й мкр,",
"passenger":"маша",
"crew_id":0,
"prior_crew_id":0,
"driver_id":0,
"car_id":0,
"phone":"18",
"client_id":140,
"tariff_id":1,
"order_crew_group_id":1
},
{
"id":20670,
"state_id":45,
"start_time":"20130207153022",
"source_time":"20130207153022",
"source":"11-й мкр,",
"destination":"1-й пр-т \/Москва\/,",
"passenger":"саша",
"crew_id":1,
"prior_crew_id":1,
"driver_id":1,
"car_id":1,
"phone":"18",
"client_id":140,
"tariff_id":2,
"order_crew_group_id":2
"creation_way":"operator"
}
]
}
}
Запрос выполненных заказов
Метод: GET
Название запроса: get_finished_orders
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| client_id | Целое | ИД клиента (может отсутствовать, если phone заполнен) |
| phone | Строка, <= 16 символов | Телефон клиента (может отсутствовать, если client_id заполнен) |
| start_time | ГГГГММДДччммсс | Начало периода |
| finish_time | ГГГГММДДччммсс | Конец периода |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Не найден клиент ИД=CLIENT_ID |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| id | Целое | ИД заказа |
| state_id | Целое | ИД состояния заказа |
| start_time | ГГГГММДДччммсс | Время создания заказа |
| source_time | ГГГГММДДччммсс | Время подачи |
| finish_time | ГГГГММДДччммсс | Время завершения заказа |
| source | Строка | Адрес подачи |
| source_lat | Дробное | Широта адреса подачи |
| source_lon | Дробное | Долгота адреса подачи |
| destination | Строка | Адрес назначения |
| destination_lat | Дробное | Широта адреса назначения |
| destination_lon | Дробное | Долгота адреса назначения |
| stops | Массив | Массив адресов остановок |
| • address | Строка | Адрес остановки |
| • lat | Дробное | Широта адреса остановки |
| • lon | Дробное | Долгота адреса остановки |
| passenger | Строка | Пассажир |
| sum | Дробное | Стоимость заказа без учета скидок (наценок) |
| total_sum | Дробное | Итоговая стоимость заказа |
| cash_sum | Дробное | Заплачено наличными |
| cashless_sum | Дробное | Заплачено с безналичного счета клиента |
| bonus_sum | Дробное | Заплачено с бонусного счета клиента |
| bank_card_sum | Дробное | Заплачено банковской картой |
| crew_id | Целое | ИД экипажа |
| prior_crew_id | Целое | ИД предварительного экипажа |
| driver_id | Целое | ИД водителя |
| car_id | Целое | ИД автомобиля |
| phone | Строка | Номер телефона |
| client_id | Целое | ИД клиента |
| tariff_id | Целое | ИД тарифа |
| order_crew_group_id | Целое | ИД группы экипажей, которая указана в заказе |
| creation_way | Строка | Способ создания заказа. Может принимать значения:
• "operator" — заказ создан оператором • "sms" — заказ создан через смс • "market" — заказ из биржи • "common_api" — заказ создан через api • "t_api" — заказ создан через api • "taxophone" — заказ создан из таксофона • "driver" — заказ создан водителем • "daily_order" — ежедневный заказ • "unknown" — неизвестный |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_finished_orders?client_id=140&phone= HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"orders":[
{
"id":20651,
"state_id":34,
"source_time":"20130205110812",
"start_time":"20130205110812",
"finish_time":"20130205115618",
"source":"прпроп",
"source_lat":42.9806060791016,
"source_lon":47.4614906311035,
"destination":"рррррр",
"destination_lat":55.6898765563965,
"destination_lon":37.6890335083008,
"stops":[
{
"address":"ввввв",
"lat":55.6792640686035,
"lon":37.5807800292969
},
{
"address":"ааааа",
"lat":55.6731262207031,
"lon":37.6959686279297
},
{
"address":"ппппп",
"lat":55.678165435791,
"lon":37.6913642883301
}
],
"passenger":"вера",
"sum":908,
"total_sum":1000,
"cash_sum":700,
"cashless_sum":100,
"bonus_sum":150,
"bank_card_sum":50,
"crew_id":6,
"prior_crew_id":0,
"driver_id":4,
"car_id":6,
"phone":"111111",
"client_id":140,
"tariff_id":1,
"order_crew_group_id":1
},
{
"id":20669,
"state_id":34,
"source_time":"20130205130500",
"start_time":"20130205130500",
"finish_time":"20130205134511",
"source":"1",
"destination":"2",
"passenger":"маша",
"sum":454,
"total_sum":500,
"cash_sum":0,
"cashless_sum":500,
"bonus_sum":0,
"bank_card_sum":0,
"crew_id":6,
"prior_crew_id":0,
"driver_id":4,
"car_id":6,
"phone":"222222",
"client_id":140,
"tariff_id":2,
"order_crew_group_id":2
"creation_way":"operator"
}
]
}
}
Проведение операции по клиенту
Метод: POST
Название запроса: create_client_operation
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| client_id | Целое | ИД клиента |
| sum | Дробное | Сумма |
| oper_type | Целое | Тип операции:
• "receipt" - приход • "expense" - расход |
| Необязательные параметры | ||
| oper_time | ГГГГММДДччммсс | Время создания операции |
| comment | Строка | Комментарий |
| pay_type | Целое | Тип оплаты:
• "cash" - наличный • "nocash" - безналичный |
| bonus_oper | true или false | Операция по бонусному счёту |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Не найден клиент ИД=CLIENT_ID |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| oper_id | Целое | ИД операции |
Пример:
Запрос:
POST https://ip:port/common_api/1.0/create_client_operation HTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: 99
client_id=112&oper_time=20130221100719&oper_sum=300&oper_type=receipt&pay_type=cash&comment=COMMENT&bonus_oper=true
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"oper_id":31
}
}
Запрос операций по клиенту
Метод: GET
Название запроса: get_client_operations
Параметры:
| Параметры | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| client_id | Целое | ИД клиента (обязателен, если phone отсутствует) |
| phone | Целое | Телефон клиента (обязателен, если client_id отсутствует) |
| start_time | ГГГГММДДччммсс | Начало периода |
| finish_time | ГГГГММДДччммсс | Конец периода |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Не найден клиент ИД=CLIENT_ID |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| oper_id | Целое | ИД операции |
| oper_time | ГГГГММДДччммсс | Время создания операции |
| sum | Дробное | Сумма |
| order_id | Целое | Заказ, связанный с операцией |
| oper_type | Целое | Тип операции:
• "receipt" - приход • "expense" - расход |
| pay_type | Целое | Тип оплаты:
• "cash" - наличный • "nocash" - безналичный |
| name | Строка | Наименование |
| comment | Строка | Комментарий |
Пример:
Запрос:
GET
GET https://ip:port/common_api/1.0/get_client_operations?
client_id=112&start_time=20130201092112&finish_time=20130221092112 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"operations":[
{
"oper_id":112,
"oper_time":"20130219091328",
"sum":"21,8",
"order_id":11800,
"oper_type":"receipt",
"pay_type":"cash",
"name":"Пополнение счета",
"comment":"Комментарий"
},
{
"oper_id":112,
"oper_time":"20130220112245",
"sum":"4500",
"order_id":11801,
"oper_type":"receipt",
"pay_type":"cash",
"name":"Пополнение счета",
"comment":"Комментарий"
}
]
}
}
Проведение операции по водителю
Метод: POST
Название запроса: create_driver_operation
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| driver_id | Целое | ИД водителя |
| oper_sum | Дробное | Сумма |
| oper_type | Строка | Тип операции: receipt - приход, expense - расход. |
| Необязательные параметры | ||
| name | Строка | Наименование операции |
| oper_time | ГГГГММДДччммсс | Время создания операции (если не задано, текущее) |
| comment | Строка | Комментарий |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Водитель не найден ИД=DRIVER_ID |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| oper_id | Целое | ИД операции |
Пример:
Запрос:
POST https://ip:port/common_api/1.0/create_driver_operation HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: 99
{
"driver_id": 1,
"oper_sum": 10.00,
"oper_type": "receipt",
"name": "Пополнение счета",
"oper_time": "20141210100719",
"comment": "Комментарий к операции"
}
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"oper_id":31
}
}
Запрос операций по водителю
Метод: GET
Название запроса: get_driver_operations
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| driver_id | Целое | ИД водителя |
| start_time | ГГГГММДДччммсс | Начало периода |
| finish_time | ГГГГММДДччммсс | Конец периода |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Не найден водитель ИД=DRIVER_ID |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| oper_id | Целое | ИД операции |
| oper_time | ГГГГММДДччммсс | Время создания операции |
| sum | Дробное | Сумма |
| order_id | Целое | Заказ, связанный с операцией |
| oper_type | Целое | Тип операции:
•"receipt" - приход •"expense" - расход |
| name | Строка | Наименование |
| comment | Строка | Комментарий |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_driver_operations?
driver_id=112&start_time=20130201092112&finish_time=20130221092112 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"operations":[
{
"oper_id":112,
"oper_time":"20130219091328",
"sum":"21,8",
"order_id":11800,
"oper_type":"receipt",
"name":"DRIVER_OPERATION_1",
"comment":"DRIVER_OPERATION_COMMENT_1"
},
{
"oper_id":112,
"oper_time":"20130220112245",
"sum":"4500",
"order_id":11801,
"oper_type":"receipt",
"name":"DRIVER_OPERATION_2",
"comment":"DRIVER_OPERATION_COMMENT_2"
}
]
}
}
Задание координат экипажей
Метод: POST
Название запроса: set_crews_coords
Параметры в формате JSON:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| crew_coords | Массив | Массив координат экипажей |
| • crew_id | Целое | ИД экипажа |
| • gps_id | Целое | GPS идентификатор (если не задан ИД экипажа) |
| • lat | Дробное | Широта |
| • lon | Дробное | Долгота |
| Необязательные параметры | ||
| speed | Дробное | Скорость |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос:
POST https://ip:port/common_api/1.0/set_crews_coords HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: 109
{"crews_coords":[{"crew_id":1,"lat":11.111111,"lon":22.222222},
{"gps_id":2,"lat":33.333333,"lon":44.444444}]}
Ответ:
{
"code":0,
"descr":"OK",
"data":{}
}
Изменение информации по заказу
Метод: POST
Название запроса: update_order
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| order_id | Целое | ИД заказа |
| Необязательные параметры | ||
| phone | Строка, <= 16 символов | Номер телефона |
| source_time | ГГГГММДДччммсс | Время подачи |
| is_prior | true или false | Предварительный заказ |
| customer | Строка | Заказчик |
| passenger | Строка | Пассажир |
| comment | Строка | Комментарий |
| crew_group_id | Целое | ИД группы экипажей |
| client_id | Целое | ИД клиента |
| uds_id | Целое | ИД службы ЕДС |
| tariff_id | Целое | ИД тариф |
| addresses | Массив | Массив адресов. Первый элемент — адрес
подачи(обязательно), последний — адрес назначения, между ними — остановки. |
| • address | Строка | Адрес подачи |
| • lat | Дробное | Широта адреса |
| • lon | Дробное | Долгота адреса |
| order_params | Массив | Массив параметров заказа |
| • | Целое | ИД параметра заказа |
| cost_order | Дробное | Сумма заказа |
| state_id | Целое | ИД состояния заказа |
| discount_id | Целое | ИД скидки |
| auto_select_discount | true или false | Автоматически подобрать скидку, если не указана явно |
| auto_select_tariff | true или false | Автоматически подобрать тариф, если не указан явно |
| auto_recalc_cost | true или false | Автоматически пересчитать сумму заказа |
| auto_update_order_params | true или false | Автоматически обновить параметры заказа по клиенту и группе клиента |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Заказ не найден |
| 101 | Состояние заказа не найдено |
| 102 | Тариф не найден |
| 103 | Скидка не найдена |
| 104 | Группа экипажа не найдена |
| 105 | Служба не найдена |
| 106 | Клиент не найден |
| 107 | Изменение состояния не соответствует необходимым условиям |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
POST https://ip:port/common_api/1.0/update_order HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: 208
{
"order_id": 12105,
"phone": "555",
"source_time": "20141216095044",
"is_prior": true,
"auto_select_discount": true,
"auto_select_tariff": true,
"auto_recalc_cost": true,
"auto_update_order_params": true,
"customer": "Заказчик",
"passenger": "Пассажир",
"comment": "Комментарий",
"crew_group_id": 8,
"client_id": 30,
"tariff_id": 33,
"addresses":[
{"address":"SOURCE","lat":56.896817,"lon":53.147830},
{"address":"STOP1","lat":56.845452,"lon":53.226775},
{"address":"STOP2"},
{"address":"DESTINATION","lat":56.861230,"lon":53.241870}
],
"cost_order": 200,
"state_id": 55,
"discount_id": 1
}
Ответ:
{
"code":0,
"descr":"OK",
"data":{}
}
Анализ телефона
Метод: GET
Название запроса: analyze_phone
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| phone | Строка | Номер телефона |
| Необязательные параметры | ||
| search_in_drivers_mobile | true или false | Искать среди мобильных телефонов водителей |
| search_in_drivers_home | true или false | Искать среди домашних телефонов водителей |
| search_in_clients | true или false | Искать среди телефонов клиентов |
| search_in_phones | true или false | Искать в справочнике телефонов |
Если параметры search_in_drivers_mobile, search_in_drivers_home, search_in_clients, search_in_phones не заданы, то поиск телефона будет происходить во всех справочниках.
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Телефон не найден |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| phone_type | Строка | Может принимать значения: «driver_mobile», «driver_home», «client», «phone». |
| id | Целое | ИД водителя, клиента, телефона из справочника. |
Пример:
Запрос:
GET /common_api/1.0/analyze_phone?
phone=89501234567&search_in_drivers_mobile=true&search_in_drivers_home=true&search_in_clients=true&
search_in_phones=true HTTP/1.1
Host: 127.0.0.1:8089
Keep-Alive: 300
Connection: keep-alive
Signature: 4285286a446064353f4a951b721c54f7
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"phone_type":"client",
"id":1
}
}
Показать сообщение в ТМ
Метод: POST
Название запроса: show_tm_message
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| text | Строка | Текст сообщения |
| Необязательные параметры | ||
| header | Строка | Заголовок сообщения |
| timeout | Целое | Скрывать сообщение через, сек. (0 — не скрывать) |
| users | Массив | Массив пользователей (если не указаны — отправлять всем) |
| • | Целое | ИД пользователя |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Пользователи для отправки сообщения не найдены |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос:
POST /common_api/1.0/show_tm_message HTTP/1.1
Host: 127.0.0.1:8089
Keep-Alive: 300
Connection: keep-alive
Signature: 4285286a446064353f4a951b721c54f7
{
"text": "Текст сообщения",
"users": [
1,
2,
3
],
"header": "Заголовок",
"timeout": 12
}
Ответ:
{
"code":0,
"descr":"OK",
"data":{}
}
Запрос списка купленных смен водителей
Метод: GET
Название запроса: get_driver_shifts
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| start_time | ГГГГММДДччммсс | Начало периода |
| finish_time | ГГГГММДДччммсс | Конец периода |
| Необязательные параметры | ||
| driver_id | Целое | ИД водителя |
| new_shifts | true или false | Включить в ответ новые смены (по умолчанию true) |
| in_work_shifts | true или false | Включить в ответ смены в работе (по умолчанию true) |
| finished_shifts | true или false | Включить в ответ выполненные смены (по умолчанию true) |
| failed_shifts | true или false | Включить в ответ неуспешно завершенные смены (по умолчанию true) |
| returned_shifts | true или false | Включить в ответ возвращенные смены (по умолчанию false) |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| shifts | Массив | Массив купленных смен |
| • shift_id | Целое | ИД купленной смены |
| • driver_id | Целое | ИД водителя |
| •driver_name | Строка | ФИО водителя |
| • plan_shift_id | Строка | ИД запланированной смены |
| • plan_shift_name | Строка | Наименование запланированной смены |
| • plan_shift_cost | Дробное | Цена смены |
| • plan_shift_type | Строка | Тип смены («limited» - срочная, «unlimited» - бессрочная) |
| • plan_shift_start_time | ГГГГММДДччммсс | План-начало смены (для срочных) |
| • plan_shift_finish_time | ГГГГММДДччммсс | План-конец смены (для срочных) |
| • plan_shift_length | Целое | План продолжительность смены, ч. (для бессрочных) |
| • plan_shift_crew_group_id | Целое | ИД группы экипажей, которые могут купить смену |
| • shift_state | Строка | Состояние смены («new» - новая, «in_work» - в работе, «finished» - завершена успешно, «failed» - завершена неуспешно) |
| • buy_time | ГГГГММДДччммсс | Время продажи смены водителю |
| • is_returned | true или false | Признак возвращенной смены |
| • return_time | ГГГГММДДччммсс | Время возврата смены |
| • orders_count | Целое | Количество заказов, выполненных водителем за смену |
| • orders_sum | Дробное | Сумма заказов, выполненных водителем за смену |
| • fact_length | Дробное | Фактическая продолжительность смены, ч. |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_driver_shifts?start_time=20140101101010&finish_time=20140101202020 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"shifts":[
{
"shift_id":1,
"driver_id":1,
"driver_name":"DRIVER_1",
"plan_shift_id":1,
"plan_shift_name":"PLAN_SHIFT_1",
"plan_shift_cost":100,
"plan_shift_type":"limited",
"plan_shift_start_time":"20140101101010",
"plan_shift_finish_time":"20140101101010",
"plan_shift_length":null,
"plan_shift_crew_group_id":1,
"shift_state":new,
"buy_time":"20140101101010",
"is_returned":false,
"return_time":null,
"orders_count":10,
"orders_sum":1000,
"fact_length":1.2
},
{
"shift_id":2,
"driver_id":2,
"driver_name":"DRIVER_2",
"plan_shift_id":2,
"plan_shift_name":"PLAN_SHIFT_2",
"plan_shift_cost":200,
"plan_shift_type":"unlimited",
"plan_shift_start_time":null,
"plan_shift_finish_time":null,
"plan_shift_length":8,
"plan_shift_crew_group_id":null,
"shift_state":new,
"buy_time":"20140101101010",
"is_returned":true,
"return_time":"20140101101010",
"orders_count":0,
"orders_sum":0,
"fact_length":0
}
]
}
}
Запрос списка запланированных смен водителей
Метод: GET
Название запроса: get_driver_plan_shifts
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| start_time | ГГГГММДДччммсс | Начало периода (если включаем в ответ срочные смены) |
| finish_time | ГГГГММДДччммсс | Конец периода (если включаем в ответ срочные смены) |
| Необязательные параметры | ||
| limited_shifts | true или false | Включить в ответ срочные смены (по умолчанию true) |
| unlimited_shifts | true или false | Включить в ответ бессрочные смены (по умолчанию true) |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| plan_shifts | Массив | Массив запланированных смен |
| • plan_shift_id | Целое | ИД запланированной смены |
| • plan_shift_name | Строка | Наименование запланированной смены |
| • plan_shift_comment | Строка | Комментарий запланированной смены |
| • plan_shift_cost | Дробное | Цена смены |
| • plan_shift_type | Строка | Тип смены («limited» - срочная, «unlimited» - бессрочная) |
| • plan_shift_start_time | ГГГГММДДччммсс | План-начало смены (для срочных) |
| • plan_shift_finish_time | ГГГГММДДччммсс | План-конец смены (для срочных) |
| • plan_shift_length | Целое | План продолжительность смены, ч. (для бессрочных) |
| • plan_shift_crew_group_id | Целое | ИД группы экипажей, которые могут купить смену |
| • max_sell_count | Целое | Максимальное количество продаж смены |
| • sold_count | Целое | Количество продаж смены |
Пример:
Запрос:
GET https://ip:port/common_api/1.0/get_driver_plan_shifts?start_time=20140101101010&finish_time=20140101202020 HTTP/1.1
Signature: <...>
Ответ:
{
"code":0,
"descr":"OK",
"data":{
"plan_shifts":[
{
"plan_shift_id":1,
"plan_shift_name":"PLAN_SHIFT_1",
"plan_shift_comment":"PLAN_SHIFT_COMMENT_1",
"plan_shift_cost":100,
"plan_shift_type":"limited",
"plan_shift_start_time":"20140101101010",
"plan_shift_finish_time":"20140101101010",
"plan_shift_length":null,
"plan_shift_crew_group_id":1,
"max_sell_count":100,
"sold_count":10
},
{
"plan_shift_id":2,
"plan_shift_name":"PLAN_SHIFT_2",
"plan_shift_comment":"PLAN_SHIFT_COMMENT_2",
"plan_shift_cost":200,
"plan_shift_type":"unlimited",
"plan_shift_start_time":null,
"plan_shift_finish_time":null,
"plan_shift_length":8,
"plan_shift_crew_group_id":2,
"max_sell_count":200,
"sold_count":20
}
]
}
}
Продажа смены водителю
Метод: POST
Название запроса: driver_buy_shift
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| crew_id | Целое | ИД экипажа |
| plan_shift_id | Целое | ИД запланированной смены |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Запланированная смена не найдена |
| 101 | Экипаж не найден |
| 102 | Водитель не найден |
| 103 | Недостаточно денег на счете водителя |
| 104 | Водитель уволен либо заблокирован |
| 105 | Запланированная смена устарела |
| 106 | Не подходит группа экипажа |
| 107 | Превышено максимальное число покупок смены |
| 108 | Повторная покупка смены |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос:
POST https://ip:port/common_api/1.0/get_cars_info HTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
crew_id=1&plan_shift_id=1
Ответ:
{
"code":0,
"descr":"OK",
"data":{}
}
Сохранение отзыва клиента
Метод: POST
Название запроса: save_client_feed_back
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| phone | Строка | Телефон |
| rating | Целое | Рейтинг (от 1 до 5) |
| text | Строка | Текстовый отзыв |
| Необязательные параметры | ||
| order_id | Целое | ИД заказа |
Допускается указывать либо параметр rating либо text, либо оба параметра.
Специальные возвращаемые коды: нет.
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос:
POST /common_api/1.0/save_client_feed_back HTTP/1.1
Host: 127.0.0.1:8090
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/json
Content-Length: 72
Signature: <...>
{
"phone":"89123456789",
"rating":4,
"text":"test feedback",
"order_id":100
}
Ответ:
{
"code":0,
"descr":"OK",
"data":{}
}
Описание протокола TMTAPI Версия 1.0
Общее описание протокола
Формат запроса
TM API принимает входящие запросы по протоколу HTTPS. В URI запроса после ip адреса и порта, который будет слушать TM API, должно идти название API (tm_tapi) и версия API.
Пример:
GET https://ip:port/tm_tapi/1.0/get_info_by_phone HTTP/1.1
Для получения данных из БД используются запросы типа GET. Для записи данных в БД используются запросы типа POST. В запросе типа GET параметры запроса передаются в URI.
Пример:
GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565&fields=PHONE_TYPE-PHONE_ TO_DIAL&signature=661ce071eeefcb4f7fc8bc1f17bd520b HTTP/1.1
В запросе типа POST параметры передаются в теле запроса в формате application/x-www-form- urlencoded.
Пример:
POST https://ip:port/tm_tapi/1.0/change_order_state HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 71 order_id=98798&need_state=12&signature=a204c50c7e48f0c6849a87485fe5e171
В любом запросе обязательно с другими полями должно передаваться поле signature. В нем передается MD5 хэш, рассчитанный для строки, которая получается сцеплением строки параметров запроса с секретным ключом. Секретный ключ задается в настройках модуля TMAPI в Такси-Мастер.
Пример:
Запрос:
GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565&fields=PHONE_TYPE
&signature=ef17ea682d09e452af544a5758dba396 HTTP/1.1
Секретный ключ:
321
Signature = MD5("phone=89058800565&fields=PHONE_TYPE" + "321") = ef17ea682d09e452af544a5758dba396
HTTP/1.1
Формат ответа
TM API всегда возвращает HTTP код 200 ОК. Результат выполнения запроса содержится в теле ответа в формате XML. Общий вид возвращаемого результата:
<response> <code>Числовой код результата</code> <descr>Строковое описание результата</descr> <data>Дополнительная информация</data> </response>
Существуют общие для всех запросов коды результатов:
| Код | Описание |
|---|---|
| 0 | Успешное выполнение запроса |
| 1 | Неизвестная ошибка |
| 2 | Неизвестный тип API |
| 3 | API отключено в настройках модуля TM API в Такси-Мастер |
| 4 | Не совпадает секретный ключ |
| 5 | Неподдерживаемая версия API |
| 6 | Неизвестное название запроса |
| 7 | Неверный тип запроса GET |
| 8 | Не хватает входного параметра (в доп. информации ответа будет название отсутствующего параметра) |
| 9 | Некорректный входной параметр (в доп. информации ответа будет название некорректного параметра) |
| 10 | Внутренняя ошибка обработки запроса |
Описание запросов
Запрос информации по номеру телефона
Метод: GET
Название запроса: get_info_by_phone
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| PHONE | Строка, <= 16 символов | Номер телефона |
| FIELDS | Строка | Список полей, которые необходимо вернуть. Поля перечисляются через символ "-" |
| signature | Строка | Поле для проверки секретного ключа. |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields.
| Параметр | Тип | Описание |
|---|---|---|
| PHONE_TYPE | Целое | Тип телефона звонящего
(1 - если звонит водитель; 2 - если звонит физическое лицо; 3 - если звонит юридическое лицо; 4 - если звонит номер из справочника Телефоны; 0 - неизвестный номер) |
| PHONE_TO_DIAL | Строка, <= 16 символов | Номер телефона для отзвона по заказу |
| CREW_ID | Целое | ИД экипажа |
| IS_PRIOR | true или false | Признак предварительного заказа |
| ORDER_CLIENT_ID | Целое | ИД клиента из заказа |
| DRIVER_PHONE | Строка, <= 16 символов | Номер телефона водителя |
| CREW_SYSTEMSTATE | Целое | Состояние экипажа |
| CLIENT_ID | Целое | ИД клиента |
| CLIENT_TYPE | Целое | Тип клиента |
| CATEGORYID | Целое | ИД категории телефона |
| PHONE_SYSTEM_CATEGORY | Целое | Системное значение категории телефона (0 - обычный, 1 - черный, 2 - белый, 3 - серый) |
| ORDER_ID | Целое | ИД заказа |
| DRIVER_ID | Целое | ИД водителя |
| ORDER_STATE | Целое | Состояние заказа |
| DRIVER_REMAINDER | Дробное | Баланс счета водителя |
| DISCOUNTEDSUMM | Строка | Сумма заказа с учетом всех скидок |
| CREW_GROUP_ID | Целое | ИД группы экипажа |
| FIRST_CREW_GROUP_ID | Целое | ИД первой группы экипажа |
| CLIENT_BALANCE | Дробное | Баланс клиента |
| DRIVER_TIMECOUNT | Целое | Время пути водителя до адреса подачи (в минутах) |
| SOURCE_TIMECOUNT | Целое | Время оставшееся до подачи (в минутах) |
| SOUND_COLOR | Строка | Запись с информацией о цвете |
| SOUND_MARK | Строка | Запись с информацией о марке автомобиля |
| GOSNUMBER | Строка | Государственный номер автомобиля |
| CAR_COLOR | Строка | Цвет автомобиля |
| CAR_MARK | Строка | Марка автомобиля |
| ORDER_COORDS | Строка | Координаты места подачи |
| CREW_COORDS | Строка | Координаты назначенного экипажа |
| MARKET_TYPE | Целое | Тип биржи заказов (2 — Яндекс, 3 — ЦОЗ). |
| ORDERS_COUNT | Целое | Для телефона клиента — количество текущих и предварительных заказов по телефону; для телефона водителя — количество текущих заказов, на которые назначен данный водитель |
| CLIENT_GROUP_ID | Целое | ИД группы клиента |
| CLIENT_BONUS_BALANCE | Дробное | Бонусный баланс клиента |
| AD_LIGHTHOUSE | Строка | Признак наличия шашек. Пустая строка – номер клиента или водителя без экипажа. 1 – есть шашки, 0 – нет шашек. |
| CREW_STATE | Целое | Состояние экипажа. |
| SOURCE_TIME | ГГГГММДДччммсс | Дата и время подачи |
| DRV_SHIFT_START_TIME | ГГГГММДДччммсс | Начало фактической смены водителя |
| START_USER_SIP_ACCOUNTS | Строка | Список логинов SIP–аккаунтов пользователя, принявшего заказ |
| CREATION_WAY | Строка | Способ создания заказа (operator, sms, market, common_api, t_api, taxophone, driver, daily_order, unknown) |
Пример:
Запрос:
GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565l&fields=PHONE_TYPE-PHONE_
TO_DIAL-CREW_ID-ORDER_ID&signature=d35ab2765f2968d48c096d5f5327db26 HTTP/1.1
Ответ:
<response>
<code>0</code>
<descr>OK</descr>
<data>
<PHONE_TYPE>0</PHONE_TYPE>
<PHONE_TO_DIAL></PHONE_TO_DIAL>
<CREW_ID>3</CREW_ID>
<ORDER_ID>6</ORDER_ID>
<SOURCE_TIME>20140929134911</SOURCE_TIME>
<DRV_SHIFT_START_TIME>20141007105050</DRV_SHIFT_START_TIME>
</data>
</response>
Запрос информации по ИД заказа
Метод: GET
Название запроса: get_info_by_order_id
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| ORDER_ID | Целое | ИД заказа |
| FIELDS | Строка | Список полей, которые необходимо вернуть. Поля перечисляются через символ "-" |
| signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields.
| Параметр | Тип | Описание |
|---|---|---|
| DRIVER_TIMECOUNT | Строка, <= 16 символов | Время до подачи в минутах, указанное водителем |
| SOUND_COLOR | Строка | Запись с информацией о цвете |
| CAR_MARK | Строка | Марка автомобиля |
| CAR_COLOR | Строка | Цвет автомобиля |
| GOSNUMBER | Строка | Государственный номер автомобиля |
| SOUND_MARK | Строка | Запись с информацией о марке автомобиля |
| CREW_GROUP_ID | Целое | ИД группы экипажа |
| FIRST_CREW_GROUP_ID | Целое | ИД первой группы экипажа |
| IS_PRIOR | true или false | Признак предварительного заказа |
| DISCOUNTEDSUMM | Строка | Сумма заказа с учетом всех скидок |
| DRIVER_PHONE | Строка, <= 16 символов | Номер телефона водителя |
| CATEGORYID | Целое | ИД категории телефона |
| SOURCE_TIMECOUNT | Целое | Время до подачи в минутах |
| ORDER_COORDS | Строка | Координаты места подачи |
| CREW_COORDS | Строка | Координаты назначенного экипажа |
| ORDER_STATE | Целое | ИД состояния заказа |
| MARKET_TYPE | Целое | Тип биржи заказов (2 — Яндекс, 3 — ЦОЗ). |
| AD_LIGHTHOUSE | Строка | Признак наличия шашек (1 – шашки есть, 0 – шашек нет). |
| CREW_STATE | Целое | Состояние экипажа. |
| SOURCE_TIME | ГГГГММДДччммсс | Дата и время подачи |
| START_USER_SIP_ACCOUNTS | Строка | Список логинов SIP–аккаунтов пользователя, принявшего заказ |
| ORDER_PARAMS | Целое | Список ИД параметров заказа |
| CREATION_WAY | Строка | Способ создания заказа (operator, sms, market, common_api, t_api, taxophone, driver, daily_order, unknown) |
Пример:
Запрос:
GET https://ip:port/tm_tapi/1.0/get_info_by_order_id?order_id=60&fields=DRIVER_SOURCETIME-MARKCOLOR-
GOSNUMBER-IS_PRIOR-MOBILE_PHONE-SOURCE_TIME&signature=fdcd04e570443b56176b83f44748dc23
HTTP/1.1
Ответ:
<response>
<code>0</code>
<descr>OK</descr>
<data>
<DRIVER_SOURCETIME></DRIVER_SOURCETIME>
<MARK></MARK>
<COLOR></COLOR>
<GOSNUMBER></GOSNUMBER>
<IS_PRIOR></IS_PRIOR>
<MOBILE_PHONE></MOBILE_PHONE>
<SOURCE_TIME>20140929134911</SOURCE_TIME>
</data>
</response>
Смена состояния заказа
Метод: POST
Название запроса: change_order_state
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| ORDER_ID | Целое | ИД заказа |
| NEED_STATE | Целое | Новое состояние заказа |
| signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Заказ с таким ИД не найден |
| 101 | Изменение состояния не соответствует необходимым условиям |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| ORDER_ID | Целое | ИД созданного заказа |
| NEW_STATE | Целое | Новое состояние заказа |
Пример:
Запрос:
POST https://ip:port/tm_tapi/1.0/change_order_state HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 71
order_id=18561&need_state=14&signature=3e8107e0c044e55d983db1fbed82fd8c
Ответ:
<response>
<code>0</code>
<descr>OK</descr>
<data>
<ORDER_ID>18561</ORDER_ID>
<NEW_STATE>14</NEW_STATE>
</data>
</response>
Запись пути к файлу разговора в базу данных
Метод: POST
Название запроса: create_record_link
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| RECORD_DATE | ДДММГГГГччммсс | Дата записи |
| RECORD_LENGTH | Целое | Продолжительность записи (в секундах) |
| CALL_ID | Строка, <= 60 символов | ИД звонка (необязателен, если указан PHONE) |
| PHONE | Строка, <= 16 символов | Номер телефона (необязателен, если указан CALL_ID) |
| FILE_PATH | Строка, <=255 символов | Путь к файлу записи |
| CALL_TYPE | 0 или 1 | 0 — Исходящий, 1 — Входящий |
| signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды: нет.
Возвращаемые данные в случае успешного выполнения запроса
| Параметр | Тип | Описание |
|---|---|---|
| RECORD_ID | Целое | ИД созданной записи |
Пример:
Запрос:
POST https://ip:port/tm_tapi/1.0/create_record_link HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 185
RECORD_DATE=20130122180949&RECORD_LENGTH=215&CALL_ID=12345&PHONE=8987564&FILE_PATH=d%3A%5Ctemp%5CTM
%5Ctrunk%5CSource%5CDevUtils%5CTMAPITest%5C&CALL_TYPE=1&signature=56851c4e8d2d4bb9ba615615f76ad7f7
Ответ:
<response>
<code>0</code>
<descr>OK</descr>
<data>
<RECORD_ID>25</RECORD_ID>
</data>
</response>
Создать новый заказ
Метод: POST
Название запроса: make_new_order
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| PHONE | Строка, <= 16 символов | Номер телефона |
| ORDER_STATE_ID | Целое | ИД состояния заказа |
| signature | Строка | Поле для проверки секретного ключа |
| Необязательные параметры | ||
| CREWGROUPID | Целое | ИД группы экипажа |
| TARIF_ID | Целое | ИД тарифа |
| DISCOUNTEDSUMM | Дробное | Фиксированная сумма за заказ |
| CUSTOMER | Строка, <=80 символов | Заказчик |
| SOURCE | Строка, <=80 символов | Адрес подачи |
| SOURCE_STREET | Целое | ИД улицы подачи |
| SOURCE_HOUSE | Строка, <=10 символов | Дом подачи |
| SOURCE_FLAT | Строка, <=10 символов | Квартира подачи |
| SOURCE_POINT | Целое | ИД пункта подачи |
| DESTINATION | Строка, <=80 символов | Адрес назначения |
| DESTINATION_STREET | Целое | ИД улицы назначения |
| DESTINATION_HOUSE | Строка, <=10 символов | Дом назначения |
| DESTINATION_FLAT | Строка, <=10 символов | Квартира назначения |
| DESTINATION_POINT | Целое | ИД пункта назначения |
| CREWID | Целое | ИД экипажа |
| SUMM | Дробное | Стоимость заказа без учета скидок (наценок) |
| STARTUSER | Целое | Пользователь, создавший заказ |
| STARTTIME | ГГГГММДДччммсс | Дата создания заказа |
| FINISHUSER | Целое | Пользователь, завершивший заказ |
| FINISHTIME | ГГГГММДДччммсс | Дата завершения заказа |
| SOURCE_ZONE | Целое | Район подачи |
| DESTINATION_ZONE | Целое | Район назначения |
| SOURCE_PARKING | Целое | Стоянка подачи |
| DESTINATION_PARKING | Целое | Стоянка назначения |
| SOURCE_TIME | ГГГГММДДччммсс | Дата подачи |
| SOURCE_COUNTRY | 0 или 1 (false или true) | Признак междугороднего заказа |
| IS_PRIOR | 0 или 1 (false или true) | Признак предварительного заказа |
| PRIZE | 0 или 1 (false или true) | Признак призового заказа |
| NOTE | Строка, <=80 символов | Примечание |
| BONUSPOINT | Дробное | Бонусные баллы, начисленные водителю за заказ |
| DISTANCE | Дробное | Километраж по городу (в километрах) |
| HOURLY_LEN | Целое | Длительность исполнения почасового заказа (в минутах) |
| HOURLY_START | ГГГГММДДччммсс | Дата начала отсчета при почасовом заказе |
| HOURLY_PAY | 0 или 1 (false или true) | Признак почасового заказа |
| PHONE_TO_DIAL | Строка, <=16 символов | Номер телефона для отзвона по заказу |
| FROMBORDER | 0 или 1 (false или true) | Признак заказа "с бордюра" |
| WAITING_START | ГГГГММДДччммсс | Дата начала ожидания заказчика водителем |
| WAITING_LENGTH | Целое | Общая длина периода ожидания заказчика водителем (в минутах) |
| BACKFREE | Целое | Признак применения скидки в 50% на обратный путь |
| INPUTTIME | ГГГГММДДччммсс | Дата принятия заказа (от даты создания заказа отличается тем, что может быть задана пользователем) |
| MONEY_RECEIVE | 0 или 1 (false или true) | Подтверждение принятия денег наличными |
| NOTIFY_BEFORE | Целое | Период времени, за который пользователь оповещается о наступлении даты подачи |
| WANTCREWID | Целое | ИД желаемого экипажа |
| DISTANCE_COUNTRY | Дробное | Километраж за границами города (в километрах) |
| DISTANCE_CHECK | 0 или 1 (false или true) | Разрешение ручного ввода километража |
| CLIENTID | Целое | ИД постоянного клиента |
| INFRA_STATE | Целое | Состояние заявки в исходящей кампании колцентра INFRA (1 - заявка передана в исходящую компанию, 2 - отзвон успешно произведен, 3 - занято, 4 - не берут трубку) |
| INFRA_ORDER | Целое | INFRA-заказ (спец. поле для работы с колцентром компании Инфрател) |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса
| Параметр | Тип | Описание |
|---|---|---|
| ORDER_ID | Целое | ИД созданного заказа |
Пример:
Запрос:
POST https://ip:port/tm_tapi/1.0/make_new_order HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 206
PHONE=89058770593&ORDER_STATE_ID=10&DISCOUNTED_SUMM=100&signature=afc947f610eba380df6d0e441b03ddad
Ответ:
<response>
<code>0</code>
<descr>OK</descr>
<data>
<order_id>27</order_id>
</data>
</response>
Поиск улицы в базе
Метод: POST
Название запроса: street_search
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| PHONE | Строка, <= 16 символов | Номер телефона |
| CALL_ID | Целое | ИД звонка |
| VOICE_STREET | Строка, <= 60 символов | Название улицы или пункта, полученное через преобразование голоса в текст |
| signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| CALL_ID | Целое | ИД звонка |
| PHONE | Строка, <= 16 символов | Номер телефона |
| STREET_FOUND | 0 или 1 (false или true) | Признак того, что улица найдена |
| STREET_NAME | Строка, <= 60 символов | Наименование улицы или пункта, найденное в базе данных |
Пример:
Запрос:
POST https://ip:port/tm_tapi/1.0/new_order_by_voice HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 175
PHONE=89058770593&CALL_ID=56&VOICE_STREET=пушкинск&FIND_STREET=0&API_FIND_STREET=&NUM_HOUSE=&signat
ure=9204a53e0f4842bb623c3a5f7683520a
Ответ:
<response>
<code>0</code>
<descr>OK</descr>
<data>
<CALL_ID>56</CALL_ID>
<PHONE>89058770593</PHONE>
<FIND_STREET>1</FIND_STREET>
<API_FIND_STREET>Пушкинская</API_FIND_STREET>
</data>
</response>
Смена состояния заказа по результату автодозвона
Метод: POST
Название запроса: set_request_state
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| STATE_ID | Целое | Cостояние заказа до отзвона |
| PHONE_TYPE | 0 или 1 | Признак, указывающий кому был совершен звонок (0 - водителю, 1 - клиенту) |
| ORDER_ID | Целое | ИД заказа |
| STATE | Целое (2, 3, 4, 5) | Состояние отзвона |
| signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: нет
Настройки смены состояний заказа с использованием автодозвона задаются в карточке состояний заказа.
Пример:
Запрос: POST https://ip:port/tm_tapi/1.0/set_request_state HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 71 state_id=7&phone_type=1&order_id=50&state=4&signature=0eb50db401d3540e038fde68eb260333 Ответ: <response> <code>0</code> <descr>OK</descr> </response>
Соединить клиента и водителя
Метод: POST
Название запроса: connect_client_and_driver
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| order_id | Целое | ИД заказа |
| signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Не найден заказ с таким ИД |
| 102 | Не найдена биржа заказа у данного заказа |
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: POST https://ip:port/tm_tapi/1.0/connect_client_and_driver HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 53 order_id=13&signature=6a4b16da44a495b67eb7af11d51954d4 Ответ: <response> <code>102</code> <descr>Market not found by OrderId</descr> </response>
Количество свободных экипажей на линии
Метод: GET
Название запроса: get_free_crews_count
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| signature | Строка | Поле для проверки секретного ключа. |
| Необязательные параметры | ||
| crew_group_id | Целое | ИД группы экипажа предполагаемого заказа. |
| uds_id | Целое | ИД службы ЕДС предполагаемого заказа. |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| COUNT | Целое | Количество свободных экипажей на линии |
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_free_crews_count? crew_group_id=1&uds_id=1&signature=88ca2091061c3e90123275f2c5df55a6 HTTP/1.1 Content-Type: application/x-www-form-urlencoded Ответ: <response> <code>0</code> <descr>OK</descr> <data> <COUNT>5</COUNT> </data> </response>
Запрос пользователя по логину софтфона
Метод: GET
Название запроса: get_user_by_sip_login
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| signature | Строка | Поле для проверки секретного ключа. |
| login | Строка | Логин SIP-аккаунта. |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| ID | Целое | ИД пользователя, который использует указанный логин SIP-аккаунта софтфона в данный момент. |
| NAME | Строка | Имя пользователя, который использует указанный логин SIP-аккаунта софтфона в данный момент. |
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_user_by_sip_login? login=LOGIN&signature=9b06455cdfe933e7af12a35a70e9b1c6 HTTP/1.1 Content-Type: application/x-www-form-urlencoded Ответ: <response> <code>0</code> <descr>OK</descr> <data> <ID>1</ID> <NAME>ADMINISTRATOR</NAME> </data> </response>
Установить режим «Перерыв» для линий софтфона
Метод: POST
Название запроса: set_sip_account_dnd_mode
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| dnd | Строка | 0 или 1 |
| user_login | Строка | Логин пользователя ТМ |
| lines | Строка | Список линий, разделенных символом «|». |
| signature | Строка | Поле для проверки секретного ключа. |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Пользователь с таким логином или линиями не найден. |
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: POST https://ip:port/tm_tapi/1.0/set_sip_account_dnd_mode HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 66 dnd=1&user_login=USER&lines=101%7C102&signature=3e8107e0c044e55d983db1fbed82fd8c Ответ: <response> <code>0</code> <descr>OK</descr> </response>
Запрос телефонов водителя по позывному экипажа
Метод: GET
Название запроса: get_driver_phones_by_crew_code
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Обязательные параметры | ||
| crew_code | Строка | Позывной экипажа |
Специальные возвращаемые коды:
| Код | Описание |
|---|---|
| 100 | Водитель не найден |
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| mobile_phone | Строка | Сотовый телефон водителя |
| home_phone | Строка | Домашний телефон водителя |
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_driver_phones_by_crew_code? crew_code=CODE&signature=6f03bc45d3aa17f7738672180a3ee5de HTTP/1.1 Content-Type: application/x-www-form-urlencoded Ответ: <response> <code>0</code> <descr>OK</descr> <data> <mobile_phone>123456789</mobile_phone> <home_phone>987654321</home_phone> </data> </response>
Запрос информации о ключе защиты
Метод: GET
Название запроса: get_key_info
Параметры: нет.
Специальные возвращаемые коды: нет.
Возвращаемые данные в случае успешного выполнения запроса:
| Параметр | Тип | Описание |
|---|---|---|
| company_name | Строка | Наименование организации |
| company_id | Целое | ИД организации |
| tm_server_license_count | Целое | Количество лицензий для TMServer |
| tm_license_count | Целое | Количество лицензий для TM2 |
| tm_terminal_license_count | Целое | Количество лицензий для терминала |
| tm_driver_server_license_count | Целое | Количество лицензий для TMDriverServer |
| tm_driver_license_count | Целое | Количество лицензий для водителей |
| tm_sms_server_license_count | Целое | Количество лицензий для TMSMSServer |
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_key_info HTTP/1.1 Content-Type: application/x-www-form-urlencoded signature=6f03bc45d3aa17f7738672180a3ee5de Ответ: <response> <code>0</code> <descr>OK</descr> <data> company_name>ООО БИТ-Мастер</company_name> <company_id>000</company_id> <tm_server_license_count>1</tm_server_license_count> <tm_license_count>10</tm_license_count> <tm_terminal_license_count>1</tm_terminal_license_count> <tm_driver_server_license_count>1</tm_driver_server_license_count> <tm_driver_license_count>30</tm_driver_license_count> <tm_sms_server_license_count>1</tm_sms_server_license_count> </data> </response>
Пример формы для заказа такси
Приведенная форма является примером, на основе которого можно построить собственную форму для принятия интернет-заказов. Форму можно использовать либо в исходном варианте, либо применяя запросы TM API. Для того, чтобы данная форма функционировала, необходимо открыть файл в любом текстовом редакторе и указать корректные IP-адрес сервера Такси-Мастер, порт TM API и секретный ключ. Далее вам следует загрузить файл на хостинг.
Форма, представленная в примере, будет выглядеть следующим образом:
