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 - специальный набор инструментов Такси-Мастер, который позволит объединить систему с вашим сайтом и различными полезными сервисами. Он предоставляется вам на свободных условиях.
Благодаря этому набору вы сможете:
- Создать механизм приема заказов через интернет.
- Сделать ваш сайт более информативным: публиковать полезную для клиентов информацию прямо из системы - список ближайших экипажей, предварительный расчет стоимости поездки, мониторинг движения автомобиля такси в процессе выполнения заказа, карты города и контактную информацию.
- Расширить возможности своей службы за счет популярного онлайн-сервиса Яндекс.Такси.
Содержание
- 1 Параметры TM API
- 2 Общее описание протокола
- 3 Описание запросов
- 3.1 Запрос-пинг
- 3.2 Запрос списка групп экипажей
- 3.3 Запрос списка групп клиентов
- 3.4 Запрос списка служб ЕДС
- 3.5 Запрос списка тарифов
- 3.6 Запрос списка услуг
- 3.7 Запрос списка параметров заказа
- 3.8 Запрос списка скидок
- 3.9 Создание нового заказа
- 3.10 Создание нового заказа 2
- 3.11 Расчет суммы заказа
- 3.12 Расчет суммы заказа 2
- 3.13 Изменение состояния заказа
- 3.14 Запрос информации об экипажах
- 3.15 Запрос информации об экипажах на линии
- 3.16 Запрос информации о водителе
- 3.17 Запрос списка водителей
- 3.18 Запрос информации об автомобиле
- 3.19 Запрос списка автомобилей
- 3.20 Запрос координат экипажей
- 3.21 Запрос адресов, содержащих нужную строку
- 3.22 Анализ маршрута
- 3.23 Анализ маршрута 2
- 3.24 Запрос информации о состоянии заказа
- 3.25 Создание задачи СМС серверу
- 3.26 Проверка авторизации
- 3.27 Регистрация клиента
- 3.28 Запрос информации по клиенту
- 3.29 Изменение информации по клиенту
- 3.30 Запрос текущих заказов
- 3.31 Запрос выполненных заказов
- 3.32 Проведение операции по клиенту
- 3.33 Запрос операций по клиенту
- 3.34 Проведение операции по водителю
- 3.35 Запрос операций по водителю
- 3.36 Задание координат экипажей
- 3.37 Изменение информации по заказу
- 3.38 Анализ телефона
- 3.39 Показать сообщение в ТМ
- 3.40 Запрос списка купленных смен водителей
- 3.41 Запрос списка запланированных смен водителей
- 3.42 Продажа смены водителю
- 3.43 Сохранение отзыва клиента
- 4 Описание протокола TMTAPI Версия 1.0
- 4.1 Общее описание протокола
- 4.2 Описание запросов
- 4.2.1 Запрос информации по номеру телефона
- 4.2.2 Запрос информации по ИД заказа
- 4.2.3 Смена состояния заказа
- 4.2.4 Запись пути к файлу разговора в базу данных
- 4.2.5 Создать новый заказ
- 4.2.6 Поиск улицы в базе
- 4.2.7 Смена состояния заказа по результату автодозвона
- 4.2.8 Соединить клиента и водителя
- 4.2.9 Количество свободных экипажей на линии
- 4.2.10 Запрос пользователя по логину софтфона
- 4.2.11 Установить режим «Перерыв» для линий софтфона
- 4.3 Запрос телефонов водителя по позывному экипажа
- 4.4 Запрос информации о ключе защиты
- 5 Пример формы для заказа такси
Параметры 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 и секретный ключ. Далее вам следует загрузить файл на хостинг.
Форма, представленная в примере, будет выглядеть следующим образом: