TM API — различия между версиями

Материал из TaxiMaster
Перейти к: навигация, поиск
м (Откат правок TechnicalWriter (обсуждение) к версии AnnaKurochkina)
(Отмена правки 11178, сделанной участником TechnicalWriter (обс.))
Строка 7: Строка 7:
 
# Расширить возможности своей службы за счет популярного онлайн-сервиса Яндекс.Такси.   
 
# Расширить возможности своей службы за счет популярного онлайн-сервиса Яндекс.Такси.   
  
{{Warning|Все перечисленные функции работают в Такси-Мастер не ниже [[История изменений в программе Такси-Мастер#Такси-Мастер. Версия 0.6.1 от 31.12.2014|0.6.1 от 31.12.2014г]]. В более низких версиях программы часть функций может не поддерживаться.}}
+
{{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
  
Название запроса: change_order_state
+
Название запроса: calc_order_cost2
 
 
Параметры:
 
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 1121: Строка 1135:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|ORDER_ID
+
|tariff_id
 
|Целое
 
|Целое
|ИД заказа
+
|ИД тарифа
 
|-
 
|-
|NEW_STATE
+
Параметры:
|Целое
 
|Новое состояние заказа
 
|}
 
  
Специальные возвращаемые коды:
+
!colspan="3"|Необязательные параметры
{|
+
|-
!Код
+
|source_time
!Описание
+
|ГГГГММДДччммсс
 +
|Время подачи
 
|-
 
|-
|100
+
|is_prior
|Не найден заказ ИД=ORDER_ID
+
|true или false
 +
|Предварительный заказ
 
|-
 
|-
|101
+
|client_id
|Не найдено состояние заказа ИД=NEW_STATE
+
|Целое
 +
|ИД клиента
 
|-
 
|-
|102
+
|discount_id
|Изменение состояния не соответствует необходимым условиям.
+
|Целое
|}
+
|ИД скидки
 
 
Возвращаемые данные в случае успешного выполнения запроса:
 
{|
 
!Параметр
 
!Тип
 
!Описание
 
 
|-
 
|-
|ORDER_ID
+
|disc_card_id
 
|Целое
 
|Целое
|ИД заказа
+
|ИД дисконтной карты
 
|-
 
|-
|NEW_STATE
+
|source_zone_id
 
|Целое
 
|Целое
|Новое состояние заказа
+
|ИД района подачи
|}
 
 
 
Пример:
 
<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"|Обязательные параметры
+
|dest_zone_id
 +
|Целое
 +
|ИД района назначения
 
|-
 
|-
|crew_id
+
|distance_city
|Целое
+
|Дробное
|ИД экипажа
+
|Километраж по городу
|}
 
 
 
Специальные возвращаемые коды:
 
{|
 
!Код
 
!Описание
 
 
|-
 
|-
|100
+
|distance_country
|Экипаж не найден
+
|Дробное
|}
+
|Километраж за городом
 
 
Возвращаемые данные в случае успешного выполнения запроса:
 
{|
 
!Параметр
 
!Тип
 
!Описание
 
 
|-
 
|-
|crew_id
+
|source_distance_country
|Целое
+
|Дробное
|ИД экипажа
+
|Километраж до подачи за городом
 
|-
 
|-
|code
+
|is_country
|Строка
+
|true или false
|Позывной экипажа
+
|Загородный заказ
 
|-
 
|-
|name
+
|waiting_minutes
|Строка
+
|Целое
|Наименование экипажа
+
|Время ожидания посадки клиента в минутах
 
|-
 
|-
|driver_id
+
|is_hourly
|Целое
+
|true или false
|ИД водителя
+
|Почасовой заказ
 
|-
 
|-
|car_id
+
|hourly_minutes
 
|Целое
 
|Целое
|ИД автомобиля
+
|Длительность почасового заказа в минутах
 
|-
 
|-
|crew_group_id
+
|is_prize
|Целое
+
|true или false
|ИД группы экипажа
+
|Призовой заказ
 
|-
 
|-
|crew_state_id
+
|back_way
|Целое
 
|ИД состояния экипажа
 
|-
 
|online
 
 
|true или false
 
|true или false
|Водитель подключен к серверу «Связи с водителями»
+
|Обратный путь за городом
 
|-
 
|-
|work_shift_sum
+
|order_params
|Дробное
+
|Массив
|Сумма, списываемая за смену
+
|Массив параметров заказа
 
|-
 
|-
|min_balance
+
|&bull;
|Дробное
 
|Минимальный баланс, при котором можно выйти на смену
 
|-
 
|common_priority
 
 
|Целое
 
|Целое
|Общий приоритет
+
|ИД параметра заказа
 
|-
 
|-
|static_priority
+
|cashless
|Целое
+
|true или false
|Статический приоритет
+
|Признак безналичного заказа
 
|-
 
|-
|dynamic_priority
+
|stops
|Целое
+
|Массив
|Динамический приоритет
+
|Список остановок
 
|-
 
|-
|order_change_id
+
|&bull; zone_id
 
|Целое
 
|Целое
|Индивидуальная сдача с заказа
+
|ИД района остановки
 +
|}
 +
 
 +
Специальные возвращаемые коды:
 +
{|
 +
!Код
 +
!Описание
 
|-
 
|-
|has_light_house
+
|100
|true или false
+
|Тариф не найден
|Шашка
+
|-
 +
|101
 +
|Ошибка при расчете по тарифу
 +
|-
 +
|102
 +
|Скидка не найдена
 +
|-
 +
|103
 +
|Клиент не найден
 +
|-
 +
|104
 +
|Район подачи не найден
 +
|-
 +
|105
 +
|Район назначения не найден
 +
|-
 +
|106
 +
|Дисконтная карта не найдена
 +
|-
 +
|107
 +
|Район остановки не найден
 +
|}
 +
 
 +
Возвращаемые данные в случае успешного выполнения запроса:
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 
|-
 
|-
|has_label
+
|sum
|true или false
+
|Дробное
|Наклейка
+
|Рассчитанная общая сумма заказа
 
|-
 
|-
|order_params
+
|info
 
|Массив
 
|Массив
|Массив параметров заказа экипажа
+
|Дополнительная информация по расчету суммы заказа
 +
|-
 +
| &bull; comment
 +
|Строка
 +
|Описание позиции дополнительной информации по расчету суммы заказа
 
|-
 
|-
|&bull;
+
| &bull; sum
|Целое
+
|Строка
|ИД параметра заказа
+
|Сумма позиции дополнительной информации по расчету суммы заказа
 
|}
 
|}
  
Строка 1290: Строка 1286:
 
Запрос:  
 
Запрос:  
  
GET https://ip:port/common_api/1.0/get_crew_info?crew_id=1 HTTP/1.1
+
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":{
     "crew_id":1,
+
     "sum":1000,
     "code":"123",
+
     "info":[
    "name":"CREW_NAME",
+
      {
    "driver_id":1,
+
        "comment":"SUM1",
    "car_id":1,
+
        "sum":"100"
    "crew_group_id":1,
+
      },
    "crew_state_id":3,
+
      {
    "online":true
+
        "comment":"SUM2",
    "work_shift_sum":0,
+
         "sum":"200"
    "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,
 
 
     ]
 
     ]
 
   }
 
   }
Строка 1322: Строка 1338:
 
</pre>
 
</pre>
  
=== Запрос информации об экипажах на линии ===
 
Метод: GET
 
  
Название запроса: get_crews_info
+
=== Изменение состояния заказа ===
  
Параметры: нет
+
Метод: POST
  
Специальные возвращаемые коды: нет
+
Название запроса: change_order_state
  
Возвращаемые данные в случае успешного выполнения запроса:
+
Параметры:
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 1337: Строка 1351:
 
!Описание
 
!Описание
 
|-
 
|-
! colspan="3" | Обязательные параметры
+
!colspan="3"|Обязательные параметры
 
|-
 
|-
|crews_info
+
|ORDER_ID
|Массив
+
|Целое
|Массив экипажей на линии
+
|ИД заказа
 
|-
 
|-
|&bull; crew_id
+
|NEW_STATE
 
|Целое
 
|Целое
|ИД экипажа
+
|Новое состояние заказа
 +
|}
 +
 
 +
Специальные возвращаемые коды:
 +
{|
 +
!Код
 +
!Описание
 
|-
 
|-
|&bull; code
+
|100
|Строка
+
|Не найден заказ ИД=ORDER_ID
|Позывной экипажа
 
 
|-
 
|-
|&bull; name
+
|101
|Строка
+
|Не найдено состояние заказа ИД=NEW_STATE
|Наименование экипажа
 
 
|-
 
|-
|&bull; driver_id
+
|102
|Целое
+
|Изменение состояния не соответствует необходимым условиям.
|ИД водителя
+
|}
 +
 
 +
Возвращаемые данные в случае успешного выполнения запроса:
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 
|-
 
|-
|&bull; car_id
+
|ORDER_ID
 
|Целое
 
|Целое
|ИД автомобиля
+
|ИД заказа
 
|-
 
|-
|&bull; crew_group_id
+
|NEW_STATE
 
|Целое
 
|Целое
|ИД группы экипажа
+
|Новое состояние заказа
|-
+
|}
|&bull; crew_state_id
+
 
|Целое
+
Пример:
|ИД состояния экипажа
+
<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
 +
 
 +
Параметры:
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 
|-
 
|-
|&bull; online
+
!colspan="3"|Обязательные параметры
|true или false
 
|Водитель подключен к серверу «Связи с водителями»
 
 
|-
 
|-
|&bull; work_shift_sum
+
|crew_id
|Дробное
 
|Сумма, списываемая за смену
 
|-
 
|&bull; min_balance
 
|Дробное
 
|Минимальный баланс, при котором можно выйти на смену
 
|-
 
|&bull; common_priority
 
 
|Целое
 
|Целое
|Общий приоритет
+
|ИД экипажа
 +
|}
 +
 
 +
Специальные возвращаемые коды:
 +
{|
 +
!Код
 +
!Описание
 +
|-
 +
|100
 +
|Экипаж не найден
 +
|}
 +
 
 +
Возвращаемые данные в случае успешного выполнения запроса:
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 
|-
 
|-
|&bull; static_priority
+
|crew_id
 
|Целое
 
|Целое
|Статический приоритет
+
|ИД экипажа
 +
|-
 +
|code
 +
|Строка
 +
|Позывной экипажа
 +
|-
 +
|name
 +
|Строка
 +
|Наименование экипажа
 
|-
 
|-
|&bull; dynamic_priority
+
|driver_id
 
|Целое
 
|Целое
|Динамический приоритет
+
|ИД водителя
 
|-
 
|-
|&bull; order_change_id
+
|car_id
 
|Целое
 
|Целое
|Индивидуальная сдача с заказа
+
|ИД автомобиля
 
|-
 
|-
|&bull; has_light_house
+
|crew_group_id
|true или false
+
|Целое
|Шашка
+
|ИД группы экипажа
 
|-
 
|-
|&bull; has_label
+
|crew_state_id
|true или false
+
|Целое
|Наклейка
+
|ИД состояния экипажа
 
|-
 
|-
|&bull; has_label
+
|online
 
|true или false
 
|true или false
|Наклейка
+
|Водитель подключен к серверу «Связи с водителями»
 
|-
 
|-
|&bull; order_params
+
|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
 
|Массив
 
|Массив
 
|Массив параметров заказа экипажа
 
|Массив параметров заказа экипажа
 
|-
 
|-
|&bull; order_params
+
|&bull;
 
|Целое
 
|Целое
 
|ИД параметра заказа
 
|ИД параметра заказа
Строка 1423: Строка 1520:
  
 
<pre>
 
<pre>
Запрос:
+
Запрос:  
GET https://ip:port/common_api/1.0/get_crews_info HTTP/1.1
+
 
 +
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":{
     "crews_info":[
+
     "crew_id":1,
      {
+
    "code":"123",
        "crew_id":1,
+
    "name":"CREW_NAME",
        "code":"123",
+
    "driver_id":1,
        "name":"CREW_NAME1",
+
    "car_id":1,
        "driver_id":1,
+
    "crew_group_id":1,
        "car_id":1,
+
    "crew_state_id":3,
        "crew_group_id":1,
+
    "online":true
        "crew_state_id":3
+
    "work_shift_sum":0,
        "online":true,
+
    "min_balance":10,
        "work_shift_sum":0,
+
    "common_priority":0,
        "min_balance":10,
+
    "static_priority":0,
        "common_priority":10,
 
        "static_priority":10,
 
 
         "dynamic_priority":0,
 
         "dynamic_priority":0,
        "order_change_id":0,
+
    "order_change_id":218,
        "has_light_house":false,
+
    "has_light_house":false,
        "has_label":false,
+
    "has_label":false,
        "order_params":[
+
    "order_params":[
          1,
+
      1,
          5,
+
       2,
        ]
 
       },
 
      {
 
        "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":[]
 
      }
 
 
     ]
 
     ]
 
   }
 
   }
Строка 1479: Строка 1554:
 
</pre>
 
</pre>
  
=== Запрос информации о водителе ===
+
=== Запрос информации об экипажах на линии ===
 
Метод: GET
 
Метод: GET
  
Название запроса: get_driver_info
+
Название запроса: get_crews_info
 +
 
 +
Параметры: нет
 +
 
 +
Специальные возвращаемые коды: нет
  
Параметры:
+
Возвращаемые данные в случае успешного выполнения запроса:
 
{|
 
{|
!Параметры
+
!Параметр
 
!Тип
 
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
!colspan="3"|Обязательные параметры
+
! colspan="3" | Обязательные параметры
 +
|-
 +
|crews_info
 +
|Массив
 +
|Массив экипажей на линии
 
|-
 
|-
|driver_id
+
|&bull; crew_id
 
|Целое
 
|Целое
|ИД водителя
+
|ИД экипажа
 
|-
 
|-
!colspan="3"|Необязательные параметры
+
|&bull; code
 +
|Строка
 +
|Позывной экипажа
 
|-
 
|-
|need_photo
+
|&bull; name
|true или false
+
|Строка
|Нужна ли фотография водителя
+
|Наименование экипажа
|}
 
 
 
Специальные возвращаемые коды:
 
{|
 
!Код
 
!Описание
 
 
|-
 
|-
|100
+
|&bull; driver_id
|Водитель не найден
 
|}
 
 
 
Возвращаемые параметры в случае успешного выполнения запроса:
 
{|
 
!Параметр
 
!Тип
 
!Описание
 
|-
 
|driver_id
 
 
|Целое
 
|Целое
 
|ИД водителя
 
|ИД водителя
 
|-
 
|-
|name
+
|&bull; car_id
|Строка
+
|Целое
|ФИО водителя
+
|ИД автомобиля
 
|-
 
|-
|birthday
+
|&bull; crew_group_id
|ДД.ММ.ГГГГ
+
|Целое
|День рождения водителя
+
|ИД группы экипажа
 
|-
 
|-
|car_id
+
|&bull; crew_state_id
 
|Целое
 
|Целое
|ИД основного автомобиля водителя
+
|ИД состояния экипажа
 
|-
 
|-
|license
+
|&bull; online
|Строка
+
|true или false
|Удостоверение водителя
+
|Водитель подключен к серверу «Связи с водителями»
 
|-
 
|-
|home_phone
+
|&bull; work_shift_sum
|Строка
+
|Дробное
|Домашний телефон водителя
+
|Сумма, списываемая за смену
 
|-
 
|-
|mobile_phone
+
|&bull; min_balance
|Строка
+
|Дробное
|Мобильный телефон водителя
+
|Минимальный баланс, при котором можно выйти на смену
 
|-
 
|-
|is_locked
+
|&bull; common_priority
|true или false
+
|Целое
|Водитель заблокирован
+
|Общий приоритет
 
|-
 
|-
|is_dismissed
+
|&bull; static_priority
|true или false
+
|Целое
|Водитель уволен
+
|Статический приоритет
 
|-
 
|-
|driver_photo
+
|&bull; dynamic_priority
|Base64
+
|Целое
|Фото водителя (только если need_photo = true)
+
|Динамический приоритет
 +
|-
 +
|&bull; order_change_id
 +
|Целое
 +
|Индивидуальная сдача с заказа
 +
|-
 +
|&bull; has_light_house
 +
|true или false
 +
|Шашка
 +
|-
 +
|&bull; has_label
 +
|true или false
 +
|Наклейка
 +
|-
 +
|&bull; has_label
 +
|true или false
 +
|Наклейка
 +
|-
 +
|&bull; order_params
 +
|Массив
 +
|Массив параметров заказа экипажа
 +
|-
 +
|&bull; 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/get_driver_info?driver_id=1&need_photo=false HTTP/1.1
 
 
Signature: <...>
 
Signature: <...>
  
 
Ответ:
 
Ответ:
 
 
{
 
{
 
   "code":0,
 
   "code":0,
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
     "driver_id":1,
+
     "crews_info":[
    "name":"DRIVER_NAME",
+
      {
    "birthday":"01.01.1980",
+
        "crew_id":1,
    "car_id":1,
+
        "code":"123",
    "license":"1234567890",
+
        "name":"CREW_NAME1",
    "home_phone":"123456",
+
        "driver_id":1,
    "mobile_phone":"+79123456789",
+
        "car_id":1,
    "is_locked":false,
+
        "crew_group_id":1,
    "is_dismissed":false
+
        "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_drivers_info
+
Название запроса: get_driver_info
  
 
Параметры:
 
Параметры:
 
{|
 
{|
!Параметр
+
!Параметры
 
!Тип
 
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
!colspan="3"|Небязательные параметры
+
!colspan="3"|Обязательные параметры
 
|-
 
|-
|locked_drivers
+
|driver_id
|true или false
+
|Целое
|Включить в ответ запроса заблокированных водителей (по умолчанию false)
+
|ИД водителя
 
|-
 
|-
|dismissed_drivers
+
!colspan="3"|Необязательные параметры
 +
|-
 +
|need_photo
 
|true или false
 
|true или false
|Включить в ответ запроса уволенных водителей (по умолчанию false)
+
|Нужна ли фотография водителя
 
|}
 
|}
  
 +
Специальные возвращаемые коды:
 +
{|
 +
!Код
 +
!Описание
 +
|-
 +
|100
 +
|Водитель не найден
 +
|}
  
Специальные возвращаемые коды: нет
+
Возвращаемые параметры в случае успешного выполнения запроса:
 
 
Возвращаемые данные в случае успешного выполнения запроса:
 
 
 
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 1619: Строка 1750:
 
!Описание
 
!Описание
 
|-
 
|-
|drivers_info
+
|driver_id
|Массив
 
|Массив не удаленных водителей
 
|-
 
|&bull; driver_id
 
 
|Целое
 
|Целое
 
|ИД водителя
 
|ИД водителя
 
|-
 
|-
|&bull; name
+
|name
 
|Строка
 
|Строка
 
|ФИО водителя
 
|ФИО водителя
 
|-
 
|-
|&bull; balance
+
|balance
 
|Дробное
 
|Дробное
 
|Баланс водителя
 
|Баланс водителя
 
|-
 
|-
|&bull; birthday
+
|birthday
 
|ДД.ММ.ГГГГ
 
|ДД.ММ.ГГГГ
 
|День рождения водителя
 
|День рождения водителя
 
|-
 
|-
|&bull; car_id
+
|car_id
 
|Целое
 
|Целое
 
|ИД основного автомобиля водителя
 
|ИД основного автомобиля водителя
 
|-
 
|-
|&bull; license
+
|license
 
|Строка
 
|Строка
 
|Удостоверение водителя
 
|Удостоверение водителя
 
|-
 
|-
|&bull; home_phone
+
|home_phone
 
|Строка
 
|Строка
 
|Домашний телефон водителя
 
|Домашний телефон водителя
 
|-
 
|-
|&bull; mobile_phone
+
|mobile_phone
 
|Строка
 
|Строка
 
|Мобильный телефон водителя
 
|Мобильный телефон водителя
 
|-
 
|-
|&bull; is_locked
+
|is_locked
 
|true или false
 
|true или false
 
|Водитель заблокирован
 
|Водитель заблокирован
 
|-
 
|-
|&bull; is_dismissed
+
|is_dismissed
 
|true или false
 
|true или false
 
|Водитель уволен
 
|Водитель уволен
 
|-
 
|-
|&bull; order_params
+
|driver_photo
|Массив
+
|Base64
 +
|Фото водителя (только если need_photo = true)
 +
|-
 +
|order_params
 +
|Массив  
 
|Массив параметров заказа водителя
 
|Массив параметров заказа водителя
 
|-
 
|-
Строка 1675: Строка 1806:
  
 
<pre>
 
<pre>
 
 
Запрос:
 
Запрос:
  
GET https://ip:port/common_api/1.0/get_drivers_info HTTP/1.1
+
GET https://ip:port/common_api/1.0/get_driver_info?driver_id=1&need_photo=false HTTP/1.1
 
Signature: <...>
 
Signature: <...>
locked_drivers=true&dismissed_drivers=true
 
 
  
 
Ответ:
 
Ответ:
Строка 1689: Строка 1817:
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
     "drivers_info":[
+
     "driver_id":1,
      {
+
    "name":"DRIVER_NAME",
        "driver_id":1,
+
    "balance":100,
        "name":"DRIVER_NAME1",
+
    "birthday":"01.01.1980",
        "balance":100.00,
+
    "car_id":1,
        "birthday":"01.01.1980",
+
    "license":"1234567890",
        "car_id":1,
+
    "home_phone":"123456",
        "license":"1234567890",
+
    "mobile_phone":"+79123456789",
        "home_phone":"123456",
+
    "is_locked":false,
        "mobile_phone":"+79123456788",
+
    "is_dismissed":false,
        "is_locked":false,
+
    "order_params":[3,4]
        "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
+
Название запроса: get_drivers_info
  
 
Параметры:
 
Параметры:
 
{|
 
{|
!Параметры
+
!Параметр
 
!Тип
 
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
!colspan="3"|Обязательные параметры
+
!colspan="3"|Небязательные параметры
 
|-
 
|-
|car_id
+
|locked_drivers
|Целое
+
|true или false
|ИД автомобиля
+
|Включить в ответ запроса заблокированных водителей (по умолчанию false)
 
|-
 
|-
!colspan="3"|Необязательные параметры
+
|dismissed_drivers
|-
 
|need_photo
 
 
|true или false
 
|true или false
|Нужна ли фотография автомобиля
+
|Включить в ответ запроса уволенных водителей (по умолчанию false)
 
|}
 
|}
  
Специальные возвращаемые коды:
+
 
{|
+
Специальные возвращаемые коды: нет
!Код
 
!Описание
 
|-
 
|100
 
|Автомобиль не найден
 
|}
 
  
 
Возвращаемые данные в случае успешного выполнения запроса:
 
Возвращаемые данные в случае успешного выполнения запроса:
 +
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 1761: Строка 1864:
 
!Описание
 
!Описание
 
|-
 
|-
|car_id
+
|drivers_info
 +
|Массив
 +
|Массив не удаленных водителей
 +
|-
 +
|&bull; driver_id
 
|Целое
 
|Целое
|ИД автомобиля
+
|ИД водителя
 
|-
 
|-
|code
+
|&bull; name
 
|Строка
 
|Строка
|Позывной автомобиля
+
|ФИО водителя
 
|-
 
|-
|name
+
|&bull; balance
|Строка
+
|Дробное
|Наименование автомобиля
+
|Баланс водителя
 
|-
 
|-
|gos_number 
+
|&bull; birthday
|Строка
+
|ДД.ММ.ГГГГ
|Государственный номер автомобиля
+
|День рождения водителя
 
|-
 
|-
|color
+
|&bull; car_id
|Строка
+
|Целое
|Цвет автомобиля
+
|ИД основного автомобиля водителя
 
|-
 
|-
|mark
+
|&bull; license
 
|Строка
 
|Строка
|Марка автомобиля
+
|Удостоверение водителя
 
|-
 
|-
|model
+
|&bull; home_phone
 
|Строка
 
|Строка
|Модель автомобиля
+
|Домашний телефон водителя
 
|-
 
|-
|short_name
+
|&bull; mobile_phone
 
|Строка
 
|Строка
|Краткое название автомобиля
+
|Мобильный телефон водителя
 
|-
 
|-
|production_year
+
|&bull; is_locked
|Целое
+
|true или false
|Год выпуска автомобиля
+
|Водитель заблокирован
 
|-
 
|-
|is_locked
+
|&bull; is_dismissed
 
|true или false
 
|true или false
|Автомобиль заблокирован
+
|Водитель уволен
 
|-
 
|-
|order_params
+
|&bull; order_params
 
|Массив
 
|Массив
|Массив параметров заказа автомобиля
+
|Массив параметров заказа водителя
 
|-
 
|-
 
|&bull;
 
|&bull;
 
|Целое
 
|Целое
 
|ИД параметра заказа
 
|ИД параметра заказа
|-
 
|car_photo
 
|Base64
 
|Фото автомобиля (только если need_photo = true)
 
 
|}
 
|}
  
Строка 1817: Строка 1920:
  
 
<pre>
 
<pre>
 +
 
Запрос:
 
Запрос:
  
GET https://ip:port/common_api/1.0/get_car_info?car_id=1&need_photo=false HTTP/1.1
+
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":[
    "code":"123",
+
      {
    "name":"CAR_NAME",
+
        "driver_id":1,
    "gos_number":"a123bc",
+
        "name":"DRIVER_NAME1",
    "color":"COLOR",
+
        "balance":100.00,
    "mark":"MARK",
+
        "birthday":"01.01.1980",
    "model":"MODEL",
+
        "car_id":1,
    "short_name":"SHORT_NAME",
+
        "license":"1234567890",
    "production_year":2000,
+
        "home_phone":"123456",
    "is_locked":false,
+
        "mobile_phone":"+79123456788",
    "order_params":[1,2]
+
        "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_cars_info
+
Название запроса: get_car_info
  
 
Параметры:
 
Параметры:
Строка 1855: Строка 1977:
 
!Тип
 
!Тип
 
!Описание
 
!Описание
 +
|-
 +
!colspan="3"|Обязательные параметры
 +
|-
 +
|car_id
 +
|Целое
 +
|ИД автомобиля
 
|-
 
|-
 
!colspan="3"|Необязательные параметры
 
!colspan="3"|Необязательные параметры
 
|-
 
|-
|locked_cars
+
|need_photo
 
|true или false
 
|true или false
|Включить в ответ заблокированных автомобилей (по умолчанию false)
+
|Нужна ли фотография автомобиля
 +
|}
 +
 
 +
Специальные возвращаемые коды:
 +
{|
 +
!Код
 +
!Описание
 +
|-
 +
|100
 +
|Автомобиль не найден
 
|}
 
|}
  
 
Специальные возвращаемые коды: нет
 
 
 
Возвращаемые данные в случае успешного выполнения запроса:
 
Возвращаемые данные в случае успешного выполнения запроса:
 
Параметры:
 
 
{|
 
{|
!Параметры
+
!Параметр
 
!Тип
 
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
|cars_info
+
|car_id
|Массив
 
|Массив автомобилей
 
|-
 
|&bull; car_id
 
 
|Целое
 
|Целое
 
|ИД автомобиля
 
|ИД автомобиля
 
|-
 
|-
|&bull; code
+
|code
 
|Строка
 
|Строка
 
|Позывной автомобиля
 
|Позывной автомобиля
 
|-
 
|-
|&bull; name
+
|name
 
|Строка
 
|Строка
 
|Наименование автомобиля
 
|Наименование автомобиля
 
|-
 
|-
|&bull; gos_number
+
|gos_number
 
|Строка
 
|Строка
|Гос. номер автомобиля
+
|Государственный номер автомобиля
 
|-
 
|-
|&bull; color
+
|color
 
|Строка
 
|Строка
 
|Цвет автомобиля
 
|Цвет автомобиля
 
|-
 
|-
|&bull; mark
+
|mark
 
|Строка
 
|Строка
 
|Марка автомобиля
 
|Марка автомобиля
 
|-
 
|-
|&bull; model
+
|model
 
|Строка
 
|Строка
 
|Модель автомобиля
 
|Модель автомобиля
 
|-
 
|-
|&bull; short_name
+
|short_name
 
|Строка
 
|Строка
 
|Краткое название автомобиля
 
|Краткое название автомобиля
 
|-
 
|-
|&bull; production_year
+
|production_year
 
|Целое
 
|Целое
 
|Год выпуска автомобиля
 
|Год выпуска автомобиля
 
|-
 
|-
|&bull; is_locked
+
|is_locked
 
|true или false
 
|true или false
 
|Автомобиль заблокирован
 
|Автомобиль заблокирован
 
|-
 
|-
|&bull; order_params
+
|order_params
 
|Массив
 
|Массив
 
|Массив параметров заказа автомобиля
 
|Массив параметров заказа автомобиля
 
|-
 
|-
|&bull;  
+
|&bull;
 
|Целое
 
|Целое
 
|ИД параметра заказа
 
|ИД параметра заказа
 +
|-
 +
|car_photo
 +
|Base64
 +
|Фото автомобиля (только если need_photo = true)
 
|}
 
|}
  
Строка 1932: Строка 2064:
 
Запрос:
 
Запрос:
  
GET https://ip:port/common_api/1.0/get_cars_info HTTP/1.1
+
GET https://ip:port/common_api/1.0/get_car_info?car_id=1&need_photo=false HTTP/1.1
 
Signature: <...>
 
Signature: <...>
locked_cars=true
 
 
  
 
Ответ:
 
Ответ:
Строка 1943: Строка 2073:
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
  "cars_info":[
+
     "car_id":1,
     {
+
    "code":"123",
      "car_id":1,
+
    "name":"CAR_NAME",
      "code":"111",
+
    "gos_number":"a123bc",
      "name":"CAR_1",
+
    "color":"COLOR",
      "gos_number":"111111",
+
    "mark":"MARK",
      "color":"COLOR_1",
+
    "model":"MODEL",
      "mark":"MARK_1",
+
    "short_name":"SHORT_NAME",
      "model":"MODEL_1",
+
    "production_year":2000,
      "short_name":"SHORT_NAME_1",
+
    "is_locked":false,
      "production_year":2000,
+
    "order_params":[1,2]
      "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>
  
</pre>
 
  
=== Запрос координат экипажей ===
+
=== Запрос списка автомобилей ===
 +
 
 
Метод: GET
 
Метод: GET
  
Название запроса: get_crews_coords
+
Название запроса: get_cars_info
  
 
Параметры:
 
Параметры:
Строка 1989: Строка 2103:
 
!colspan="3"|Необязательные параметры
 
!colspan="3"|Необязательные параметры
 
|-
 
|-
|crew_id
+
|locked_cars
|Целое
+
|true или false
|ИД экипажа, по которому нужно вернуть координаты. Если не задано, то будут возвращены координаты всех экипажей на линии.
+
|Включить в ответ заблокированных автомобилей (по умолчанию false)
 
|}
 
|}
  
Специальные возвращаемые коды:
+
 
{|
+
Специальные возвращаемые коды: нет
!Код
 
!Описание
 
|-
 
|100
 
|Координаты не найдены
 
|}
 
  
 
Возвращаемые данные в случае успешного выполнения запроса:
 
Возвращаемые данные в случае успешного выполнения запроса:
 +
 +
Параметры:
 
{|
 
{|
!Параметр
+
!Параметры
 
!Тип
 
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
|crews_coords
+
|cars_info
 
|Массив
 
|Массив
|Список координат экипажей
+
|Массив автомобилей
 
|-
 
|-
|&bull; crew_id
+
|&bull; car_id
 
|Целое
 
|Целое
|ИД экипажа
+
|ИД автомобиля
 
|-
 
|-
|&bull; crew_code
+
|&bull; code
 
|Строка
 
|Строка
|Позывной экипажа
+
|Позывной автомобиля
 
|-
 
|-
|&bull; coords_time
+
|&bull; name
|ГГГГММДДччммсс
+
|Строка
|Время получения координат
+
|Наименование автомобиля
 
|-
 
|-
|&bull; lat
+
|&bull; gos_number
|Дробное
+
|Строка
|Долгота
+
|Гос. номер автомобиля
 
|-
 
|-
|&bull; lon
+
|&bull; color
|Дробное
+
|Строка
|Широта
+
|Цвет автомобиля
 
|-
 
|-
|&bull; state_kind
+
|&bull; mark
 
|Строка
 
|Строка
|Тип состояния экипажа. Может принимать значения:
+
|Марка автомобиля
• "not_available" — экипаж не на линии
+
|-
 
+
|&bull; model
• "waiting" — экипаж свободен, ожидает заказы
+
|Строка
 
+
|Модель автомобиля
• "on_order" — экипаж на заказе
+
|-
 
+
|&bull; short_name
• "on_break" — экипаж на перерыве
+
|Строка
 +
|Краткое название автомобиля
 +
|-
 +
|&bull; production_year
 +
|Целое
 +
|Год выпуска автомобиля
 +
|-
 +
|&bull; is_locked
 +
|true или false
 +
|Автомобиль заблокирован
 +
|-
 +
|&bull; order_params
 +
|Массив
 +
|Массив параметров заказа автомобиля
 +
|-
 +
|&bull;
 +
|Целое
 +
|ИД параметра заказа
 
|}
 
|}
  
Строка 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/get_crews_coords HTTP/1.1
 
 
Signature: <...>
 
Signature: <...>
 +
locked_cars=true
 +
  
 
Ответ:
 
Ответ:
Строка 2059: Строка 2188:
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
    "crews_coords":[
+
  "cars_info":[
      {
+
    {
        "crew_id":1,
+
      "car_id":1,
        "crew_code":"111",
+
      "code":"111",
        "coords_time":"20120101101010",
+
      "name":"CAR_1",
        "lat":11.111111,
+
      "gos_number":"111111",
        "lon":22.222222,
+
      "color":"COLOR_1",
        "state_kind":"waiting"
+
      "mark":"MARK_1",
    },
+
      "model":"MODEL_1",
    {
+
      "short_name":"SHORT_NAME_1",
        "crew_id":2,
+
      "production_year":2000,
        "crew_code":"222",
+
      "is_locked":false,
        "coords_time":"20120101101010",
+
      "order_params":[1,2]
        "lat":33.333333,
+
    },
        "lon":44.444444,
+
    {
        "state_kind":"on_order"
+
      "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 https://ip:port/common_api/1.0/get_crews_coords?crew_id=1 HTTP/1.1
+
=== Запрос координат экипажей ===
Signature: <...>
+
Метод: GET
  
Ответ:
+
Название запроса: get_crews_coords
  
{
+
Параметры:
  "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"
 
      }
 
    ]
 
  }
 
}
 
</pre>
 
 
 
=== Запрос адресов, содержащих нужную строку ===
 
Метод: GET
 
 
 
Название запроса: get_addresses_like
 
 
 
Параметры:
 
 
 
{|
 
!Параметры
 
!Тип
 
!Описание
 
|-
 
! colspan="3"|Обязательные параметры
 
|-
 
|get_streets
 
|true или false
 
|Искать улицы
 
|-
 
|get_houses
 
|true или false
 
|Искать дома. Не может быть равно true, если get_streets = true или get_points = true.
 
|-
 
|get_points
 
|true или false
 
|Искать пункты.
 
|-
 
|street
 
|Строка
 
|Часть названия улицы или пункта, если идет поиск улиц или пунктов, или полное название улицы, если идет поиск домов
 
|-
 
 
!colspan="3"|Необязательные параметры
 
!colspan="3"|Необязательные параметры
 
|-
 
|-
|house
+
|crew_id
|Строка
 
|Часть номера дома. Нужно только если get_houses = true.
 
|-
 
|max_addresses_count
 
 
|Целое
 
|Целое
|Максимальное количество адресов в ответе
+
|ИД экипажа, по которому нужно вернуть координаты. Если не задано, то будут возвращены координаты всех экипажей на линии.
 
|}
 
|}
  
Строка 2152: Строка 2245:
 
|-
 
|-
 
|100
 
|100
|Подходящие адреса не найдены
+
|Координаты не найдены
 
|}
 
|}
  
Строка 2161: Строка 2254:
 
!Описание
 
!Описание
 
|-
 
|-
|addresses
+
|crews_coords
 
|Массив
 
|Массив
|Список подходящих адресов
+
|Список координат экипажей
 +
|-
 +
|&bull; crew_id
 +
|Целое
 +
|ИД экипажа
 
|-
 
|-
|&bull; street
+
|&bull; crew_code
 
|Строка
 
|Строка
|Название улицы или пункта
+
|Позывной экипажа
 +
|-
 +
|&bull; coords_time
 +
|ГГГГММДДччммсс
 +
|Время получения координат
 +
|-
 +
|&bull; lat
 +
|Дробное
 +
|Долгота
 
|-
 
|-
|&bull; house
+
|&bull; lon
|Строка
+
|Дробное
|Номер дома
+
|Широта
 
|-
 
|-
|&bull; kind
+
|&bull; state_kind
 
|Строка
 
|Строка
|Тип адреса. Может принимать значения:
+
|Тип состояния экипажа. Может принимать значения:
• "street" — улица
+
• "not_available" — экипаж не на линии
 +
 
 +
• "waiting" — экипаж свободен, ожидает заказы
  
• "house" — дом
+
• "on_order" — экипаж на заказе
  
• "point" — пункт
+
• "on_break" — экипаж на перерыве
|-
 
|&bull; comment
 
|Строка
 
|Комментарий
 
 
|}
 
|}
  
Строка 2192: Строка 2295:
  
 
Запрос:
 
Запрос:
 
+
GET https://ip:port/common_api/1.0/get_crews_coords HTTP/1.1
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: <...>
  
Строка 2203: Строка 2304:
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
     "addresses":[
+
     "crews_coords":[
 
       {
 
       {
         "street":"STREET1",
+
         "crew_id":1,
         "house":"",
+
         "crew_code":"111",
         "kind":"street",
+
         "coords_time":"20120101101010",
         "comment":""
+
         "lat":11.111111,
      },
+
         "lon":22.222222,
      {
+
         "state_kind":"waiting"
         "street":"STREET2",
+
    },
         "house":"",
+
    {
         "kind":"street",
+
         "crew_id":2,
         "comment":""
+
         "crew_code":"222",
      },
+
         "coords_time":"20120101101010",
      {
+
         "lat":33.333333,
         "street":"POINT_STREET1",
+
         "lon":44.444444,
         "house":"",
+
         "state_kind":"on_order"
         "kind":"point",
 
         "comment":"Point at street STREET1"
 
 
       }
 
       }
 
     ]
 
     ]
Строка 2228: Строка 2327:
 
Запрос:
 
Запрос:
  
GET https://ip:port/common_api/1.0/get_addresses_like?get_streets=false&get_points=false&
+
GET https://ip:port/common_api/1.0/get_crews_coords?crew_id=1 HTTP/1.1
get_houses=true&street=STREET1&house=1&max_addresses_count=10 HTTP/1.1
 
 
Signature: <...>
 
Signature: <...>
  
Строка 2238: Строка 2336:
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
     "addresses":[
+
     "crews_coords":[
 
       {
 
       {
         "street":"STREET1",
+
         "crew_id":1,
        "house":"1",
+
         "crew_code":"111",
        "kind":"house",
+
         "coords_time":"20120101101010",
        "comment":""
+
         "lat":11.111111,
      },
+
         "lon":22.222222,
      {
+
         "state_kind":"waiting"
        "street":"STREET1",
+
       }
         "house":"10",
+
     ]
         "kind":"house",
 
         "comment":""
 
      },
 
      {
 
        "street":"STREET1",
 
        "house":"11",
 
         "kind":"house",
 
         "comment":""
 
       }
 
     ]
 
 
   }
 
   }
 
}
 
}
 
</pre>
 
</pre>
  
=== Анализ маршрута ===
+
=== Запрос адресов, содержащих нужную строку ===
 
Метод: GET
 
Метод: GET
  
Название запроса: analyze_route
+
Название запроса: get_addresses_like
  
 
Параметры:
 
Параметры:
Строка 2274: Строка 2362:
 
!Описание
 
!Описание
 
|-
 
|-
!colspan="3"|Обязательные параметры
+
! colspan="3"|Обязательные параметры
 +
|-
 +
|get_streets
 +
|true или false
 +
|Искать улицы
 +
|-
 +
|get_points
 +
|true или false
 +
|Искать пункты
 
|-
 
|-
|source
+
|get_houses
|Строка
+
|true или false
|Адрес подачи
+
|Искать дома. Не может быть равно true, если get_streets = true или get_points = true.
 
|-
 
|-
|dest
+
|street
 
|Строка
 
|Строка
|Адрес назначения
+
|Часть названия улицы или пункта, если идет поиск улиц или пунктов, или полное название улицы, если идет поиск домов
 
|-
 
|-
 
!colspan="3"|Необязательные параметры
 
!colspan="3"|Необязательные параметры
 
|-
 
|-
|source_lon
+
|house
|Дробное
+
|Строка
|Долгота адреса подачи
+
|Часть номера дома. Нужно только если get_houses = true.
 
|-
 
|-
|source_lat
+
|max_addresses_count
|Дробное
+
|Целое
|Широта адреса подачи
+
|Максимальное количество адресов в ответе
|-
+
|}
|dest_lon
+
 
|Дробное
 
|Долгота адреса назначения
 
|-
 
|dest_lat
 
|Дробное
 
|Широта адреса назначения
 
|}
 
 
 
 
 
Параметр source не является обязательным к заполнению, если заданы source_lon и source_lat.
 
 
 
Параметр dest не является обязательным к заполнению, если заданы dest_lon и dest_lat.
 
 
 
 
 
 
Специальные возвращаемые коды:
 
Специальные возвращаемые коды:
 
{|
 
{|
Строка 2315: Строка 2397:
 
|-
 
|-
 
|100
 
|100
|Адрес подачи не распознан
+
|Подходящие адреса не найдены
|-
 
|101
 
|Адрес назначения не распознан
 
|-
 
|102
 
|Маршрут не распознан
 
 
|}
 
|}
  
Строка 2330: Строка 2406:
 
!Описание
 
!Описание
 
|-
 
|-
|source_lat 
+
|addresses
|Дробное
+
|Массив
|Широта адреса подачи
+
|Список подходящих адресов
 
|-
 
|-
|source_lon 
+
|&bull; street
|Дробное
+
|Строка
|Долгота адреса подачи
+
|Название улицы или пункта
 
|-
 
|-
|source_zone_id 
+
|&bull; house
|Целое
+
|Строка
|ИД района подачи
+
|Номер дома
 
|-
 
|-
|dest_lat
+
|&bull; kind
|Дробное
+
|Строка
|Широта адреса назначения
+
|Тип адреса. Может принимать значения:
|-
+
• "street" — улица
|dest_lon 
+
 
|Дробное
+
• "house" — дом
|Долгота адреса назначения
+
 
 +
• "point" — пункт
 
|-
 
|-
|dest_zone_id 
+
|&bull; comment
|Целое
+
|Строка
|ИД района назначения
+
|Комментарий
 
|-
 
|-
|city_dist 
+
|&bull; coords
|Дробное
+
|Массив
|Километраж по городу
+
|Координаты дома или пункта
 
|-
 
|-
|country_dist  
+
|&bull; &loz; lat
 
|Дробное
 
|Дробное
|Километраж за городом
+
|Широта
 
|-
 
|-
|source_country_dist  
+
|&bull; &loz; lon
 
|Дробное
 
|Дробное
|Километраж до адреса подачи, если адрес подачи за городом
+
|Долгота
 
|}
 
|}
  
Строка 2370: Строка 2447:
  
 
<pre>
 
<pre>
 +
 
Запрос:
 
Запрос:
  
GET https://ip:port/common_api/1.0/analyze_route?source=STREET1,1&dest=STREET2,2&source_lon=
+
GET https://ip:port/common_api/1.0/get_addresses_like?get_streets=true&get_points=true&
53.153044&source_lat=56.893301&dest_lon=53.218103&dest_lat=56.869759 HTTP/1.1
+
get_houses=false&street=STREE HTTP/1.1
 
Signature: <...>
 
Signature: <...>
  
Строка 2382: Строка 2460:
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
     "source_lat":11.111111,
+
     "addresses":[
    "source_lon":22.222222,
+
      {
    "source_zone_id":1,
+
        "street":"STREET1",
    "dest_lat":33.333333,
+
        "house":"",
    "dest_lon":44.444444,
+
        "kind":"street",
    "dest_zone_id":2,
+
        "comment":""
    "city_dist":1.1,
+
        "coords":{
    "country_dist":2.2,
+
        "lat":0,
    "source_country_dist":3.3
+
        "lon":0
   }
+
        }
}
+
      },
</pre>
+
      {
 +
        "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
 +
        }
 +
      }
 +
    ]
 +
   }
 +
}
 +
 
 +
Запрос:
  
=== Анализ маршрута 2 ===
+
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_route2
+
Название запроса: analyze_route
  
 
Параметры:
 
Параметры:
  
 
{|
 
{|
!Параметр
+
!Параметры
 
!Тип
 
!Тип
 
!Описание
 
!Описание
Строка 2410: Строка 2545:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|addresses
+
|source
|Массив
+
|Строка
|Массив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки.
+
|Адрес подачи
 
|-
 
|-
|&bull; address
+
|dest
 
|Строка
 
|Строка
|Адрес подачи
+
|Адрес назначения
 +
|-
 +
!colspan="3"|Необязательные параметры
 +
|-
 +
|source_lon
 +
|Дробное
 +
|Долгота адреса подачи
 +
|-
 +
|source_lat
 +
|Дробное
 +
|Широта адреса подачи
 
|-
 
|-
|&bull; lat
+
|dest_lon
 
|Дробное
 
|Дробное
|Широта адреса
+
|Долгота адреса назначения
 
|-
 
|-
|&bull; lon
+
|dest_lat
 
|Дробное
 
|Дробное
|Долгота адреса
+
|Широта адреса назначения
 
|}
 
|}
 +
 +
 +
Параметр source не является обязательным к заполнению, если заданы source_lon и source_lat.
 +
 +
Параметр dest не является обязательным к заполнению, если заданы dest_lon и dest_lat.
 +
  
 
Специальные возвращаемые коды:
 
Специальные возвращаемые коды:
 
 
{|
 
{|
 
!Код
 
!Код
Строка 2434: Строка 2584:
 
|-
 
|-
 
|100
 
|100
 +
|Адрес подачи не распознан
 +
|-
 +
|101
 +
|Адрес назначения не распознан
 +
|-
 +
|102
 
|Маршрут не распознан
 
|Маршрут не распознан
 
|}
 
|}
  
 
Возвращаемые данные в случае успешного выполнения запроса:
 
Возвращаемые данные в случае успешного выполнения запроса:
 
 
{|
 
{|
!Параметры
+
!Параметр
 
!Тип
 
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
|Addresses
+
|source_lat 
|Массив
+
|Дробное
|Массив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки.
+
|Широта адреса подачи
 
|-
 
|-
|&bull; lat
+
|source_lon 
 
|Дробное
 
|Дробное
|Широта адреса
+
|Долгота адреса подачи
 +
|-
 +
|source_zone_id 
 +
|Целое
 +
|ИД района подачи
 +
|-
 +
|dest_lat
 +
|Дробное
 +
|Широта адреса назначения
 
|-
 
|-
|&bull; lon
+
|dest_lon 
 
|Дробное
 
|Дробное
|Долгота адреса
+
|Долгота адреса назначения
 
|-
 
|-
|&bull; zone_id
+
|dest_zone_id 
|Целое
+
|Целое  
|Район адреса
+
|ИД района назначения
 
|-
 
|-
|&bull; parking_id
+
|city_dist
|Целое
 
|Стоянка адреса
 
|-
 
|city_dist
 
 
|Дробное
 
|Дробное
 
|Километраж по городу
 
|Километраж по городу
 
|-
 
|-
|country_dist
+
|country_dist
 
|Дробное
 
|Дробное
 
|Километраж за городом
 
|Километраж за городом
 
|-
 
|-
|source_country_dist
+
|source_country_dist
 
|Дробное
 
|Дробное
|Километраж до адреса подачи, если адрес подачи за городом.
+
|Километраж до адреса подачи, если адрес подачи за городом
 
|}
 
|}
  
Строка 2480: Строка 2639:
  
 
<pre>
 
<pre>
 
 
Запрос:
 
Запрос:
  
POST /common_api/1.0/analyze_route2 HTTP/1.1
+
GET https://ip:port/common_api/1.0/analyze_route?source=STREET1,1&dest=STREET2,2&source_lon=
Host: ip:port
+
53.153044&source_lat=56.893301&dest_lon=53.218103&dest_lat=56.869759 HTTP/1.1
Keep-Alive: 300
 
Connection: keep-alive
 
Content-Type: application/json
 
Content-Length: 243
 
 
Signature: <...>
 
Signature: <...>
 
{"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}]}
 
 
  
 
Ответ:
 
Ответ:
Строка 2502: Строка 2651:
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
     "addresses":[
+
     "source_lat":11.111111,
      {
+
    "source_lon":22.222222,
        "lat":11.111111,
+
    "source_zone_id":1,
        "lon":22.222222,
+
    "dest_lat":33.333333,
        "zone_id":1,
+
    "dest_lon":44.444444,
        "parking_id":1
+
    "dest_zone_id":2,
      },
+
     "city_dist":1.1,
      {
+
     "country_dist":2.2,
        "lat":33.333333,
+
     "source_country_dist":3.3
        "lon":44.444444,
 
        "zone_id":2,
 
        "parking_id":2
 
      }
 
    ],
 
     "city_dist":0,
 
     "country_dist":2.647,
 
     "source_country_dist":3.412
 
 
   }
 
   }
 
}
 
}
 
 
</pre>
 
</pre>
  
=== Запрос информации о состоянии заказа ===
+
=== Анализ маршрута 2 ===
  
Метод: GET
+
Метод: POST
  
Название запроса: get_order_state
+
Название запроса: analyze_route2
  
 
Параметры:
 
Параметры:
  
 
{|
 
{|
!Параметры
+
!Параметр
 
!Тип
 
!Тип
 
!Описание
 
!Описание
Строка 2539: Строка 2679:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|order_id 
+
|get_full_route_coords
|Целое
+
|true или false
|ИД заказа
+
|Возвращать координаты точек полного маршрута.
 +
|-
 +
|addresses
 +
|Массив
 +
|Массив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки.
 +
|-
 +
|&bull; address
 +
|Строка
 +
|Адрес подачи
 +
|-
 +
|&bull; lat
 +
|Дробное
 +
|Широта адреса
 +
|-
 +
|&bull; lon
 +
|Дробное
 +
|Долгота адреса
 
|}
 
|}
  
 
Специальные возвращаемые коды:
 
Специальные возвращаемые коды:
 +
 
{|
 
{|
 
!Код
 
!Код
Строка 2550: Строка 2707:
 
|-
 
|-
 
|100
 
|100
|Заказ не найден
+
|Маршрут не распознан
 
|}
 
|}
  
 
Возвращаемые данные в случае успешного выполнения запроса:
 
Возвращаемые данные в случае успешного выполнения запроса:
 +
 
{|
 
{|
!Параметр
+
!Параметры
 
!Тип
 
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
|order_id 
+
|Addresses
|Целое
+
|Массив
|ИД заказа
+
|Массив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки.
 
|-
 
|-
|state_id 
+
|&bull; lat
|Целое
+
|Дробное
|ИД состояния заказа
+
|Широта адреса
 
|-
 
|-
|state_kind
+
|&bull; lon
|Строка
+
|Дробное
|Тип состояния заказа. Может принимать значения:
+
|Долгота адреса
 
 
• "new_order" — новый заказ
 
 
 
• "driver_assigned" — водитель назначен
 
 
 
• "car_at_place" — машина подъехала на место
 
 
 
• "client_inside" — клиент в машине
 
 
 
• "finished" — заказ успешно завершен
 
 
 
• "aborted" — заказ прекращен
 
 
|-
 
|-
|crew_id 
+
|&bull; zone_id
|Целое
 
|ИД экипажа
 
|-
 
|prior_crew_id
 
|Целое
 
|ИД предварительного экипажа
 
|-
 
|driver_id 
 
 
|Целое
 
|Целое
|ИД водителя
+
|Район адреса
 
|-
 
|-
|car_id 
+
|&bull; parking_id
 
|Целое
 
|Целое
|ИД автомобиля
+
|Стоянка адреса
 
|-
 
|-
|start_time
+
|city_dist
|ГГГГММДДччммсс
+
|Дробное
|Время создания заказа
+
|Километраж по городу
 
|-
 
|-
|source_time
+
|country_dist
|ГГГГММДДччммсс
+
|Дробное
|Время подачи
+
|Километраж за городом
 
|-
 
|-
|finish_time
+
|source_country_dist
|ГГГГММДДччммсс
+
|Дробное
|Время завершения заказа
+
|Километраж до адреса подачи, если адрес подачи за городом.
 
|-
 
|-
|source 
+
|full_route_coords
|Строка
+
|Массив
|Адрес подачи
+
|Массив координат точек маршрута.
 
|-
 
|-
|destination
+
|&bull; lat
|Строка
+
|Дробное
|Адрес назначения
+
|Широта точки
 
|-
 
|-
|passenger
+
|&bull; lon
|Строка
+
|Дробное
|Пассажир
+
|Долгота точки
|-
+
|}
|phone
+
 
|Строка
+
Пример:
|Номер телефона
+
 
|-
+
<pre>
|client_id
+
 
|Целое
+
Запрос:
|ИД клиента
+
 
|-
+
POST /common_api/1.0/analyze_route2 HTTP/1.1
|order_crew_group_id
+
Host: ip:port
|Целое
+
Keep-Alive: 300
|ИД группы экипажей, которая указана в заказе
+
Connection: keep-alive
|-
+
Content-Type: application/json
|tariff_id
+
Content-Length: 243
|Целое
+
Signature: <...>
|ИД тарифа
+
 
|-
+
{"get_full_route_coords":true,"addresses":[{"address":"STREET1, 1","lat":11.111111,
|car_mark
+
"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}]}
|-
+
 
|car_model
 
|Строка
 
|Модель автомобиля
 
|-
 
|car_color
 
|Строка
 
|Цвет автомобиля
 
|-
 
|car_number
 
|Строка
 
|Государственный номер автомобиля
 
|-
 
|crew_coords
 
|Массив
 
|Координаты экипажа
 
|-
 
|&bull; lat
 
|Дробное
 
|Широта
 
|-
 
|&bull; lon
 
|Дробное
 
|Долгота
 
|}
 
  
Пример:
 
  
<pre>
 
Запрос:
 
GET https://ip:port/common_api/1.0/get_order_state?order_id=1 HTTP/1.1
 
Signature: <...>
 
 
Ответ:
 
Ответ:
 
{
 
{
Строка 2679: Строка 2788:
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
    "order_id":1,
+
    "addresses":[
    "state_id":12,
+
      {
    "state_kind":"car_at_place",
+
        "lat":11.111111,
    "crew_id":1,
+
        "lon":22.222222,
    "prior_crew_id":0,
+
        "zone_id":1,
    "driver_id":2,
+
        "parking_id":1
    "car_id":3,
+
      },
    "start_time":"20130117125641",
+
      {
    "source_time":"20130117132617",
+
        "lat":33.333333,
    "finish_time":"20130117130343",
+
        "lon":44.444444,
    "source":"1",
+
        "zone_id":2,
    "destination":"2",
+
        "parking_id":2
    "passenger":"Слепаков",
+
      }
    "phone":"8800",
+
    ],
    "client_id":1,
+
    "city_dist":0,
    "order_crew_group_id":1,
+
    "country_dist":2.647,
    "tariff_id":1,
+
    "source_country_dist":3.412,
    "car_mark":"Ауди",
+
    "full_route_coords":[
    "car_model":"Q7",
+
      {
    "car_color":"черный",
+
        "lat":55.833603,
    "car_number":"А777АА",
+
        "lon":37.515537
    "crew_coords": {
+
      },
      "lat": 56.833981,
+
      {
      "lon": 53.220249
+
        "lat":55.832855,
     }
+
        "lon":37.516315
 +
      },
 +
      {
 +
        "lat":55.833405,
 +
        "lon":37.51799
 +
      },
 +
      ...
 +
     ]
 
   }
 
   }
 
}
 
}
 
</pre>
 
</pre>
  
=== Создание задачи СМС серверу ===
+
=== Запрос информации о состоянии заказа ===
  
Метод: POST
+
Метод: GET
  
Название запроса: send_sms
+
Название запроса: get_order_state
  
 
Параметры:
 
Параметры:
Строка 2723: Строка 2839:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|phone
+
|order_id 
|Строка, <= 16 символов
+
|Целое
|Номер телефона
+
|ИД заказа
|-
 
|message
 
|Строка
 
|Текст СМС
 
 
|}
 
|}
  
Специальные возвращаемые коды: нет
+
Специальные возвращаемые коды:
 +
{|
 +
!Код
 +
!Описание
 +
|-
 +
|100
 +
|Заказ не найден
 +
|}
  
Возвращаемые данные в случае успешного выполнения запроса: нет
+
Возвращаемые данные в случае успешного выполнения запроса:
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 +
|-
 +
|order_id 
 +
|Целое
 +
|ИД заказа
 +
|-
 +
|state_id 
 +
|Целое
 +
|ИД состояния заказа
 +
|-
 +
|state_kind
 +
|Строка
 +
|Тип состояния заказа. Может принимать значения:
  
Пример:
+
• "new_order" — новый заказ
  
<pre>
+
• "driver_assigned" — водитель назначен
Запрос:
 
  
POST /common_api/1.0/send_sms HTTP/1.1
+
• "car_at_place" — машина подъехала на место
Content-Type: application/x-www-form-urlencoded
 
Content-Length: 33
 
  
Signature: <...>
+
• "client_inside" — клиент в машине
  
message=SMSText&phone=89050057216
+
• "finished" — заказ успешно завершен
  
Ответ:
+
"aborted" — заказ прекращен
 
+
|-
{
+
|crew_id 
  "code":0,
+
|Целое
  "descr":"OK",
+
|ИД экипажа
  "data":{}
+
|-
}
+
|prior_crew_id
</pre>
+
|Целое
 
+
|ИД предварительного экипажа
=== Проверка авторизации ===
+
|-
 
+
|driver_id 
Метод: GET
+
|Целое
 
+
|ИД водителя
Название запроса: check_authorization
 
 
 
Параметры:
 
 
 
{|
 
!Параметры
 
!Тип
 
!Описание
 
 
|-
 
|-
!colspan="3"|Обязательные параметры
+
|car_id 
 +
|Целое
 +
|ИД автомобиля
 
|-
 
|-
|login
+
|start_time
|Строка, <= 60 символов
+
|ГГГГММДДччммсс
|Логин
+
|Время создания заказа
 
|-
 
|-
|password
+
|source_time
|Строка, <= 60 символов
+
|ГГГГММДДччммсс
|Пароль
+
|Время подачи
|}
 
 
 
Специальные возвращаемые коды:
 
{|
 
!Код
 
!Описание
 
 
|-
 
|-
|100
+
|finish_time
|Не найден клиент с логином LOGIN и/или неверный пароль
+
|ГГГГММДДччммсс
|}
+
|Время завершения заказа
 
+
|-
Возвращаемые данные в случае успешного выполнения запроса:
+
|source 
{|
+
|Строка
!Параметр
+
|Адрес подачи
!Тип
+
|-
!Описание
+
|destination
 +
|Строка
 +
|Адрес назначения
 +
|-
 +
|passenger
 +
|Строка
 +
|Пассажир
 +
|-
 +
|phone
 +
|Строка
 +
|Номер телефона
 
|-
 
|-
|client_id  
+
|client_id
 
|Целое
 
|Целое
 
|ИД клиента
 
|ИД клиента
|}
+
|-
 
+
|order_crew_group_id
Пример:
+
|Целое
 
+
|ИД группы экипажей, которая указана в заказе
<pre>
+
|-
Запрос:
+
|tariff_id
 
+
|Целое
GET https://ip:port/common_api/1.0/check_authorization?login=LOGIN&password=PASSWORD HTTP/1.1
+
|ИД тарифа
 
+
|-
Signature: <...>
+
|car_mark
 
+
|Строка
Ответ:
+
|Марка автомобиля
 +
|-
 +
|car_model
 +
|Строка
 +
|Модель автомобиля
 +
|-
 +
|car_color
 +
|Строка
 +
|Цвет автомобиля
 +
|-
 +
|car_number
 +
|Строка
 +
|Государственный номер автомобиля
 +
|-
 +
|confirmed
 +
|Строка
 +
|Состояние подтвержденности заказа водителем или оператором.
  
{
+
Может принимать значения:
  "code":0,
 
  "descr":"OK",
 
  "data":{
 
    "client_id":131
 
}
 
}
 
</pre>
 
 
 
=== Регистрация клиента ===
 
 
 
Метод: POST
 
  
Название запроса: register_client
+
• "not_confirmed" — не подтверждено
  
Параметры:
+
• "confirmed_by_driver" — заказ принят водителем
  
{|
+
• "confirmed_by_oper" — заказ подтвержден оператором
!Параметры
 
!Тип
 
!Описание
 
 
|-
 
|-
!colspan="3"|Обязательные параметры
+
|crew_coords
 +
|Массив
 +
|Координаты экипажа
 
|-
 
|-
|name
+
|&bull; lat
|Строка, <= 60 символов
+
|Дробное
|ФИО
+
|Широта
 
|-
 
|-
|login
+
|&bull; lon
|Строка, <= 60 символов
+
|Дробное
|Логин
+
|Долгота
 
|-
 
|-
|password
+
|order_params
|Строка, <= 60 символов
+
|Массив
|Пароль
+
|Массив параметров заказа экипажа
 
|-
 
|-
|phones
+
|&bull;
|Строка
+
|Целое
|Номера телефонов (через запятую)
+
|ИД параметра заказа
|-
 
!colspan="4"|Необязательные параметры
 
 
|-
 
|-
|address
+
|creation_way
 
|Строка
 
|Строка
|Домашний адрес
+
|Способ создания заказа. Может принимать значения:
|-
 
|birthday
 
|ДД.ММ.ГГГГ
 
|Дата рождения
 
|-
 
|gender
 
|Строка
 
|Пол. Может принимать значения:  
 
• "male" -  мужской
 
  
• "female" - женский
+
• "operator" — заказ создан оператором
|-
 
|client_group
 
|Целое
 
|Группа клиента
 
|}
 
  
Специальные возвращаемые коды:
+
• "sms" — заказ создан через смс
{|
 
!Код
 
!Описание
 
|-
 
|100
 
|Клиент с ИД=ID имеет такой же номер телефона=PHONE
 
|-
 
|101
 
|Клиент с логином=LOGIN уже существует
 
|}
 
  
Возвращаемые данные в случае успешного выполнения запроса:
+
• "market" — заказ из биржи
{|
 
!Параметр
 
!Тип
 
!Описание
 
|-
 
|client_id
 
|Целое
 
|ИД созданного клиента
 
|}
 
  
Пример:
+
• "common_api" — заказ создан через api
  
<pre>
+
• "t_api" — заказ создан через api
Запрос:
 
  
POST https://ip:port/common_api/1.0/create_order HTTP/1.1
+
• "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: <...>
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&client_group=5
 
 
 
Ответ:
 
Ответ:
 
 
{
 
{
 
   "code":0,
 
   "code":0,
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
     "client_id":140
+
    "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>
  
=== Запрос информации по клиенту ===
+
=== Создание задачи СМС серверу ===
  
Метод: GET
+
Метод: POST
  
Название запроса: get_client_info
+
Название запроса: send_sms
  
 
Параметры:
 
Параметры:
Строка 2935: Строка 3072:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|client_id
+
|phone
|Целое
+
|Строка, <= 16 символов
|ИД клиента
+
|Номер телефона
 +
|-
 +
|message
 +
|Строка
 +
|Текст СМС
 
|}
 
|}
  
Специальные возвращаемые коды:
+
Специальные возвращаемые коды: нет
{|
+
 
!Код
+
Возвращаемые данные в случае успешного выполнения запроса: нет
!Описание
 
|-
 
|100
 
|Не найден клиент ИД=CLIENT_ID
 
|}
 
  
Возвращаемые данные в случае успешного выполнения запроса:
+
Пример:
{|
 
!Параметр
 
!Тип
 
!Описание
 
|-
 
|client_id
 
|Целое
 
|ИД клиента
 
|-
 
|name
 
|Строка
 
|ФИО
 
|-
 
|number
 
|Строка
 
|Номер договора
 
|-
 
|address
 
|Строка
 
|Домашний адрес
 
|-
 
|gender
 
|Строка
 
|Пол. Может принимать значения:
 
  
• "male" -  мужской
+
<pre>
 +
Запрос:
  
• "female" - женский
+
POST /common_api/1.0/send_sms HTTP/1.1
|-
+
Content-Type: application/x-www-form-urlencoded
|birthday
+
Content-Length: 33
|ДД.ММ.ГГГГ
 
|Дата рождения
 
|-
 
|phones 
 
|Строка
 
|Номера телефонов (через запятую)
 
|-
 
|balance
 
|Дробное
 
|Баланс
 
|-
 
|bonus_balance
 
|Дробное
 
|Бонусный баланс
 
|-
 
|login 
 
|Строка
 
|Логин
 
|-
 
|password
 
|Строка
 
|Пароль
 
|-
 
|client_group_id
 
|Целое
 
|ИД группы клиента
 
|}
 
  
Пример:
+
Signature: <...>
  
<pre>
+
message=SMSText&phone=89050057216
Запрос:
 
 
 
GET https://ip:port/common_api/1.0/get_client_info?client_id=140 HTTP/1.1
 
 
 
Signature: <...>
 
  
 
Ответ:
 
Ответ:
Строка 3022: Строка 3103:
 
   "code":0,
 
   "code":0,
 
   "descr":"OK",
 
   "descr":"OK",
   "data":{
+
   "data":{}
    "client_id":140,
+
}
    "name":"Васильев Артём",
+
</pre>
    "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>
 
  
=== Изменение информации по клиенту ===
+
Метод: GET
  
Метод: POST
+
Название запроса: check_authorization
 
 
Название запроса: update_client_info
 
  
 
Параметры:
 
Параметры:
Строка 3057: Строка 3122:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|client_id
+
|login  
|Целое
 
|ИД клиента
 
|-
 
!colspan="3"|Необязательные параметры
 
|-
 
|name
 
|Строка, <= 60 символов
 
|ФИО
 
|-
 
|login
 
 
|Строка, <= 60 символов
 
|Строка, <= 60 символов
 
|Логин
 
|Логин
Строка 3074: Строка 3129:
 
|Строка, <= 60 символов
 
|Строка, <= 60 символов
 
|Пароль
 
|Пароль
 +
|}
 +
 +
Специальные возвращаемые коды:
 +
{|
 +
!Код
 +
!Описание
 
|-
 
|-
|phones
+
|100
|Строка
+
|Не найден клиент с логином LOGIN и/или неверный пароль
|Номера телефонов (через запятую)
+
|}
|-
+
 
|address
+
Возвращаемые данные в случае успешного выполнения запроса:
|Строка
+
{|
|Домашний адрес
+
!Параметр
 +
!Тип
 +
!Описание
 
|-
 
|-
|birthday
+
|client_id
|ДД.ММ.ГГГГ
 
|Дата рождения
 
|-
 
|gender
 
|Строка
 
|Пол. Может принимать значения:
 
• "male" -  мужской
 
 
 
• "female" - женский
 
|-
 
|client_group_id
 
 
|Целое
 
|Целое
|ИД группы клиента
+
|ИД клиента
|}
 
 
 
Специальные возвращаемые коды:
 
{|
 
!Код
 
!Описание
 
|-
 
|100
 
|Клиент с номером телефона=PHONE уже существует
 
|-
 
|101
 
|Клиент с ИД=ID имеет такой же номер телефона=PHONE
 
|-
 
|102
 
|Клиент с логином=LOGIN уже существует
 
|-
 
|103
 
|Группа клиента с ИД=CLIENT_GROUP_ID не найдена
 
 
|}
 
|}
 
Возвращаемые данные в случае успешного выполнения запроса: нет
 
  
 
Пример:
 
Пример:
Строка 3124: Строка 3156:
 
Запрос:
 
Запрос:
  
POST https://ip:port/common_api/1.0/create_order HTTP/1.1
+
GET https://ip:port/common_api/1.0/check_authorization?login=LOGIN&password=PASSWORD HTTP/1.1
 +
 
 
Signature: <...>
 
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,
+
  "code":0,
 
   "descr":"OK",
 
   "descr":"OK",
   "data":{}
+
   "data":{
 +
    "client_id":131
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
=== Запрос текущих заказов ===
+
=== Регистрация клиента ===
  
Метод: GET
+
Метод: POST
  
Название запроса: get_current_orders
+
Название запроса: register_client
  
 
Параметры:
 
Параметры:
Строка 3156: Строка 3186:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|client_id
+
|name
|Целое
+
|Строка, <= 60 символов
|ИД клиента (может отсутствовать, если phone заполнен)
+
|ФИО
 +
|-
 +
|login
 +
|Строка, <= 60 символов
 +
|Логин
 +
|-
 +
|password
 +
|Строка, <= 60 символов
 +
|Пароль
 +
|-
 +
|phones
 +
|Строка
 +
|Номера телефонов (через запятую)
 +
|-
 +
!colspan="4"|Необязательные параметры
 +
|-
 +
|address
 +
|Строка
 +
|Домашний адрес
 +
|-
 +
|birthday
 +
|ДД.ММ.ГГГГ
 +
|Дата рождения
 
|-
 
|-
|phone
+
|gender
|Строка, <= 16 символов
+
|Строка
|Телефон клиента (может отсутствовать, если client_id заполнен)
+
|Пол. Может принимать значения:
 +
• "male" -  мужской
 +
 
 +
• "female" - женский
 
|}
 
|}
  
Строка 3171: Строка 3226:
 
|-
 
|-
 
|100
 
|100
|Не найден клиент ИД=CLIENT_ID
+
|Клиент с ИД=ID имеет такой же номер телефона=PHONE
 +
|-
 +
|101
 +
|Клиент с логином=LOGIN уже существует
 
|}
 
|}
  
Строка 3180: Строка 3238:
 
!Описание
 
!Описание
 
|-
 
|-
|id
+
|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"|Обязательные параметры
 
|-
 
|-
|state_id
+
|client_id
 
|Целое
 
|Целое
|ИД состояния заказа
+
|ИД клиента
|-
+
|}
|start_time
+
 
|ГГГГММДДччммсс
+
Специальные возвращаемые коды:
|Дата создания заказа
+
{|
 +
!Код
 +
!Описание
 +
|-
 +
|100
 +
|Не найден клиент ИД=CLIENT_ID
 +
|}
 +
 
 +
Возвращаемые данные в случае успешного выполнения запроса:
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 
|-
 
|-
|source_time
+
|client_id
|ГГГГММДДччммсс
+
|Целое
|Время подачи
+
|ИД клиента
 
|-
 
|-
|source 
+
|name
 
|Строка
 
|Строка
|Адрес подачи
+
|ФИО
 
|-
 
|-
|destination 
+
|number
 
|Строка
 
|Строка
|Адрес назначения
+
|Номер договора
 
|-
 
|-
|passenger
+
|address
 
|Строка
 
|Строка
|Пассажир
+
|Домашний адрес
 
|-
 
|-
|crew_id
+
|gender
|Целое
+
|Строка
|ИД экипажа
+
|Пол. Может принимать значения:
 +
 
 +
• "male" -  мужской
 +
 
 +
• "female" - женский
 
|-
 
|-
|prior_crew_id
+
|birthday
|Целое
+
|ДД.ММ.ГГГГ
|ИД предварительного экипажа
+
|Дата рождения
 +
|-
 +
|phones 
 +
|Строка
 +
|Номера телефонов (через запятую)
 
|-
 
|-
|driver_id
+
|balance
|Целое
+
|Дробное
|ИД водителя
+
|Баланс
 
|-
 
|-
|car_id
+
|bonus_balance
|Целое
+
|Дробное
|ИД автомобиля
+
|Бонусный баланс
 
|-
 
|-
|phone
+
|login 
 
|Строка
 
|Строка
|Номер телефона
+
|Логин
 
|-
 
|-
|client_id
+
|password
|Целое
+
|Строка
|ИД клиента
+
|Пароль
 
|-
 
|-
|tariff_id
+
|client_group_id
 
|Целое
 
|Целое
|ИД тарифа
+
|ИД группы клиента
|-
 
|order_crew_group_id
 
|Целое
 
|ИД группы экипажей, которая указана в заказе
 
 
|}
 
|}
  
Строка 3245: Строка 3357:
 
<pre>
 
<pre>
 
Запрос:
 
Запрос:
GET https://ip:port/common_api/1.0/get_current_orders?client_id=140&phone=18 HTTP/1.1
+
 
 +
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":{
     "orders":[
+
     "client_id":140,
      {
+
    "name":"Васильев Артём",
        "id":20648,
+
    "number":"000140",
        "state_id":44,
+
    "address":"Бутово,45",
        "start_time":"20130204181111",
+
    "gender":"male",
        "source_time":"20130204181111",
+
    "birthday":"18.02.1993",
        "source":"1-й пр-т \/Москва\/,",
+
    "phones":"[
        "destination":"12-й мкр,",
+
      "88",
        "passenger":"маша",
+
       "99"
        "crew_id":0,
+
    ]",
        "prior_crew_id":0,
+
    "balance":2985,
        "driver_id":0,
+
    "bonus_balance":85,
        "car_id":0,
+
    "login":"artem",
        "phone":"18",
+
    "password":"vasilev",
        "client_id":140,
+
    "client_group_id":1
        "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
 
      }
 
    ]
 
 
   }
 
   }
 
}
 
}
 
</pre>
 
</pre>
  
=== Запрос выполненных заказов ===
+
=== Изменение информации по клиенту ===
  
Метод: GET
+
Метод: POST
  
Название запроса: get_finished_orders
+
Название запроса: update_client_info
  
 
Параметры:
 
Параметры:
Строка 3309: Строка 3404:
 
|client_id
 
|client_id
 
|Целое
 
|Целое
|ИД клиента (может отсутствовать, если phone заполнен)
+
|ИД клиента
 
|-
 
|-
|phone
+
!colspan="3"|Необязательные параметры
|Строка, <= 16 символов
+
|-
|Телефон клиента (может отсутствовать, если client_id заполнен)
+
|name
 +
|Строка, <= 60 символов
 +
|ФИО
 +
|-
 +
|login
 +
|Строка, <= 60 символов
 +
|Логин
 +
|-
 +
|password
 +
|Строка, <= 60 символов
 +
|Пароль
 +
|-
 +
|phones
 +
|Строка
 +
|Номера телефонов (через запятую)
 +
|-
 +
|address
 +
|Строка
 +
|Домашний адрес
 +
|-
 +
|birthday
 +
|ДД.ММ.ГГГГ
 +
|Дата рождения
 
|-
 
|-
|start_time
+
|gender
|ГГГГММДДччммсс
+
|Строка
|Начало периода
+
|Пол. Может принимать значения:
 +
• "male" -  мужской
 +
 
 +
• "female" - женский
 
|-
 
|-
|finish_time
+
|client_group_id
|ГГГГММДДччммсс
+
|Целое
|Конец периода
+
|ИД группы клиента
 
|}
 
|}
  
Строка 3330: Строка 3450:
 
|-
 
|-
 
|100
 
|100
|Не найден клиент ИД=CLIENT_ID
+
|Клиент с номером телефона=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
 +
 
 +
Параметры:
 +
 
 
{|
 
{|
!Параметр
+
!Параметры
 
!Тип
 
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
|id
+
!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
 
|ГГГГММДДччммсс
 
|ГГГГММДДччммсс
 
|Время подачи
 
|Время подачи
|-
 
|finish_time
 
|ГГГГММДДччммсс
 
|Время завершения заказа
 
 
|-
 
|-
 
|source   
 
|source   
Строка 3371: Строка 3553:
 
|Пассажир
 
|Пассажир
 
|-
 
|-
|sum
+
|crew_id
|Дробное
+
|Целое
|Стоимость заказа без учета скидок (наценок)
+
|ИД экипажа
 
|-
 
|-
|total_sum
+
|prior_crew_id
|Дробное
+
|Целое
|Итоговая стоимость заказа
+
|ИД предварительного экипажа
 
|-
 
|-
|cash_sum
+
|driver_id
|Дробное
+
|Целое
|Заплачено наличными
+
|ИД водителя
 
|-
 
|-
|cashless_sum
+
|car_id
|Дробное
 
|Заплачено с безналичного счета клиента
 
|-
 
|bonus_sum
 
|Дробное
 
|Заплачено с бонусного счета клиента
 
|-
 
|bank_card_sum
 
|Дробное
 
|Заплачено банковской картой
 
|-
 
|crew_id
 
|Целое
 
|ИД экипажа
 
|-
 
|prior_crew_id
 
|Целое
 
|ИД предварительного экипажа
 
|-
 
|driver_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_finished_orders?client_id=140&phone= HTTP/1.1
+
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":20651,
+
         "id":20648,
         "state_id":34,
+
         "state_id":44,
        "source_time":"20130205110812",
+
         "start_time":"20130204181111",
         "start_time":"20130205110812",
+
         "source_time":"20130204181111",
         "finish_time":"20130205115618",
+
         "source":"1-й пр-т \/Москва\/,",
         "source":"прпроп",
+
         "destination":"12-й мкр,",
         "destination":"рррррр",
+
         "passenger":"маша",
         "passenger":"вера",
+
         "crew_id":0,
        "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,
 
         "prior_crew_id":0,
         "driver_id":4,
+
         "driver_id":0,
         "car_id":6,
+
         "car_id":0,
         "phone":"111111",
+
         "phone":"18",
 
         "client_id":140,
 
         "client_id":140,
 
         "tariff_id":1,
 
         "tariff_id":1,
Строка 3465: Строка 3638:
 
       },
 
       },
 
       {
 
       {
         "id":20669,
+
         "id":20670,
         "state_id":34,
+
         "state_id":45,
        "source_time":"20130205130500",
+
         "start_time":"20130207153022",
         "start_time":"20130205130500",
+
         "source_time":"20130207153022",
         "finish_time":"20130205134511",
+
         "source":"11-й мкр,",
         "source":"1",
+
         "destination":"1-й пр-т \/Москва\/,",
         "destination":"2",
+
         "passenger":"саша",
         "passenger":"маша",
+
         "crew_id":1,
        "sum":454,
+
         "prior_crew_id":1,
        "total_sum":500,
+
         "driver_id":1,
        "cash_sum":0,
+
         "car_id":1,
        "cashless_sum":500,
+
         "phone":"18",
        "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,
 
         "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>
  
=== Проведение операции по клиенту ===
+
=== Запрос выполненных заказов ===
  
Метод: POST
+
Метод: GET
  
Название запроса: create_client_operation
+
Название запроса: get_finished_orders
  
 
Параметры:
 
Параметры:
Строка 3510: Строка 3677:
 
|client_id
 
|client_id
 
|Целое
 
|Целое
|ИД клиента
+
|ИД клиента (может отсутствовать, если phone заполнен)
 
|-
 
|-
|sum
+
|phone
|Дробное
+
|Строка, <= 16 символов
|Сумма
+
|Телефон клиента (может отсутствовать, если client_id заполнен)
 
|-
 
|-
|oper_type
+
|start_time
|Целое
+
|ГГГГММДДччммсс
|Тип операции:
+
|Начало периода
• "receipt" - приход
 
 
 
• "expense" - расход
 
 
|-
 
|-
|pay_type
+
|finish_time
|Целое
 
|Тип оплаты:
 
• "cash" - наличный
 
 
 
• "nocash" - безналичный
 
|-
 
!colspan="3"|Необязательные параметры
 
|-
 
|oper_time
 
 
|ГГГГММДДччммсс
 
|ГГГГММДДччммсс
|Время создания операции
+
|Конец периода
|-
 
|comment
 
|Строка
 
|Комментарий
 
 
|}
 
|}
  
Строка 3556: Строка 3707:
 
!Описание
 
!Описание
 
|-
 
|-
|oper_id
+
|id
 +
|Целое
 +
|ИД заказа
 +
|-
 +
|state_id
 
|Целое
 
|Целое
|ИД операции
+
|ИД состояния заказа
|}
 
 
 
Пример:
 
 
 
<pre>
 
Запрос:
 
 
 
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
 
 
 
Ответ:
 
 
 
{
 
  "code":0,
 
  "descr":"OK",
 
  "data":{
 
    "oper_id":31
 
 
 
  }
 
}
 
</pre>
 
 
 
=== Запрос операций по клиенту ===
 
 
 
Метод: GET
 
 
 
Название запроса: get_client_operations
 
 
 
Параметры:
 
 
 
{|
 
!Параметры
 
!Тип
 
!Описание
 
 
|-
 
|-
!colspan="3"|Обязательные параметры
+
|start_time
 +
|ГГГГММДДччммсс
 +
|Время создания заказа
 
|-
 
|-
|client_id
+
|source_time
|Целое
 
|ИД клиента (обязателен, если phone отсутствует)
 
|-
 
|phone
 
|Целое
 
|Телефон клиента (обязателен, если client_id отсутствует)
 
|-
 
|start_time
 
 
|ГГГГММДДччммсс
 
|ГГГГММДДччммсс
|Начало периода
+
|Время подачи
 
|-
 
|-
 
|finish_time
 
|finish_time
 
|ГГГГММДДччммсс
 
|ГГГГММДДччммсс
|Конец периода
+
|Время завершения заказа
|}
+
|-
 
+
|source 
Специальные возвращаемые коды:
+
|Строка
{|
+
|Адрес подачи
!Код
 
!Описание
 
 
|-
 
|-
|100
+
|source_lat
|Не найден клиент ИД=CLIENT_ID
+
|Дробное
|}
+
|Широта адреса подачи
 
 
Возвращаемые данные в случае успешного выполнения запроса:
 
{|
 
!Параметр
 
!Тип
 
!Описание
 
 
|-
 
|-
|oper_id
+
|source_lon 
|Целое
+
|Дробное
|ИД операции
+
|Долгота адреса подачи
 
|-
 
|-
|oper_time
+
|destination 
|ГГГГММДДччммсс
+
|Строка
|Время создания операции
+
|Адрес назначения
 
|-
 
|-
|sum
+
|destination_lat
 
|Дробное
 
|Дробное
|Сумма
+
|Широта адреса назначения
 
|-
 
|-
|order_id
+
|destination_lon 
|Целое
+
|Дробное
|Заказ, связанный с операцией
+
|Долгота адреса назначения
 
|-
 
|-
|oper_type
+
|stops
|Целое
+
|Массив
|Тип операции:
+
|Массив адресов остановок
• "receipt" - приход
 
 
 
• "expense" - расход
 
 
|-
 
|-
|pay_type
+
|&bull; address
|Целое
+
|Строка
|Тип оплаты:
+
|Адрес остановки
• "cash" - наличный
+
|-
 
+
|&bull; lat
• "nocash" - безналичный
+
|Дробное
 +
|Широта адреса остановки
 +
|-
 +
|&bull; lon
 +
|Дробное
 +
|Долгота адреса остановки
 
|-
 
|-
|name
+
|passenger
 
|Строка
 
|Строка
|Наименование
+
|Пассажир
 +
|-
 +
|sum
 +
|Дробное
 +
|Стоимость заказа без учета скидок (наценок)
 +
|-
 +
|total_sum
 +
|Дробное
 +
|Итоговая стоимость заказа
 +
|-
 +
|cash_sum
 +
|Дробное
 +
|Заплачено наличными
 
|-
 
|-
|comment
+
|cashless_sum
|Строка
+
|Дробное
|Комментарий
+
|Заплачено с безналичного счета клиента
|}
 
 
 
Пример:
 
 
 
<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: <...>
 
 
 
Ответ:
 
 
 
{
 
  "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":"Комментарий"
 
      }
 
    ]
 
  }
 
}
 
</pre>
 
 
 
 
 
=== Проведение операции по водителю ===
 
 
 
Метод: POST
 
 
 
Название запроса: create_driver_operation
 
 
 
Параметры:
 
 
 
{|
 
!Параметр
 
!Тип
 
!Описание
 
 
|-
 
|-
!colspan="3"|Обязательные параметры
+
|bonus_sum
 +
|Дробное
 +
|Заплачено с бонусного счета клиента
 +
|-
 +
|bank_card_sum
 +
|Дробное
 +
|Заплачено банковской картой
 +
|-
 +
|crew_id
 +
|Целое
 +
|ИД экипажа
 +
|-
 +
|prior_crew_id
 +
|Целое
 +
|ИД предварительного экипажа
 
|-
 
|-
 
|driver_id
 
|driver_id
Строка 3735: Строка 3807:
 
|ИД водителя
 
|ИД водителя
 
|-
 
|-
|oper_sum
+
|car_id
|Дробное
+
|Целое
|Сумма
+
|ИД автомобиля
 
|-
 
|-
|oper_type
+
|phone
 
|Строка
 
|Строка
|Тип операции: receipt - приход, expense - расход.
+
|Номер телефона
 
|-
 
|-
!colspan="3"|Необязательные параметры
+
|client_id
 +
|Целое
 +
|ИД клиента
 
|-
 
|-
|name
+
|tariff_id
|Строка
+
|Целое
|Наименование операции
+
|ИД тарифа
 
|-
 
|-
|oper_time
+
|order_crew_group_id
|ГГГГММДДччммсс
+
|Целое
|Время создания операции (если не задано, текущее)
+
|ИД группы экипажей, которая указана в заказе
 
|-
 
|-
|comment
+
|creation_way
 
|Строка
 
|Строка
|Комментарий
+
|Способ создания заказа. Может принимать значения:
|}
+
 
 +
• "operator" — заказ создан оператором
  
Специальные возвращаемые коды:
+
• "sms" — заказ создан через смс
  
{|
+
• "market" — заказ из биржи
!Код
 
!Описание
 
|-
 
|100
 
|Водитель не найден ИД=DRIVER_ID
 
|}
 
  
Возвращаемые данные в случае успешного выполнения запроса:
+
• "common_api" — заказ создан через api
  
{|
+
• "t_api" — заказ создан через api
!Параметр
+
 
!Тип
+
• "taxophone" — заказ создан из таксофона
!Описание
+
 
|-
+
• "driver" — заказ создан водителем
|oper_id
+
 
|Целое
+
• "daily_order" — ежедневный заказ
|ИД операции
+
 
 +
• "unknown" — неизвестный
 
|}
 
|}
 
  
 
Пример:
 
Пример:
  
 
<pre>
 
<pre>
 
 
Запрос:
 
Запрос:
 
+
GET https://ip:port/common_api/1.0/get_finished_orders?client_id=140&phone= HTTP/1.1
POST https://ip:port/common_api/1.0/create_driver_operation HTTP/1.1
 
 
Signature: <...>
 
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,
+
  "code":0,
  "descr":"OK",
+
  "descr":"OK",
  "data":{
+
  "data":{
  "oper_id":31
+
    "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>
  
Метод: GET
+
=== Проведение операции по клиенту ===
  
Название запроса: get_driver_operations
+
Метод: POST
 +
 
 +
Название запроса: create_client_operation
  
 
Параметры:
 
Параметры:
  
 
{|
 
{|
!Параметр
+
!Параметры
 
!Тип
 
!Тип
 
!Описание
 
!Описание
Строка 3829: Строка 3952:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|driver_id
+
|client_id
 +
|Целое
 +
|ИД клиента
 +
|-
 +
|sum
 +
|Дробное
 +
|Сумма
 +
|-
 +
|oper_type
 
|Целое
 
|Целое
|ИД водителя
+
|Тип операции:
 +
• "receipt" - приход
 +
 
 +
• "expense" - расход
 +
|-
 +
!colspan="3"|Необязательные параметры
 
|-
 
|-
|start_time
+
|oper_time
 
|ГГГГММДДччммсс
 
|ГГГГММДДччммсс
|Начало периода
+
|Время создания операции
 +
|-
 +
|comment
 +
|Строка
 +
|Комментарий
 +
|-
 +
|pay_type
 +
|Целое
 +
|Тип оплаты:
 +
• "cash" - наличный
 +
 
 +
• "nocash" - безналичный
 
|-
 
|-
|finish_time
+
|bonus_oper
|ГГГГММДДччммсс
+
|true или false
|Конец периода
+
|Операция по бонусному счёту
 
|}
 
|}
 
  
 
Специальные возвращаемые коды:
 
Специальные возвращаемые коды:
Строка 3849: Строка 3995:
 
|-
 
|-
 
|100
 
|100
|Не найден водитель ИД=DRIVER_ID
+
|Не найден клиент ИД=CLIENT_ID
 
|}
 
|}
 
  
 
Возвращаемые данные в случае успешного выполнения запроса:
 
Возвращаемые данные в случае успешного выполнения запроса:
Строка 3862: Строка 4007:
 
|Целое
 
|Целое
 
|ИД операции
 
|ИД операции
|-
+
|}
|oper_time
+
 
|ГГГГММДДччммсс
+
Пример:
|Время создания операции
 
|-
 
|sum
 
|Дробное
 
|Сумма
 
|-
 
|order_id
 
|Целое
 
|Заказ, связанный с операцией
 
|-
 
|oper_type
 
|Целое
 
|Тип операции:
 
•"receipt" - приход
 
•"expense" - расход
 
|-
 
|name
 
|Строка
 
|Наименование
 
|-
 
|comment
 
|Строка
 
|Комментарий
 
|}
 
 
 
Пример:
 
  
 
<pre>
 
<pre>
 
Запрос:
 
Запрос:
  
GET https://ip:port/common_api/1.0/get_driver_operations?
+
POST https://ip:port/common_api/1.0/create_client_operation HTTP/1.1
driver_id=112&start_time=20130201092112&finish_time=20130221092112 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":{
     "operations":[
+
     "oper_id":31
      {
+
 
        "oper_id":112,
+
   }
        "oper_time":"20130219091328",
+
}
        "sum":"21,8",
+
</pre>
        "order_id":11800,
+
 
        "oper_type":"receipt",
+
=== Запрос операций по клиенту ===
        "name":"DRIVER_OPERATION_1",
+
 
        "comment":"DRIVER_OPERATION_COMMENT_1"
+
Метод: GET
      },
 
      {
 
        "oper_id":112,
 
        "oper_time":"20130220112245",
 
        "sum":"4500",
 
        "order_id":11801,
 
        "oper_type":"receipt",
 
        "name":"DRIVER_OPERATION_2",
 
        "comment":"DRIVER_OPERATION_COMMENT_2"
 
      }
 
    ]
 
   }
 
}
 
</pre>
 
  
=== Задание координат экипажей ===
+
Название запроса: get_client_operations
Метод: POST
 
  
Название запроса: set_crews_coords
+
Параметры:
  
Параметры в формате JSON:
 
 
{|
 
{|
!Параметр
+
!Параметры
 
!Тип
 
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
!Обязательные параметры
+
!colspan="3"|Обязательные параметры
 
|-
 
|-
|crew_coords
+
|client_id
|Массив
 
|Массив координат экипажей
 
|-
 
|&bull; crew_id
 
 
|Целое
 
|Целое
|ИД экипажа
+
|ИД клиента (обязателен, если phone отсутствует)
 
|-
 
|-
|&bull; gps_id
+
|phone
 
|Целое
 
|Целое
|GPS идентификатор (если не задан ИД экипажа)
+
|Телефон клиента (обязателен, если client_id отсутствует)
 
|-
 
|-
|&bull; lat
+
|start_time
|Дробное
+
|ГГГГММДДччммсс
|Широта
+
|Начало периода
 
|-
 
|-
|&bull; lon
+
|finish_time
|Дробное
+
|ГГГГММДДччммсс
|Долгота
+
|Конец периода
 +
|}
 +
 
 +
Специальные возвращаемые коды:
 +
{|
 +
!Код
 +
!Описание
 
|-
 
|-
!Необязательные параметры
+
|100
|-
+
|Не найден клиент ИД=CLIENT_ID
|speed
 
|Дробное
 
|Скорость
 
 
|}
 
|}
  
 
+
Возвращаемые данные в случае успешного выполнения запроса:
Специальные возвращаемые коды: нет
 
 
 
Возвращаемые данные в случае успешного выполнения запроса: нет
 
 
 
 
 
Пример:
 
 
 
<pre>
 
Запрос:
 
 
 
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":{}
 
}
 
</pre>
 
 
 
=== Анализ телефона ===
 
 
 
Метод: GET
 
 
 
Название запроса: analyze_phone
 
 
 
Параметры:
 
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 4009: Строка 4080:
 
!Описание
 
!Описание
 
|-
 
|-
!Обязательные параметры
+
|oper_id
 +
|Целое
 +
|ИД операции
 
|-
 
|-
|phone
+
|oper_time
|Строка
+
|ГГГГММДДччммсс
|Номер телефона
+
|Время создания операции
 +
|-
 +
|sum
 +
|Дробное
 +
|Сумма
 
|-
 
|-
!Необязательные параметры
+
|order_id
 +
|Целое
 +
|Заказ, связанный с операцией
 
|-
 
|-
|search_in_drivers_mobile
+
|oper_type
|true или false
+
|Целое
|Искать среди мобильных телефонов водителей
+
|Тип операции:
 +
• "receipt" - приход
 +
 
 +
• "expense" - расход
 
|-
 
|-
|search_in_drivers_home
+
|pay_type
|true или false
+
|Целое
|Искать среди домашних телефонов водителей
+
|Тип оплаты:
 +
• "cash" - наличный
 +
 
 +
• "nocash" - безналичный
 
|-
 
|-
|search_in_clients
+
|name
|true или false
+
|Строка
|Искать среди телефонов клиентов
+
|Наименование
 
|-
 
|-
|search_in_phones
+
|comment
|true или false
+
|Строка
|Искать в справочнике телефонов
+
|Комментарий
 
|}
 
|}
  
 +
Пример:
  
Если параметры search_in_drivers_mobile, search_in_drivers_home, search_in_clients, search_in_phones не заданы, то поиск телефона будет происходить во всех справочниках.
+
<pre>
 +
Запрос:
  
Специальные возвращаемые коды:
+
GET
{|
 
!Код
 
!Описание
 
|-
 
|100
 
|Телефон не найден
 
|}
 
  
Возвращаемые данные в случае успешного выполнения запроса:
+
GET https://ip:port/common_api/1.0/get_client_operations?
{|
+
client_id=112&start_time=20130201092112&finish_time=20130221092112 HTTP/1.1
!Параметр
 
!Тип
 
!Описание
 
|-
 
|phone_type
 
|Строка
 
|Может принимать значения: «driver_mobile», «driver_home», «client», «phone».
 
|-
 
|id
 
|Целое
 
|ИД водителя, клиента, телефона из справочника.
 
|}
 
  
 
+
Signature: <...>
Пример:
 
 
 
<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
 
  
 
Ответ:
 
Ответ:
Строка 4082: Строка 4137:
 
   "descr":"OK",
 
   "descr":"OK",
 
   "data":{
 
   "data":{
  "phone_type":"client",
+
    "operations":[
  "id":1
+
      {
  }
+
        "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
  
Название запроса: show_tm_message
+
Название запроса: create_driver_operation
  
 
Параметры:
 
Параметры:
Строка 4103: Строка 4177:
 
!Описание
 
!Описание
 
|-
 
|-
!Обязательные параметры
+
!colspan="3"|Обязательные параметры
 +
|-
 +
|driver_id
 +
|Целое
 +
|ИД водителя
 +
|-
 +
|oper_sum
 +
|Дробное
 +
|Сумма
 
|-
 
|-
|text
+
|oper_type
 
|Строка
 
|Строка
|Текст сообщения
+
|Тип операции: receipt - приход, expense - расход.
 
|-
 
|-
!Необязательные параметры
+
!colspan="3"|Необязательные параметры
 
|-
 
|-
|header
+
|name
 
|Строка
 
|Строка
|Заголовок сообщения
+
|Наименование операции
 
|-
 
|-
|timeout
+
|oper_time
|Целое
+
|ГГГГММДДччммсс
|Скрывать сообщение через, сек. (0 — не скрывать)
+
|Время создания операции (если не задано, текущее)
 
|-
 
|-
|users
+
|comment
|Массив
+
|Строка
|Массив пользователей (если не указаны — отправлять всем)
+
|Комментарий
|-
 
|&bull;
 
|Целое
 
|ИД пользователя
 
 
|}
 
|}
 
  
 
Специальные возвращаемые коды:
 
Специальные возвращаемые коды:
Строка 4136: Строка 4213:
 
|-
 
|-
 
|100
 
|100
|Пользователи для отправки сообщения не найдены
+
|Водитель не найден ИД=DRIVER_ID
 
|}
 
|}
  
 +
Возвращаемые данные в случае успешного выполнения запроса:
 +
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 +
|-
 +
|oper_id
 +
|Целое
 +
|ИД операции
 +
|}
  
Возвращаемые данные в случае успешного выполнения запроса: нет.
 
  
 
Пример:
 
Пример:
 +
 
<pre>
 
<pre>
  
 
Запрос:
 
Запрос:
POST /common_api/1.0/show_tm_message HTTP/1.1
+
 
Host: 127.0.0.1:8089
+
POST https://ip:port/common_api/1.0/create_driver_operation HTTP/1.1
Keep-Alive: 300
+
Signature: <...>
Connection: keep-alive
+
Content-Type: application/json
Signature: 4285286a446064353f4a951b721c54f7
+
Content-Length: 99
  
 
{
 
{
   "text": "Текст сообщения",
+
   "driver_id": 1,
   "users": [
+
  "oper_sum": 10.00,
      1,
+
   "oper_type": "receipt",
      2,
+
   "name": "Пополнение счета",
      3
+
   "oper_time": "20141210100719",
   ],
+
   "comment": "Комментарий к операции"
   "header": "Заголовок",
 
   "timeout": 12
 
 
}
 
}
 
  
 
Ответ:
 
Ответ:
  
 
{
 
{
  "code":0,
+
  "code":0,
  "descr":"OK",
+
  "descr":"OK",
  "data":{}
+
  "data":{
 +
  "oper_id":31
 +
  }
 
}
 
}
  
Строка 4175: Строка 4262:
  
  
=== Запрос списка купленных смен водителей ===
+
=== Запрос операций по водителю ===
  
 
Метод: GET
 
Метод: GET
  
Название запроса: get_driver_shifts
+
Название запроса: get_driver_operations
  
 
Параметры:
 
Параметры:
Строка 4188: Строка 4275:
 
!Описание
 
!Описание
 
|-
 
|-
!Обязательные параметры
+
!colspan="3"|Обязательные параметры
 +
|-
 +
|driver_id
 +
|Целое
 +
|ИД водителя
 
|-
 
|-
 
|start_time
 
|start_time
Строка 4197: Строка 4288:
 
|ГГГГММДДччммсс
 
|ГГГГММДДччммсс
 
|Конец периода
 
|Конец периода
 +
|}
 +
 +
 +
Специальные возвращаемые коды:
 +
{|
 +
!Код
 +
!Описание
 
|-
 
|-
!Необязательные параметры
+
|100
 +
|Не найден водитель ИД=DRIVER_ID
 +
|}
 +
 
 +
 
 +
Возвращаемые данные в случае успешного выполнения запроса:
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 
|-
 
|-
|driver_id
+
|oper_id
 
|Целое
 
|Целое
|ИД водителя
+
|ИД операции
 
|-
 
|-
|new_shifts
+
|oper_time
|true или false
+
|ГГГГММДДччммсс
|Включить в ответ новые смены (по умолчанию true)
+
|Время создания операции
 
|-
 
|-
|in_work_shifts
+
|sum
|true или false
+
|Дробное
|Включить в ответ смены в работе (по умолчанию true)
+
|Сумма
 +
|-
 +
|order_id
 +
|Целое
 +
|Заказ, связанный с операцией
 
|-
 
|-
|finished_shifts
+
|oper_type
|true или false
+
|Целое
|Включить в ответ выполненные смены (по умолчанию true)
+
|Тип операции:
 +
•"receipt" - приход
 +
•"expense" - расход
 
|-
 
|-
|failed_shifts
+
|name
|true или false
+
|Строка
|Включить в ответ неуспешно завершенные смены (по умолчанию true)
+
|Наименование
 
|-
 
|-
|returned_shifts
+
|comment
|true или false
+
|Строка
|Включить в ответ возвращенные смены (по умолчанию false)
+
|Комментарий
 
|}
 
|}
  
Специальные возвращаемые коды: нет
+
Пример:
 +
 
 +
<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":[
|shifts
+
      {
|Массив
+
        "oper_id":112,
|Массив купленных смен
+
        "oper_time":"20130219091328",
|-
+
        "sum":"21,8",
|&bull; shift_id
+
        "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:
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 
|-
 
|-
|&bull; driver_id
+
!Обязательные параметры
|Целое
 
|ИД водителя
 
 
|-
 
|-
|&bull;driver_name
+
|crew_coords
|Строка
+
|Массив
|ФИО водителя
+
|Массив координат экипажей
 
|-
 
|-
|&bull; plan_shift_id
+
|&bull; crew_id
|Строка
+
|Целое
|ИД запланированной смены
+
|ИД экипажа
 
|-
 
|-
|&bull; plan_shift_name
+
|&bull; gps_id
|Строка
+
|Целое
|Наименование запланированной смены
+
|GPS идентификатор (если не задан ИД экипажа)
 
|-
 
|-
|&bull; plan_shift_cost
+
|&bull; lat
|Дробное  
+
|Дробное
|Цена смены
+
|Широта
 
|-
 
|-
|&bull; plan_shift_type
+
|&bull; lon
|Строка
+
|Дробное
|Тип смены («limited» - срочная, «unlimited» - бессрочная)
+
|Долгота
 
|-
 
|-
|&bull; plan_shift_start_time
+
!Необязательные параметры
|ГГГГММДДччммсс
 
|План-начало смены (для срочных)
 
 
|-
 
|-
|&bull; plan_shift_finish_time
+
|speed
|ГГГГММДДччммсс
+
|Дробное
|План-конец смены (для срочных)
+
|Скорость
|-
+
|}
|&bull; plan_shift_length
+
 
|Целое
+
 
|План продолжительность смены, ч. (для бессрочных)
+
Специальные возвращаемые коды: нет
|-
+
 
|&bull; plan_shift_crew_group_id
+
Возвращаемые данные в случае успешного выполнения запроса: нет
|Целое
+
 
|ИД группы экипажей, которые могут купить смену
+
 
|-
+
Пример:
|&bull; shift_state
+
 
|Строка
 
|Состояние смены («new» - новая, «in_work» - в работе, «finished» - завершена успешно, «failed» - завершена неуспешно)
 
|-
 
|&bull; buy_time
 
|ГГГГММДДччммсс
 
|Время продажи смены водителю
 
|-
 
|&bull; is_returned
 
|true или false
 
|Признак возвращенной смены
 
|-
 
|&bull; return_time
 
|ГГГГММДДччммсс
 
|Время возврата смены
 
|-
 
|&bull; orders_count
 
|Целое
 
|Количество заказов, выполненных водителем за смену
 
|-
 
|&bull; orders_sum
 
|Дробное
 
|Сумма заказов, выполненных водителем за смену
 
|-
 
|&bull; fact_length
 
|Дробное
 
|Фактическая продолжительность смены, ч.
 
|}
 
 
 
Пример:
 
 
 
 
<pre>
 
<pre>
 
Запрос:
 
Запрос:
  
GET https://ip:port/common_api/1.0/get_driver_shifts?start_time=20140101101010&finish_time=20140101202020 HTTP/1.1
+
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":{}
    "shifts":[
+
}
      {
+
</pre>
        "shift_id":1,
+
=== Изменение информации по заказу ===
        "driver_id":1,
+
Метод: POST
        "driver_name":"DRIVER_1",
+
 
        "plan_shift_id":1,
+
Название запроса: update_order
        "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_driver_plan_shifts
 
 
 
Параметры:
 
  
 
{|
 
{|
Строка 4386: Строка 4456:
 
!Описание
 
!Описание
 
|-
 
|-
!Обязательные параметры
+
!colspan="3"|Обязательные параметры
 
|-
 
|-
|start_time
+
|order_id
|ГГГГММДДччммсс
+
|Целое
|Начало периода (если включаем в ответ срочные смены)
+
|ИД заказа
 
|-
 
|-
|finish_time
+
!colspan="3"|Необязательные параметры
|ГГГГММДДччммсс
 
|Конец периода (если включаем в ответ срочные смены)
 
 
|-
 
|-
!Необязательные параметры
+
|phone
 +
|Строка, <= 16 символов
 +
|Номер телефона
 
|-
 
|-
|limited_shifts
+
|source_time
|true или false
+
|ГГГГММДДччммсс
|Включить в ответ срочные смены (по умолчанию true)
+
|Время подачи
 
|-
 
|-
|unlimited_shifts
+
|is_prior
|true или false  
+
|true или false
|Включить в ответ бессрочные смены (по умолчанию true)
+
|Предварительный заказ
|}
 
 
 
Специальные возвращаемые коды: нет
 
 
 
Возвращаемые данные в случае успешного выполнения запроса:
 
{|
 
!Параметр
 
!Тип
 
!Описание
 
 
|-
 
|-
|plan_shifts
+
|customer
|Массив
+
|Строка
|Массив запланированных смен
+
|Заказчик
 
|-
 
|-
|&bull; plan_shift_id
+
|passenger
|Целое
+
|Строка
|ИД запланированной смены
+
|Пассажир
 
|-
 
|-
|&bull; plan_shift_name
+
|comment
|Строка  
+
|Строка
|Наименование запланированной смены
+
|Комментарий
 
|-
 
|-
|&bull; plan_shift_comment
+
|crew_group_id
|Строка
+
|Целое
|Комментарий запланированной смены
+
|ИД группы экипажей
 
|-
 
|-
|&bull; plan_shift_cost
+
|client_id
|Дробное
+
|Целое
|Цена смены
+
|ИД клиента
 
|-
 
|-
|&bull; plan_shift_type
+
|uds_id
|Строка
+
|Целое
|Тип смены («limited» - срочная, «unlimited» - бессрочная)
+
|ИД службы ЕДС
 
|-
 
|-
|&bull; plan_shift_start_time
+
|tariff_id
|ГГГГММДДччммсс
+
|Целое
|План-начало смены (для срочных)
+
|ИД тариф
 
|-
 
|-
|&bull; plan_shift_finish_time
+
|addresses
|ГГГГММДДччммсс
+
|Массив
|План-конец смены (для срочных)
+
|Массив адресов. Первый элемент — адрес
 +
подачи(обязательно), последний — адрес назначения,
 +
между ними — остановки.
 
|-
 
|-
|&bull; plan_shift_length
+
|&bull; address
|Целое
+
|Строка
|План продолжительность смены, ч. (для бессрочных)
+
|Адрес подачи
 
|-
 
|-
|&bull; plan_shift_crew_group_id
+
|&bull; lat
|Целое
+
|Дробное
|ИД группы экипажей, которые могут купить смену
+
|Широта адреса
 
|-
 
|-
|&bull; max_sell_count
+
|&bull; lon
|Целое
+
|Дробное
|Максимальное количество продаж смены
+
|Долгота адреса
 
|-
 
|-
|&bull; sold_count
+
|order_params
|Целое  
+
|Массив
|Количество продаж смены
+
|Массив параметров заказа
 +
|-
 +
|&bull;
 +
|Целое
 +
|ИД параметра заказа
 +
|-
 +
|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>
+
!Код
Запрос:
+
!Описание
 
+
|-
GET https://ip:port/common_api/1.0/get_driver_plan_shifts?start_time=20140101101010&finish_time=20140101202020 HTTP/1.1
+
|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":{}
    "plan_shifts":[
+
}
      {
+
</pre>
        "plan_shift_id":1,
+
 
        "plan_shift_name":"PLAN_SHIFT_1",
+
=== Анализ телефона ===
        "plan_shift_comment":"PLAN_SHIFT_COMMENT_1",
+
 
        "plan_shift_cost":100,
+
Метод: GET
        "plan_shift_type":"limited",
+
 
        "plan_shift_start_time":"20140101101010",
+
Название запроса: analyze_phone
        "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>
 
 
 
 
 
=== Продажа смены водителю ===
 
 
 
Метод: POST
 
 
 
Название запроса: driver_buy_shift
 
  
 
Параметры:
 
Параметры:
 
 
{|
 
{|
 
!Параметр
 
!Параметр
Строка 4527: Строка 4646:
 
!Обязательные параметры
 
!Обязательные параметры
 
|-
 
|-
|crew_id
+
|phone
|Целое
+
|Строка
|ИД экипажа
+
|Номер телефона
 
|-
 
|-
|plan_shift_id
+
!Необязательные параметры
|Целое
 
|ИД запланированной смены
 
|}
 
 
 
Специальные возвращаемые коды:
 
 
 
{|
 
!Код
 
!Описание
 
 
|-
 
|-
|100
+
|search_in_drivers_mobile
|Запланированная смена не найдена
+
|true или false
 +
|Искать среди мобильных телефонов водителей
 
|-
 
|-
|101
+
|search_in_drivers_home
|Экипаж не найден
+
|true или false
 +
|Искать среди домашних телефонов водителей
 
|-
 
|-
|102
+
|search_in_clients
|Водитель не найден
+
|true или false
 +
|Искать среди телефонов клиентов
 
|-
 
|-
|103
+
|search_in_phones
|Недостаточно денег на счете водителя
+
|true или false
|-
+
|Искать в справочнике телефонов
|104
 
|Водитель уволен либо заблокирован
 
|-
 
|105
 
|Запланированная смена устарела
 
|-
 
|106
 
|Не подходит группа экипажа
 
|-
 
|107
 
|Превышено максимальное число покупок смены
 
|-
 
|108
 
|Повторная покупка смены
 
 
|}
 
|}
  
  
Возвращаемые данные в случае успешного выполнения запроса: нет.
+
Если параметры search_in_drivers_mobile, search_in_drivers_home, search_in_clients, search_in_phones не заданы, то поиск телефона будет происходить во всех справочниках.
  
Пример:
+
Специальные возвращаемые коды:
 +
{|
 +
!Код
 +
!Описание
 +
|-
 +
|100
 +
|Телефон не найден
 +
|}
  
<pre>
+
Возвращаемые данные в случае успешного выполнения запроса:
Запрос:
+
{|
 
+
!Параметр
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
+
|phone_type
crew_id=1&plan_shift_id=1
+
|Строка
 +
|Может принимать значения: «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>
  
== Описание протокола TMTAPI Версия 1.0 ==
 
  
=== Общее описание протокола ===
+
=== Показать сообщение в ТМ ===
  
==== Формат запроса ====
+
Метод: POST
  
TM API принимает входящие запросы по протоколу HTTPS. В URI запроса после ip адреса и порта, который будет слушать TM API, должно идти название API (tm_tapi) и версия API.
+
Название запроса: show_tm_message
  
Пример:
+
Параметры:
 +
 
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 +
|-
 +
!Обязательные параметры
 +
|-
 +
|text
 +
|Строка
 +
|Текст сообщения
 +
|-
 +
!Необязательные параметры
 +
|-
 +
|header
 +
|Строка
 +
|Заголовок сообщения
 +
|-
 +
|timeout
 +
|Целое
 +
|Скрывать сообщение через, сек. (0 — не скрывать)
 +
|-
 +
|users
 +
|Массив
 +
|Массив пользователей (если не указаны — отправлять всем)
 +
|-
 +
|&bull;
 +
|Целое
 +
|ИД пользователя
 +
|}
  
<pre>
 
GET https://ip:port/tm_tapi/1.0/get_info_by_phone HTTP/1.1
 
</pre>
 
  
Для получения данных из БД используются запросы типа GET. Для записи данных в БД используются запросы типа POST. В запросе типа GET параметры запроса передаются в URI.
+
Специальные возвращаемые коды:
  
Пример:
+
{|
 +
!Код
 +
!Описание
 +
|-
 +
|100
 +
|Пользователи для отправки сообщения не найдены
 +
|}
  
<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>
 
<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>
+
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
  
В любом запросе обязательно с другими полями должно передаваться поле signature. В нем передается MD5 хэш, рассчитанный для строки, которая получается сцеплением строки параметров запроса с секретным ключом. Секретный ключ задается в настройках модуля TMAPI в Такси-Мастер.
+
{
 +
  "text": "Текст сообщения",
 +
  "users": [
 +
      1,
 +
      2,
 +
      3
 +
  ],
 +
  "header": "Заголовок",
 +
  "timeout": 12
 +
}
  
Пример:
 
  
<pre>
+
Ответ:
Запрос:
 
GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565&fields=PHONE_TYPE
 
&signature=ef17ea682d09e452af544a5758dba396 HTTP/1.1
 
  
Секретный ключ:
+
{
321
+
  "code":0,
 +
  "descr":"OK",
 +
  "data":{}
 +
}
  
Signature = MD5("phone=89058800565&fields=PHONE_TYPE" + "321") = ef17ea682d09e452af544a5758dba396
 
HTTP/1.1
 
 
</pre>
 
</pre>
  
==== Формат ответа ====
 
TM API всегда возвращает HTTP код 200 ОК. Результат выполнения запроса содержится в теле ответа в формате XML. Общий вид возвращаемого результата:
 
  
<pre>
+
=== Запрос списка купленных смен водителей ===
<response>
+
 
<code>Числовой код результата</code>
+
Метод: GET
<descr>Строковое описание результата</descr>
+
 
<data>Дополнительная информация</data>
+
Название запроса: get_driver_shifts
</response>
+
 
</pre>
+
Параметры:
  
Существуют общие для всех запросов коды результатов:
 
 
{|
 
{|
! Код
+
!Параметр
! Описание
+
!Тип
 +
!Описание
 
|-
 
|-
|0
+
!Обязательные параметры
|Успешное выполнение запроса
 
 
|-
 
|-
|1
+
|start_time
|Неизвестная ошибка
+
|ГГГГММДДччммсс
 +
|Начало периода
 
|-
 
|-
|2
+
|finish_time
|Неизвестный тип API
+
|ГГГГММДДччммсс
 +
|Конец периода
 
|-
 
|-
|3
+
!Необязательные параметры
|API отключено в настройках модуля TM API в Такси-Мастер
 
 
|-
 
|-
|4
+
|driver_id
|Не совпадает секретный ключ
+
|Целое
 +
|ИД водителя
 
|-
 
|-
|5
+
|new_shifts
|Неподдерживаемая версия API
+
|true или false
 +
|Включить в ответ новые смены (по умолчанию true)
 
|-
 
|-
|6
+
|in_work_shifts
|Неизвестное название запроса
+
|true или false
 +
|Включить в ответ смены в работе (по умолчанию true)
 
|-
 
|-
|7
+
|finished_shifts
|Неверный тип запроса GET
+
|true или false
 +
|Включить в ответ выполненные смены (по умолчанию true)
 
|-
 
|-
|8
+
|failed_shifts
|Не хватает входного параметра (в доп. информации ответа будет название отсутствующего параметра)
+
|true или false
 +
|Включить в ответ неуспешно завершенные смены (по умолчанию true)
 
|-
 
|-
|9
+
|returned_shifts
|Некорректный входной параметр (в доп. информации ответа будет название некорректного параметра)
+
|true или false
|-
+
|Включить в ответ возвращенные смены (по умолчанию false)
|10
 
|Внутренняя ошибка обработки запроса
 
 
|}
 
|}
  
=== Описание запросов ===
+
Специальные возвращаемые коды: нет
  
==== Запрос информации по номеру телефона ====
+
Возвращаемые данные в случае успешного выполнения запроса:
Метод: GET
 
 
 
Название запроса: get_info_by_phone
 
 
 
Параметры:
 
  
 
{|
 
{|
!Параметр  
+
!Параметр
!Тип  
+
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
!colspan="3"|Обязательные параметры
+
|shifts
 +
|Массив
 +
|Массив купленных смен
 +
|-
 +
|&bull; shift_id
 +
|Целое
 +
|ИД купленной смены
 +
|-
 +
|&bull; driver_id
 +
|Целое
 +
|ИД водителя
 
|-
 
|-
|PHONE
+
|&bull;driver_name
|Строка, <= 16 символов
+
|Строка  
|Номер телефона
+
|ФИО водителя
 
|-
 
|-
|FIELDS
+
|&bull; plan_shift_id
 
|Строка
 
|Строка
|Список полей, которые необходимо вернуть. Поля перечисляются через символ ''"-"''
+
|ИД запланированной смены
 
|-
 
|-
|signature
+
|&bull; plan_shift_name
 
|Строка  
 
|Строка  
|Поле для проверки секретного ключа.
+
|Наименование запланированной смены
|}
+
|-
 
+
|&bull; plan_shift_cost
Специальные возвращаемые коды: нет
+
|Дробное
 
+
|Цена смены
Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields.
+
|-
 
+
|&bull; plan_shift_type
{|
+
|Строка
!Параметр
+
|Тип смены («limited» - срочная, «unlimited» - бессрочная)
!Тип  
 
!Описание
 
 
|-
 
|-
|PHONE_TYPE
+
|&bull; plan_shift_start_time
|Целое
+
|ГГГГММДДччммсс
|Тип телефона звонящего
+
|План-начало смены (для срочных)
(1 - если звонит водитель; 2 - если звонит физическое лицо; 3 - если звонит юридическое лицо; 4 - если звонит номер из справочника Телефоны; 0 - неизвестный номер)
 
 
|-
 
|-
|PHONE_TO_DIAL
+
|&bull; plan_shift_finish_time
|Строка, <= 16 символов
+
|ГГГГММДДччммсс
|Номер телефона для отзвона по заказу
+
|План-конец смены (для срочных)
 
|-
 
|-
|CREW_ID
+
|&bull; plan_shift_length
 
|Целое  
 
|Целое  
|ИД экипажа
+
|План продолжительность смены, ч. (для бессрочных)
 
|-
 
|-
|IS_PRIOR
+
|&bull; plan_shift_crew_group_id
|true или false
+
|Целое
|Признак предварительного заказа
+
|ИД группы экипажей, которые могут купить смену
 
|-
 
|-
|ORDER_CLIENT_ID
+
|&bull; shift_state
|Целое
+
|Строка
|ИД клиента из заказа
+
|Состояние смены («new» - новая, «in_work» - в работе, «finished» - завершена успешно, «failed» - завершена неуспешно)
 
|-
 
|-
|DRIVER_PHONE
+
|&bull; buy_time
|Строка, <= 16 символов
+
|ГГГГММДДччммсс
|Номер телефона водителя
+
|Время продажи смены водителю
|-
 
|CREW_SYSTEMSTATE
 
|Целое
 
|Состояние экипажа
 
 
|-
 
|-
|CLIENT_ID
+
|&bull; is_returned
|Целое
+
|true или false
|ИД клиента
+
|Признак возвращенной смены
 
|-
 
|-
|CLIENT_TYPE
+
|&bull; return_time
|Целое
+
|ГГГГММДДччммсс
|Тип клиента
+
|Время возврата смены
 
|-
 
|-
|CATEGORYID
+
|&bull; orders_count
 
|Целое  
 
|Целое  
|ИД категории телефона
+
|Количество заказов, выполненных водителем за смену
 
|-
 
|-
|PHONE_SYSTEM_CATEGORY
+
|&bull; orders_sum
|Целое
 
|Системное значение категории телефона (0 - обычный, 1 - черный, 2 - белый, 3 - серый)
 
|-
 
|ORDER_ID
 
|Целое
 
|ИД заказа
 
|-
 
|DRIVER_ID
 
|Целое
 
|ИД водителя
 
|-
 
|ORDER_STATE
 
|Целое
 
|Состояние заказа
 
|-
 
|DRIVER_REMAINDER
 
 
|Дробное  
 
|Дробное  
|Баланс счета водителя
+
|Сумма заказов, выполненных водителем за смену
 
|-
 
|-
|DISCOUNTEDSUMM
+
|&bull; fact_length
|Строка
 
|Сумма заказа с учетом всех скидок
 
|-
 
|CREW_GROUP_ID
 
|Целое
 
|ИД группы экипажа
 
|-
 
|CLIENT_BALANCE
 
 
|Дробное  
 
|Дробное  
|Баланс клиента
+
|Фактическая продолжительность смены, ч.
|-
+
|}
|DRIVER_TIMECOUNT
+
 
|Целое
+
Пример:
|Время пути водителя до адреса подачи (в минутах)
+
 
|-
+
<pre>
|SOURCE_TIMECOUNT
+
Запрос:
|Целое
+
 
|Время оставшееся до подачи (в минутах)
+
GET https://ip:port/common_api/1.0/get_driver_shifts?start_time=20140101101010&finish_time=20140101202020 HTTP/1.1
|-
+
Signature: <...>
|SOUND_COLOR
+
 
|Строка
+
 
|Запись с информацией о цвете
+
Ответ:
|-
+
 
|SOUND_MARK
+
{
|Строка
+
  "code":0,
|Запись с информацией о марке автомобиля
+
  "descr":"OK",
|-
+
  "data":{
|GOSNUMBER
+
    "shifts":[
|Строка
+
      {
|Государственный номер автомобиля
+
        "shift_id":1,
|-
+
        "driver_id":1,
|CAR_COLOR
+
        "driver_name":"DRIVER_1",
|Строка
+
        "plan_shift_id":1,
|Цвет автомобиля
+
        "plan_shift_name":"PLAN_SHIFT_1",
|-
+
        "plan_shift_cost":100,
|CAR_MARK
+
        "plan_shift_type":"limited",
|Строка
+
        "plan_shift_start_time":"20140101101010",
|Марка автомобиля
+
        "plan_shift_finish_time":"20140101101010",
|-
+
        "plan_shift_length":null,
|ORDER_COORDS
+
        "plan_shift_crew_group_id":1,
|Строка
+
        "shift_state":new,
|Координаты места подачи
+
        "buy_time":"20140101101010",
|-
+
        "is_returned":false,
|CREW_COORDS
+
        "return_time":null,
|Строка
+
        "orders_count":10,
|Координаты назначенного экипажа
+
        "orders_sum":1000,
|-
+
        "fact_length":1.2
|MARKET_TYPE
+
      },
|Целое
+
      {
|Тип биржи заказов (2 — Яндекс, 3 — ЦОЗ).
+
        "shift_id":2,
|-
+
        "driver_id":2,
|ORDERS_COUNT
+
        "driver_name":"DRIVER_2",
|Целое
+
        "plan_shift_id":2,
|Для телефона клиента — количество текущих и предварительных заказов по телефону; для телефона водителя — количество текущих заказов, на которые назначен данный водитель
+
        "plan_shift_name":"PLAN_SHIFT_2",
|-
+
        "plan_shift_cost":200,
|CLIENT_GROUP_ID
+
        "plan_shift_type":"unlimited",
|Целое
+
        "plan_shift_start_time":null,
|ИД группы клиента
+
        "plan_shift_finish_time":null,
|-
+
        "plan_shift_length":8,
|CLIENT_BONUS_BALANCE
+
        "plan_shift_crew_group_id":null,
|Дробное
+
        "shift_state":new,
|Бонусный баланс клиента
+
        "buy_time":"20140101101010",
|-
+
        "is_returned":true,
|AD_LIGHTHOUSE
+
        "return_time":"20140101101010",
|Строка
+
        "orders_count":0,
|Признак наличия шашек. Пустая строка – номер клиента или водителя без экипажа. 1 – есть шашки, 0 – нет шашек.
+
        "orders_sum":0,
|-
+
        "fact_length":0
|CREW_STATE
+
      }
|Целое
+
    ]
|Состояние экипажа.
+
  }
|}
+
}
 +
</pre>
  
Пример:
 
  
<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>
 
  <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>
 
  </data>
 
</response>
 
</pre>
 
 
 
==== Запрос информации по ИД заказа ====
 
  
 
Метод: GET
 
Метод: GET
  
Название запроса: get_info_by_order_id
+
Название запроса: get_driver_plan_shifts
  
 
Параметры:
 
Параметры:
  
 
{|
 
{|
!Параметр  
+
!Параметр
!Тип  
+
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
|colspan="3"|Обязательные параметры
+
!Обязательные параметры
 
|-
 
|-
|ORDER_ID
+
|start_time
|Целое
+
|ГГГГММДДччммсс
|ИД заказа
+
|Начало периода (если включаем в ответ срочные смены)
 +
|-
 +
|finish_time
 +
|ГГГГММДДччммсс
 +
|Конец периода (если включаем в ответ срочные смены)
 +
|-
 +
!Необязательные параметры
 
|-
 
|-
|FIELDS
+
|limited_shifts
|Строка
+
|true или false
|Список полей, которые необходимо вернуть. Поля перечисляются через символ ''"-"''
+
|Включить в ответ срочные смены (по умолчанию true)
 
|-
 
|-
|signature
+
|unlimited_shifts
|Строка
+
|true или false
|Поле для проверки секретного ключа
+
|Включить в ответ бессрочные смены (по умолчанию true)
 
|}
 
|}
  
 
Специальные возвращаемые коды: нет
 
Специальные возвращаемые коды: нет
  
Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields.
+
Возвращаемые данные в случае успешного выполнения запроса:
 
 
 
{|
 
{|
!Параметр  
+
!Параметр
!Тип  
+
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
|DRIVER_TIMECOUNT
+
|plan_shifts
|Строка, <= 16 символов
+
|Массив
|Время до подачи в минутах, указанное водителем
+
|Массив запланированных смен
 +
|-
 +
|&bull; plan_shift_id
 +
|Целое
 +
|ИД запланированной смены
 
|-
 
|-
|SOUND_COLOR
+
|&bull; plan_shift_name
 
|Строка  
 
|Строка  
|Запись с информацией о цвете
+
|Наименование запланированной смены
 
|-
 
|-
|CAR_MARK
+
|&bull; plan_shift_comment
 
|Строка  
 
|Строка  
|Марка автомобиля
+
|Комментарий запланированной смены
 
|-
 
|-
|CAR_COLOR
+
|&bull; plan_shift_cost
 +
|Дробное
 +
|Цена смены
 +
|-
 +
|&bull; plan_shift_type
 
|Строка  
 
|Строка  
|Цвет автомобиля
+
|Тип смены («limited» - срочная, «unlimited» - бессрочная)
 
|-
 
|-
|GOSNUMBER
+
|&bull; plan_shift_start_time
|Строка
+
|ГГГГММДДччммсс
|Государственный номер автомобиля
+
|План-начало смены (для срочных)
 
|-
 
|-
|SOUND_MARK
+
|&bull; plan_shift_finish_time
|Строка
+
|ГГГГММДДччммсс
|Запись с информацией о марке автомобиля
+
|План-конец смены (для срочных)
 
|-
 
|-
|CREW_GROUP_ID
+
|&bull; plan_shift_length
 
|Целое  
 
|Целое  
|ИД группы экипажа
+
|План продолжительность смены, ч. (для бессрочных)
 
|-
 
|-
|IS_PRIOR
+
|&bull; plan_shift_crew_group_id
|true или false
+
|Целое
|Признак предварительного заказа
+
|ИД группы экипажей, которые могут купить смену
 
|-
 
|-
|DISCOUNTEDSUMM
+
|&bull; max_sell_count
|Строка
 
|Сумма заказа с учетом всех скидок
 
|-
 
|DRIVER_PHONE
 
|Строка, <= 16 символов
 
|Номер телефона водителя
 
|-
 
|CATEGORYID
 
 
|Целое  
 
|Целое  
|ИД категории телефона
+
|Максимальное количество продаж смены
 
|-
 
|-
|SOURCE_TIMECOUNT
+
|&bull; sold_count
 
|Целое  
 
|Целое  
|Время до подачи в минутах
+
|Количество продаж смены
|-
+
|}
|ORDER_COORDS
+
 
|Строка
 
|Координаты места подачи
 
|-
 
|CREW_COORDS
 
|Строка
 
|Координаты назначенного экипажа
 
|-
 
|ORDER_STATE
 
|Целое
 
|ИД состояния заказа
 
|-
 
|MARKET_TYPE
 
|Целое
 
|Тип биржи заказов (2 — Яндекс, 3 — ЦОЗ).
 
|-
 
|AD_LIGHTHOUSE
 
|Строка
 
|Признак наличия шашек (1 – шашки есть, 0 – шашек нет).
 
|-
 
|CREW_STATE
 
|Целое
 
|Состояние экипажа.
 
|}
 
 
 
 
Пример:
 
Пример:
  
Строка 5004: Строка 5104:
 
Запрос:
 
Запрос:
  
GET https://ip:port/tm_tapi/1.0/get_info_by_order_id?order_id=60&fields=DRIVER_SOURCETIME-MARKCOLOR-
+
GET https://ip:port/common_api/1.0/get_driver_plan_shifts?start_time=20140101101010&finish_time=20140101202020 HTTP/1.1
GOSNUMBER-IS_PRIOR-MOBILE_PHONE-SOURCE_TIME&signature=fdcd04e570443b56176b83f44748dc23
+
Signature: <...>
HTTP/1.1
+
 
  
 
Ответ:
 
Ответ:
  
<response>
+
{
   <code>0</code>
+
   "code":0,
   <descr>OK</descr>
+
   "descr":"OK",
   <data>
+
   "data":{
     <DRIVER_SOURCETIME></DRIVER_SOURCETIME>
+
     "plan_shifts":[
    <MARK></MARK>
+
      {
    <COLOR></COLOR>
+
        "plan_shift_id":1,
    <GOSNUMBER></GOSNUMBER>
+
        "plan_shift_name":"PLAN_SHIFT_1",
    <IS_PRIOR></IS_PRIOR>
+
        "plan_shift_comment":"PLAN_SHIFT_COMMENT_1",
    <MOBILE_PHONE></MOBILE_PHONE>
+
        "plan_shift_cost":100,
     <SOURCE_TIME></SOURCE_TIME>
+
        "plan_shift_type":"limited",
   </data>
+
        "plan_shift_start_time":"20140101101010",
</response>
+
        "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
  
Название запроса: change_order_state
+
Название запроса: driver_buy_shift
  
 
Параметры:
 
Параметры:
  
 
{|
 
{|
!Параметр  
+
!Параметр
!Тип  
+
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
!colspan="3"|Обязательные параметры
+
!Обязательные параметры
 
|-
 
|-
|ORDER_ID
+
|crew_id
 
|Целое  
 
|Целое  
|ИД заказа
+
|ИД экипажа
 
|-
 
|-
|NEED_STATE
+
|plan_shift_id
 
|Целое  
 
|Целое  
|Новое состояние заказа
+
|ИД запланированной смены
|-
 
|signature
 
|Строка
 
|Поле для проверки секретного ключа
 
 
|}
 
|}
  
Строка 5055: Строка 5174:
  
 
{|
 
{|
!Код  
+
!Код
 
!Описание
 
!Описание
 
|-
 
|-
 
|100  
 
|100  
|Заказ с таким ИД не найден
+
|Запланированная смена не найдена
 
|-
 
|-
 
|101  
 
|101  
|Изменение состояния не соответствует необходимым условиям
+
|Экипаж не найден
 +
|-
 +
|102
 +
|Водитель не найден
 +
|-
 +
|103
 +
|Недостаточно денег на счете водителя
 +
|-
 +
|104
 +
|Водитель уволен либо заблокирован
 +
|-
 +
|105
 +
|Запланированная смена устарела
 +
|-
 +
|106
 +
|Не подходит группа экипажа
 +
|-
 +
|107
 +
|Превышено максимальное число покупок смены
 +
|-
 +
|108
 +
|Повторная покупка смены
 
|}
 
|}
  
Возвращаемые данные в случае успешного выполнения запроса:
 
  
{|
+
Возвращаемые данные в случае успешного выполнения запроса: нет.
!Параметр
 
!Тип
 
!Описание
 
|-
 
|ORDER_ID
 
|Целое
 
|ИД созданного заказа
 
|-
 
|NEW_STATE
 
|Целое
 
|Новое состояние заказа
 
|}
 
  
 
Пример:
 
Пример:
Строка 5086: Строка 5213:
 
Запрос:
 
Запрос:
  
POST https://ip:port/tm_tapi/1.0/change_order_state HTTP/1.1  
+
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: 71
+
Content-Length: 25
 +
crew_id=1&plan_shift_id=1
  
order_id=18561&need_state=14&signature=3e8107e0c044e55d983db1fbed82fd8c
 
  
 
Ответ:
 
Ответ:
  
<response>
+
{
   <code>0</code>
+
   "code":0,
   <descr>OK</descr>
+
   "descr":"OK",
  <data>
+
   "data":{}
    <ORDER_ID>18561</ORDER_ID>
+
}
    <NEW_STATE>14</NEW_STATE>
 
   </data>
 
</response>
 
 
</pre>
 
</pre>
 
+
=== Сохранение отзыва клиента ===
==== Запись пути к файлу разговора в базу данных ====
 
 
 
 
Метод: POST
 
Метод: POST
  
Название запроса: create_record_link
+
Название запроса: save_client_feed_back
  
 
Параметры:
 
Параметры:
  
 
{|
 
{|
!Параметр  
+
!Параметр
!Тип  
+
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|RECORD_DATE
+
|phone
|ДДММГГГГччммсс
+
|Строка
|Дата записи
+
|Телефон
 
|-
 
|-
|RECORD_LENGTH
+
|rating
|Целое  
+
|Целое
|Продолжительность записи (в секундах)
+
|Рейтинг (от 1 до 5)
 
|-
 
|-
|CALL_ID
+
|text
|Строка, <= 60 символов
+
|Строка
|ИД звонка (необязателен, если указан PHONE)
+
|Текстовый отзыв
 
|-
 
|-
|PHONE
+
!colspan="3"|Необязательные параметры
|Строка, <= 16 символов
 
|Номер телефона (необязателен, если указан CALL_ID)
 
 
|-
 
|-
|FILE_PATH
+
|order_id
|Строка, <=255 символов
+
|Целое
|Путь к файлу записи
+
|ИД заказа
|-
+
|}
|CALL_TYPE
+
 
|0 или 1
+
Допускается указывать либо параметр rating либо text, либо оба параметра.
|0 — Исходящий, 1 — Входящий
+
 
|-
+
Специальные возвращаемые коды: нет.
|signature
 
|Строка
 
|Поле для проверки секретного ключа
 
|}
 
  
Специальные возвращаемые коды: нет.
+
Возвращаемые данные в случае успешного выполнения запроса: нет.
 
 
Возвращаемые данные в случае успешного выполнения запроса
 
 
 
{|
 
!Параметр
 
!Тип
 
!Описание
 
|-
 
|RECORD_ID
 
|Целое
 
|ИД созданной записи
 
|}
 
  
 
Пример:
 
Пример:
 
 
<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: <...>
  
POST https://ip:port/tm_tapi/1.0/create_record_link HTTP/1.1
+
{
Content-Type: application/x-www-form-urlencoded
+
  "phone":"89123456789",
Content-Length: 185
+
  "rating":4,
 
+
  "text":"test feedback",
RECORD_DATE=20130122180949&RECORD_LENGTH=215&CALL_ID=12345&PHONE=8987564&FILE_PATH=d%3A%5Ctemp%5CTM
+
  "order_id":100
%5Ctrunk%5CSource%5CDevUtils%5CTMAPITest%5C&CALL_TYPE=1&signature=56851c4e8d2d4bb9ba615615f76ad7f7
+
}
 
 
 
Ответ:
 
Ответ:
<response>
+
{
   <code>0</code>
+
   "code":0,
   <descr>OK</descr>
+
   "descr":"OK",
  <data>
+
   "data":{}
    <RECORD_ID>25</RECORD_ID>
+
}
   </data>
 
</response>
 
 
</pre>
 
</pre>
  
==== Создать новый заказ ====
+
== Описание протокола TMTAPI Версия 1.0 ==
  
Метод: POST
+
=== Общее описание протокола ===
  
Название запроса: make_new_order
+
==== Формат запроса ====
 +
 
 +
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
|-
+
 
!colspan="3"|Обязательные параметры
+
order_id=98798&need_state=12&signature=a204c50c7e48f0c6849a87485fe5e171
|-
+
</pre>
|PHONE
+
 
|Строка, <= 16 символов
+
В любом запросе обязательно с другими полями должно передаваться поле signature. В нем передается MD5 хэш, рассчитанный для строки, которая получается сцеплением строки параметров запроса с секретным ключом. Секретный ключ задается в настройках модуля TMAPI в Такси-Мастер.
|Номер телефона
+
 
|-
+
Пример:
|ORDER_STATE_ID
+
 
|Целое
+
<pre>
|ИД состояния заказа
+
Запрос:
|-
+
GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565&fields=PHONE_TYPE
|signature  
+
&signature=ef17ea682d09e452af544a5758dba396 HTTP/1.1
|Строка
+
 
|Поле для проверки секретного ключа
+
Секретный ключ:
|-
+
321
!colspan="3"|Необязательные параметры
+
 
|-
+
Signature = MD5("phone=89058800565&fields=PHONE_TYPE" + "321") = ef17ea682d09e452af544a5758dba396
|CREWGROUPID
+
HTTP/1.1
|Целое
+
</pre>
|ИД группы экипажа
+
 
 +
==== Формат ответа ====
 +
TM API всегда возвращает HTTP код 200 ОК. Результат выполнения запроса содержится в теле ответа в формате XML. Общий вид возвращаемого результата:
 +
 
 +
<pre>
 +
<response>
 +
<code>Числовой код результата</code>
 +
<descr>Строковое описание результата</descr>
 +
<data>Дополнительная информация</data>
 +
</response>
 +
</pre>
 +
 
 +
Существуют общие для всех запросов коды результатов:
 +
{|
 +
! Код
 +
! Описание
 
|-
 
|-
|TARIF_ID
+
|0
|Целое
+
|Успешное выполнение запроса
|ИД тарифа
 
 
|-
 
|-
|DISCOUNTEDSUMM
+
|1
|Дробное
+
|Неизвестная ошибка
|Фиксированная сумма за заказ
 
 
|-
 
|-
|CUSTOMER
+
|2
|Строка, <=80 символов
+
|Неизвестный тип API
|Заказчик
 
 
|-
 
|-
|SOURCE
+
|3
|Строка, <=80 символов
+
|API отключено в настройках модуля TM API в Такси-Мастер
|Адрес подачи
 
 
|-
 
|-
|SOURCE_STREET
+
|4
|Целое
+
|Не совпадает секретный ключ
|ИД улицы подачи
 
 
|-
 
|-
|SOURCE_HOUSE
+
|5
|Строка, <=10 символов
+
|Неподдерживаемая версия API
|Дом подачи
 
 
|-
 
|-
|SOURCE_FLAT
+
|6
|Строка, <=10 символов
+
|Неизвестное название запроса
|Квартира подачи
 
 
|-
 
|-
|SOURCE_POINT
+
|7
|Целое
+
|Неверный тип запроса GET
|ИД пункта подачи
 
 
|-
 
|-
|DESTINATION
+
|8
|Строка, <=80 символов
+
|Не хватает входного параметра (в доп. информации ответа будет название отсутствующего параметра)
|Адрес назначения
 
 
|-
 
|-
|DESTINATION_STREET
+
|9
|Целое
+
|Некорректный входной параметр (в доп. информации ответа будет название некорректного параметра)
|ИД улицы назначения
 
 
|-
 
|-
|DESTINATION_HOUSE
+
|10
|Строка, <=10 символов
+
|Внутренняя ошибка обработки запроса
|Дом назначения
+
|}
|-
+
 
|DESTINATION_FLAT
+
=== Описание запросов ===
|Строка, <=10 символов
+
 
|Квартира назначения
+
==== Запрос информации по номеру телефона ====
 +
Метод: GET
 +
 
 +
Название запроса: get_info_by_phone
 +
 
 +
Параметры:
 +
 
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 
|-
 
|-
|DESTINATION_POINT
+
!colspan="3"|Обязательные параметры
|Целое
 
|ИД пункта назначения
 
 
|-
 
|-
|CREWID
+
|PHONE
|Целое
+
|Строка, <= 16 символов
|ИД экипажа
+
|Номер телефона
 
|-
 
|-
|SUMM
+
|FIELDS
|Дробное
+
|Строка
|Стоимость заказа без учета скидок (наценок)
+
|Список полей, которые необходимо вернуть. Поля перечисляются через символ ''"-"''
 
|-
 
|-
|STARTUSER
+
|signature
|Целое
+
|Строка
|Пользователь, создавший заказ
+
|Поле для проверки секретного ключа.
 +
|}
 +
 
 +
Специальные возвращаемые коды: нет
 +
 
 +
Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields.
 +
 
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 
|-
 
|-
|STARTTIME
+
|PHONE_TYPE
|ГГГГММДДччммсс
+
|Целое
|Дата создания заказа
+
|Тип телефона звонящего
 +
(1 - если звонит водитель; 2 - если звонит физическое лицо; 3 - если звонит юридическое лицо; 4 - если звонит номер из справочника Телефоны; 0 - неизвестный номер)
 
|-
 
|-
|FINISHUSER
+
|PHONE_TO_DIAL
|Целое
+
|Строка, <= 16 символов
|Пользователь, завершивший заказ
+
|Номер телефона для отзвона по заказу
 
|-
 
|-
|FINISHTIME
+
|CREW_ID
|ГГГГММДДччммсс
+
|Целое
|Дата завершения заказа
+
|ИД экипажа
 
|-
 
|-
|SOURCE_ZONE
+
|IS_PRIOR
|Целое
+
|true или false
|Район подачи
+
|Признак предварительного заказа
 
|-
 
|-
|DESTINATION_ZONE
+
|ORDER_CLIENT_ID
 
|Целое
 
|Целое
|Район назначения
+
|ИД клиента из заказа
 
|-
 
|-
|SOURCE_PARKING
+
|DRIVER_PHONE
|Целое
+
|Строка, <= 16 символов
|Стоянка подачи
+
|Номер телефона водителя
 
|-
 
|-
|DESTINATION_PARKING
+
|CREW_SYSTEMSTATE
|Целое
+
|Целое  
|Стоянка назначения
+
|Состояние экипажа
 
|-
 
|-
|SOURCE_TIME
+
|CLIENT_ID
|ГГГГММДДччммсс
+
|Целое
|Дата подачи
+
|ИД клиента
 
|-
 
|-
|SOURCE_COUNTRY
+
|CLIENT_TYPE
|0 или 1 (false или true)
+
|Целое
|Признак междугороднего заказа
+
|Тип клиента
 
|-
 
|-
|IS_PRIOR
+
|CATEGORYID
|0 или 1 (false или true)
+
|Целое
|Признак предварительного заказа
+
|ИД категории телефона
 
|-
 
|-
|PRIZE
+
|PHONE_SYSTEM_CATEGORY
|0 или 1 (false или true)
+
|Целое
|Признак призового заказа
+
|Системное значение категории телефона (0 - обычный, 1 - черный, 2 - белый, 3 - серый)
 
|-
 
|-
|NOTE
+
|ORDER_ID
|Строка, <=80 символов
+
|Целое
|Примечание
+
|ИД заказа
 
|-
 
|-
|BONUSPOINT
+
|DRIVER_ID
|Дробное
+
|Целое
|Бонусные баллы, начисленные водителю за заказ
+
|ИД водителя
 
|-
 
|-
|DISTANCE
+
|ORDER_STATE
|Дробное
+
|Целое
|Километраж по городу (в километрах)
+
|Состояние заказа
 
|-
 
|-
|HOURLY_LEN
+
|DRIVER_REMAINDER
|Целое
+
|Дробное
|Длительность исполнения почасового заказа (в минутах)
+
|Баланс счета водителя
 
|-
 
|-
|HOURLY_START
+
|DISCOUNTEDSUMM
|ГГГГММДДччммсс
+
|Строка
|Дата начала отсчета при почасовом заказе
+
|Сумма заказа с учетом всех скидок
 
|-
 
|-
|HOURLY_PAY
+
|CREW_GROUP_ID
|0 или 1 (false или true)
+
|Целое
|Признак почасового заказа
+
|ИД группы экипажа
 
|-
 
|-
|PHONE_TO_DIAL
+
|FIRST_CREW_GROUP_ID
|Строка, <=16 символов
+
|Целое
|Номер телефона для отзвона по заказу
+
|ИД первой группы экипажа
 
|-
 
|-
|FROMBORDER
+
|CLIENT_BALANCE
|0 или 1 (false или true)
+
|Дробное
|Признак заказа "с бордюра"
+
|Баланс клиента
 
|-
 
|-
|WAITING_START
+
|DRIVER_TIMECOUNT
|ГГГГММДДччммсс
+
|Целое
|Дата начала ожидания заказчика водителем
+
|Время пути водителя до адреса подачи (в минутах)
 
|-
 
|-
|WAITING_LENGTH
+
|SOURCE_TIMECOUNT
|Целое
+
|Целое  
|Общая длина периода ожидания заказчика водителем (в минутах)
+
|Время оставшееся до подачи (в минутах)
 
|-
 
|-
|BACKFREE
+
|SOUND_COLOR
|Целое
+
|Строка
|Признак применения скидки в 50% на обратный путь
+
|Запись с информацией о цвете
 
|-
 
|-
|INPUTTIME
+
|SOUND_MARK
|ГГГГММДДччммсс
+
|Строка
|Дата принятия заказа (от даты создания заказа отличается тем, что может быть задана пользователем)
+
|Запись с информацией о марке автомобиля
 
|-
 
|-
|MONEY_RECEIVE
+
|GOSNUMBER
|0 или 1 (false или true)
+
|Строка
|Подтверждение принятия денег наличными
+
|Государственный номер автомобиля
 
|-
 
|-
|NOTIFY_BEFORE
+
|CAR_COLOR
|Целое
+
|Строка
|Период времени, за который пользователь оповещается о наступлении даты подачи
+
|Цвет автомобиля
 
|-
 
|-
|WANTCREWID
+
|CAR_MARK
|Целое
+
|Строка
|ИД желаемого экипажа
+
|Марка автомобиля
 
|-
 
|-
|DISTANCE_COUNTRY
+
|ORDER_COORDS
|Дробное
+
|Строка
|Километраж за границами города (в километрах)
+
|Координаты места подачи
 +
|-
 +
|CREW_COORDS
 +
|Строка
 +
|Координаты назначенного экипажа
 
|-
 
|-
|DISTANCE_CHECK
+
|MARKET_TYPE
|0 или 1 (false или true)
+
|Целое
|Разрешение ручного ввода километража
+
|Тип биржи заказов (2 — Яндекс, 3 — ЦОЗ).
 
|-
 
|-
|CLIENTID
+
|ORDERS_COUNT
 
|Целое
 
|Целое
|ИД постоянного клиента
+
|Для телефона клиента — количество текущих и предварительных заказов по телефону; для телефона водителя — количество текущих заказов, на которые назначен данный водитель
 
|-
 
|-
|INFRA_STATE
+
|CLIENT_GROUP_ID
 
|Целое
 
|Целое
|Состояние заявки в исходящей кампании колцентра INFRA (1 - заявка передана в исходящую компанию, 2 - отзвон успешно произведен, 3 - занято, 4 - не берут трубку)
+
|ИД группы клиента
 +
|-
 +
|CLIENT_BONUS_BALANCE
 +
|Дробное
 +
|Бонусный баланс клиента
 +
|-
 +
|AD_LIGHTHOUSE
 +
|Строка
 +
|Признак наличия шашек. Пустая строка – номер клиента или водителя без экипажа. 1 – есть шашки, 0 – нет шашек.
 
|-
 
|-
|INFRA_ORDER
+
|CREW_STATE
 
|Целое
 
|Целое
|INFRA-заказ (спец. поле для работы с колцентром компании Инфрател)
+
|Состояние экипажа.
 +
|-
 +
|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
  
{|
+
Ответ:
!Параметр
 
!Тип
 
!Описание
 
|-
 
|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>
 
<response>
Строка 5437: Строка 5599:
 
   <descr>OK</descr>
 
   <descr>OK</descr>
 
   <data>
 
   <data>
     <order_id>27</order_id>
+
     <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>
  
==== Поиск улицы в базе ====
+
==== Запрос информации по ИД заказа ====
Метод: POST
+
 
 +
Метод: GET
  
Название запроса: street_search
+
Название запроса: get_info_by_order_id
  
 
Параметры:
 
Параметры:
Строка 5456: Строка 5624:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|PHONE
+
|ORDER_ID
|Строка, <= 16 символов
 
|Номер телефона
 
|-
 
|CALL_ID
 
 
|Целое  
 
|Целое  
|ИД звонка
+
|ИД заказа
 
|-
 
|-
|VOICE_STREET
+
|FIELDS
|Строка, <= 60 символов
+
|Строка  
|Название улицы или пункта, полученное через преобразование голоса в текст
+
|Список полей, которые необходимо вернуть. Поля перечисляются через символ ''"-"''
 
|-
 
|-
|signature
+
|signature  
|Строка
+
|Строка  
 
|Поле для проверки секретного ключа
 
|Поле для проверки секретного ключа
 
|}
 
|}
Строка 5475: Строка 5639:
 
Специальные возвращаемые коды: нет
 
Специальные возвращаемые коды: нет
  
Возвращаемые данные в случае успешного выполнения запроса:
+
Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields.
  
 
{|
 
{|
Строка 5482: Строка 5646:
 
!Описание
 
!Описание
 
|-
 
|-
|CALL_ID
+
|DRIVER_TIMECOUNT
 +
|Строка, <= 16 символов
 +
|Время до подачи в минутах, указанное водителем
 +
|-
 +
|SOUND_COLOR
 +
|Строка
 +
|Запись с информацией о цвете
 +
|-
 +
|CAR_MARK
 +
|Строка
 +
|Марка автомобиля
 +
|-
 +
|CAR_COLOR
 +
|Строка
 +
|Цвет автомобиля
 +
|-
 +
|GOSNUMBER
 +
|Строка
 +
|Государственный номер автомобиля
 +
|-
 +
|SOUND_MARK
 +
|Строка
 +
|Запись с информацией о марке автомобиля
 +
|-
 +
|CREW_GROUP_ID
 
|Целое  
 
|Целое  
|ИД звонка
+
|ИД группы экипажа
 +
|-
 +
|FIRST_CREW_GROUP_ID
 +
|Целое
 +
|ИД первой группы экипажа
 
|-
 
|-
|PHONE
+
|IS_PRIOR
|Строка, <= 16 символов
+
|true или false
|Номер телефона
+
|Признак предварительного заказа
 
|-
 
|-
|STREET_FOUND
+
|DISCOUNTEDSUMM
|0 или 1 (false или true)
+
|Строка
|Признак того, что улица найдена
+
|Сумма заказа с учетом всех скидок
 
|-
 
|-
|STREET_NAME
+
|DRIVER_PHONE
|Строка, <= 60 символов
+
|Строка, <= 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>
 
Запрос:
 
Запрос:
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
+
GET https://ip:port/tm_tapi/1.0/get_info_by_order_id?order_id=60&fields=DRIVER_SOURCETIME-MARKCOLOR-
ure=9204a53e0f4842bb623c3a5f7683520a
+
GOSNUMBER-IS_PRIOR-MOBILE_PHONE-SOURCE_TIME&signature=fdcd04e570443b56176b83f44748dc23
 +
HTTP/1.1
  
 
Ответ:
 
Ответ:
Строка 5517: Строка 5754:
 
   <descr>OK</descr>
 
   <descr>OK</descr>
 
   <data>
 
   <data>
     <CALL_ID>56</CALL_ID>
+
     <DRIVER_SOURCETIME></DRIVER_SOURCETIME>
     <PHONE>89058770593</PHONE>
+
     <MARK></MARK>
     <FIND_STREET>1</FIND_STREET>
+
     <COLOR></COLOR>
     <API_FIND_STREET>Пушкинская</API_FIND_STREET>
+
     <GOSNUMBER></GOSNUMBER>
 +
    <IS_PRIOR></IS_PRIOR>
 +
    <MOBILE_PHONE></MOBILE_PHONE>
 +
    <SOURCE_TIME>20140929134911</SOURCE_TIME>
 
   </data>
 
   </data>
 
</response>
 
</response>
 
</pre>
 
</pre>
  
==== Смена состояния заказа по результату автодозвона ====
+
==== Смена состояния заказа ====
 
Метод: POST
 
Метод: POST
  
Название запроса: set_request_state
+
Название запроса: change_order_state
  
 
Параметры:
 
Параметры:
Строка 5539: Строка 5779:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|STATE_ID
+
|ORDER_ID  
|Целое
+
|Целое  
|Cостояние заказа до отзвона
 
|-
 
|PHONE_TYPE
 
|0 или 1
 
|Признак, указывающий кому был совершен звонок (0 - водителю, 1 - клиенту)
 
|-
 
|ORDER_ID
 
|Целое
 
 
|ИД заказа
 
|ИД заказа
 
|-
 
|-
|STATE
+
|NEED_STATE
|Целое (2, 3, 4, 5)
+
|Целое  
|Состояние отзвона
+
|Новое состояние заказа
 
|-
 
|-
|signature
+
|signature  
|Строка
+
|Строка  
 
|Поле для проверки секретного ключа
 
|Поле для проверки секретного ключа
 
|}
 
|}
  
Специальные возвращаемые коды: нет
+
Специальные возвращаемые коды:
  
Возвращаемые данные в случае успешного выполнения запроса: нет
+
{|
 +
!Код
 +
!Описание
 +
|-
 +
|100
 +
|Заказ с таким ИД не найден
 +
|-
 +
|101
 +
|Изменение состояния не соответствует необходимым условиям
 +
|}
  
Настройки смены состояний заказа с использованием автодозвона задаются в карточке
+
Возвращаемые данные в случае успешного выполнения запроса:
состояний заказа.
+
 
 +
{|
 +
!Параметр
 +
!Тип
 +
!Описание
 +
|-
 +
|ORDER_ID
 +
|Целое
 +
|ИД созданного заказа
 +
|-
 +
|NEW_STATE
 +
|Целое
 +
|Новое состояние заказа
 +
|}
  
 
Пример:
 
Пример:
Строка 5571: Строка 5825:
 
<pre>
 
<pre>
 
Запрос:
 
Запрос:
POST https://ip:port/tm_tapi/1.0/set_request_state HTTP/1.1
+
 
 +
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
  
state_id=7&phone_type=1&order_id=50&state=4&signature=0eb50db401d3540e038fde68eb260333
+
order_id=18561&need_state=14&signature=3e8107e0c044e55d983db1fbed82fd8c
  
 
Ответ:
 
Ответ:
  
 
<response>
 
<response>
  <code>0</code>
+
  <code>0</code>
  <descr>OK</descr>
+
  <descr>OK</descr>
 +
  <data>
 +
    <ORDER_ID>18561</ORDER_ID>
 +
    <NEW_STATE>14</NEW_STATE>
 +
  </data>
 
</response>
 
</response>
 
</pre>
 
</pre>
  
==== Соединить клиента и водителя ====
+
==== Запись пути к файлу разговора в базу данных ====
 +
 
 
Метод: POST
 
Метод: POST
  
Название запроса: connect_client_and_driver
+
Название запроса: create_record_link
  
 
Параметры:
 
Параметры:
Строка 5599: Строка 5859:
 
!colspan="3"|Обязательные параметры
 
!colspan="3"|Обязательные параметры
 
|-
 
|-
|order_id
+
|RECORD_DATE
|Целое
+
|ДДММГГГГччммсс
|ИД заказа
+
|Дата записи
 +
|-
 +
|RECORD_LENGTH
 +
|Целое  
 +
|Продолжительность записи (в секундах)
 
|-
 
|-
|signature
+
|CALL_ID
|Строка
+
|Строка, <= 60 символов
|Поле для проверки секретного ключа
+
|ИД звонка (необязателен, если указан PHONE)
|}
+
|-
 +
|PHONE
 +
|Строка, <= 16 символов
 +
|Номер телефона (необязателен, если указан CALL_ID)
 +
|-
 +
|FILE_PATH
 +
|Строка, <=255 символов
 +
|Путь к файлу записи
 +
|-
 +
|CALL_TYPE
 +
|0 или 1
 +
|0 — Исходящий, 1 — Входящий
 +
|-
 +
|signature  
 +
|Строка  
 +
|Поле для проверки секретного ключа
 +
|}
 +
 
 +
Специальные возвращаемые коды: нет.
 +
 
 +
Возвращаемые данные в случае успешного выполнения запроса
  
Специальные возвращаемые коды:
 
 
{|
 
{|
!Код
+
!Параметр
 +
!Тип
 
!Описание
 
!Описание
 
|-
 
|-
|100
+
|RECORD_ID
|Не найден заказ с таким ИД
+
|Целое
|-
+
|ИД созданной записи
|102
 
|Не найдена биржа заказа у данного заказа
 
 
|}
 
|}
 
Возвращаемые данные в случае успешного выполнения запроса: нет
 
  
 
Пример:
 
Пример:
Строка 5627: Строка 5907:
 
Запрос:
 
Запрос:
  
POST https://ip:port/tm_tapi/1.0/connect_client_and_driver HTTP/1.1
+
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: 53
+
Content-Length: 185
  
order_id=13&signature=6a4b16da44a495b67eb7af11d51954d4
+
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>102</code>
+
  <code>0</code>
  <descr>Market not found by OrderId</descr>
+
  <descr>OK</descr>
 +
  <data>
 +
    <RECORD_ID>25</RECORD_ID>
 +
  </data>
 
</response>
 
</response>
 
 
</pre>
 
</pre>
  
 +
==== Создать новый заказ ====
  
==== Установить режим «Перерыв» для линий софтфона ====
 
 
Метод: POST
 
Метод: POST
  
Название запроса: set_sip_account_dnd_mode
+
Название запроса: 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
POST https://ip:port/tm_tapi/1.0/set_sip_account_dnd_mode HTTP/1.1
 
 
Content-Type: application/x-www-form-urlencoded
 
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
 
 
Параметры:
 
 
{|
 
!Параметр
 
!Тип
 
!Описание
 
|-
 
!Обязательные параметры
 
|-
 
|crew_code
 
|Строка
 
|Позывной экипажа
 
|}
 
 
 
Специальные возвращаемые коды:
 
 
{|
 
!Код
 
!Описание
 
|-
 
|100
 
|Водитель не найден
 
|}
 
 
Возвращаемые данные в случае успешного выполнения запроса:
 
  
{|
+
signature=6f03bc45d3aa17f7738672180a3ee5de
!Параметр
 
!Тип
 
!Описание
 
|-
 
|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
 
  
 
Ответ:
 
Ответ:
Строка 5767: Строка 6685:
 
<descr>OK</descr>
 
<descr>OK</descr>
 
<data>
 
<data>
<mobile_phone>123456789</mobile_phone>
+
company_name>ООО БИТ-Мастер</company_name>
<home_phone>987654321</home_phone>
+
<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. Создать механизм приема заказов через интернет.
  2. Сделать ваш сайт более информативным: публиковать полезную для клиентов информацию прямо из системы - список ближайших экипажей, предварительный расчет стоимости поездки, мониторинг движения автомобиля такси в процессе выполнения заказа, карты города и контактную информацию.
  3. Расширить возможности своей службы за счет популярного онлайн-сервиса Яндекс.Такси.
Предупреждение!
Все перечисленные функции работают в Такси-Мастер не ниже 2.7.0 от 25.05.2015г. В более низких версиях программы часть функций может не поддерживаться.

Содержание

Параметры TM API

Задать настройки для корректной работы TM API вы сможете в программе Такси-Мастер в меню «Настройки» в одноименной ветке «TM API». Параметры организуют и контролируют работу модуля «Интернет-заказы».

  1. Установите флажок «Template-checkbox-off.png Использовать TM API», чтобы приступить к его использованию.
  2. В поле «Локальный порт» введите номер порта подключения к интернету, на котором работает и будет ожидать запросы о новых заказах TMServer. Рекомендуется оставить номер порта по умолчанию.
  3. Установите флажок «Template-checkbox-off.png Можно использовать данное рабочее место TMServer для распознавания адресов» для того, чтобы конкретно с данного рабочего места происходило распознавание адресов модулем "Интернет-заказы".
  4. Перезапустите Такси-Мастер и TMServer для запуска работы модуля.

Ветка «Открытое API»

В данной ветке регулируется доступ к синхронизации Такси-Мастер со сторонним сервисом (сайтом), с помощью которого клиенты будут создавать интернет-заказы. С примером кода для работы вы можете ознакомиться в данной статье в разделе Общее описание протокола.

  1. Установите флажок «Template-checkbox-off.png Использовать открытое API» для того, чтобы запустить работу по обслуживанию модуля «Интернет-заказы». При установленном флажке сервер модуля «Интернет-заказы» запускается и ожидает запросы о новых заказах.
  2. В поле «Секретный ключ» укажите произвольный номер. В дальнейшем этот номер следует использовать в API-запросах на сайте.
  3. Перезапустите Такси-Мастер и TMServer для запуска работы модуля.

Ветка «API для телефонии»

В данной ветке регулируются настройки API для телефонии, т.е. взаимодействие Такси-Мастер с call-центром через программный интерфейс. С его помощью call-центр может дать команду Такси-Мастер создать заказ или запросить информацию о статусе текущего заказа.

  1. Установите флажок «Template-checkbox-off.png Использовать открытое API для телефонии» для того, чтобы запустить работу по обслуживанию телефонии через API.
  2. В поле «Секретный ключ» укажите номер секретного ключа для работы.
  3. Перезапустите Такси-Мастер и TMServer для запуска работы модуля.

Ветка «Платежные терминалы»

Интересная информация
Ранее для связи платежных систем и Такси-Мастер служила такая утилита, как TMWeb. В данный момент мы отказались от ее использования, а функции были распределены между двумя компонентами системы: TM API и TMServer.

Параметры этой ветки отвечают за работу модуля интеграции с платежными системами.

  1. Установите флажок «Template-checkbox-off.png Включить прием терминальных платежей». Данная функция позволит отображать все платежные операции по приходу средств от водителей через терминалы в базе данных программы.
  2. В поле «Секретный ключ» укажите номер секретного ключа для работы с платежными системами и сверки платежей, который будет выслан вам в письме от менеджера. Секретный ключ - это определенный набор символов, необходимый для формирования подписи при передаче информации о платеже.
  3. В полях «Логин» и «Пароль» введите данные учетной записи на сайте http://term.bitmaster.ru.
  4. Кнопка «Задать всем водителям терминальный аккаунт по их ИД» служит для соединения TM API с сервером Такси-Мастер. В результате соединения записи о терминальных аккаунтах генерируются, заносятся (для тех водителей, у которых они отсутствуют) и обновляются (для тех водителей, у которых уже существуют терминальные аккаунты) в Такси-Мастер.
  5. Перезапустите Такси-Мастер и TMServer для запуска работы модуля.
Интересная информация
Обратите внимание, что для платежных систем также существует открытый и свободно распространяемый API, с помощью которого есть возможность связать Такси-Мастер и платежные системы. Обратитесь в отдел дополнительных услуг, написав на odu@bitmaster.ru, за получением кода для данного компонента системы.

Общее описание протокола

Формат запроса

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>

Пример формы для заказа такси

Download.png
Для скачивания Вы можете воспользоваться ссылкой:
http://files.bitmaster.ru/TM/forms/zakaz_taxi.zip

Приведенная форма является примером, на основе которого можно построить собственную форму для принятия интернет-заказов. Форму можно использовать либо в исходном варианте, либо применяя запросы TM API. Для того, чтобы данная форма функционировала, необходимо открыть файл в любом текстовом редакторе и указать корректные IP-адрес сервера Такси-Мастер, порт TM API и секретный ключ. Далее вам следует загрузить файл на хостинг.

Форма, представленная в примере, будет выглядеть следующим образом:

Картинка
Форма для заказа такси.jpg