Методы по заказам

OfferOrder

Предложение заказа конкретному участнику MOIS.

POST-запрос

https://MOISUrl/OfferOrder?apiKey=ProviderApiKey

Тело запроса (JSON)

{
  "OrderId":1234, // внутренний номер (идентификатор) заказа СервисЗ
  "CustomerPhones":["+79219212121","+79219212122"], // телефоны заказчика
  "CustomerName":"Анатолий Петрович", // имя заказчика
  "OwnerInfo":{"Id":555,"Name":"SuperTaxi","DispatcherPhone":"+74957770077"}, // информация о сервисе-владельце заказа СервисЗ
  "Source":{"Index":0,"Country":"Россия","Locality":"Москва","Street":"Мира проспект","House":"106","PorchNumber":"2","Object":"","FullDescription":"Москва, Мира проспект 106","GeoPoint":{"Latitude":55.7672,"Longitude":37.588073}}, // адрес подачи машины
  "Destinations" // массив адресов в маршруте, структура адреса такая же как у адреса подачи
  "OrderTime":"2018-05-28T14:00", // время и дата подачи машины в формате ISO 8601
  "RouteInfo":{"Distance":5200,"Duration":15}, // информация о маршруте, расстояние в метрах, длительность в минутах
  "RentTime":0, // время аренды машины (если нужна аренда)
  "OrderType":"rush", // тип заказа по срочности подачи машины, rush - чем быстрее, тем лучше, preliminary - строго на указанное время
  "IsCashless":false, // тип оплаты заказа, true - безналичный, false - наличный
  "OrderCost":540, // стоимость заказа
  "OwnerCharge":15, // сбор владельца в процентах (от 0 до 100)
  "FixedCharge":120, // сбор владельца в абсолютном денежном выражении (не должен превышать стоимость заказа)
  "Tariff":"e/m/250/10/20", // описание тарифа (информация о способах описания тарифов приведена в конце документа)
  "DriverIds":[124,836,140], // идентификаторы водителей СарвисаВ, которых СервисЗ выбрал предпочтительными исполнителями для заказа
  "Properties":[{"PropertyName":"Places","PropertyValue":"4"},{"PropertyName":"CarModel","PropertyValue":"Toyota Rav4"}], // свойства заказа
  "Comments":"Спасибо!" // комментарий к заказу
}

Ответ

Ответ на предложение заказа не содержит тела, результат описывается кодом HTTP-ответа.

200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - в запросе не хватает параметров (в URI или теле запроса), значение параметров указано неверно, либо JSON-структура в теле запроса сформирована неправильно.
500 Internal Server Error - возникла внутренняя ошибка сервера.

TakeOrderByDriver

Принятие заказа водителем.

POST-запрос

https://MOISUrl/TakeOrderByDriver?apiKey=ProviderApiKey&orderId=OrderId
Параметр Описание
orderId идентификатор заказа в СервисеЗ

Тело запроса (JSON)

{
  "DriverId":521, // внутренний идентификатор водителя в системе СервисВ
  "DriverName":"Дмитрий Афанасьевич", // имя водителя
  "DriverPhones":"+79251231212", // рабочие телефоны водителя
  "CarNumber":"м123мм77", // госномер автомобиля водителя
  "CarModel":"Toyota Rav4", // марка и модель автомобиля
  "CarColor":"Красный", // цвет автомобиля
  "GroupId":84, // внутренний идентификатор такси-группы водителя в системе СервисВ
  "GroupName":"Fast Taxi", // название такси-группы водителя
  "GroupPhone":"+74991231212" // диспетчерский телефон такси-группы водителя
}

Ответ

Ответ на предложение заказа не содержит тела, результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - в запросе не хватает параметров (в URI или теле запроса), значение параметров указано неверно, либо JSON-структура в теле запроса сформирована неправильно.
404 Not Found - указанный в запросе заказ не найден.
500 Internal Server Error - возникла внутренняя ошибка сервера.

С ответом 200 в body может быть JSON описание

{
  Success:false, //True или False удалось ли взять заказ водителю
  Message:"Водитель не подходит по свойствам" //Если водителю не передаали заказ то тут сообщение о причине
}

ConfirmOrder

Подтверждение взятия со стороны СервисаЗ.

POST-запрос

https://MOISUrl/ConfirmOrder?apiKey=ProviderApiKey

Тело запроса (JSON)

Структура тела запроса аналогична структуре в методе OfferOrder.

Ответ

В ответ строкой возвращается ID заказа в системе СервисВ. Результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - в запросе не хватает параметров (в URI или теле запроса), значение параметров указано неверно, либо JSON-структура в теле запроса сформирована неправильно.
404 Not Found - указанный в запросе заказ не найден.
500 Internal Server Error - возникла внутренняя ошибка сервера.

ConfirmOrderExecution

Подтверждение приступления к выполнению со стороны СервисаВ.

GET-запрос

https://MOISUrl/ConfirmOrderExecution?apiKey=ProviderApiKey&orderId=OrderId
Параметр Описание
orderId идентификатор заказа в СервисеЗ

Тело запроса

Отсутствует.

Ответ

Ответ на предложение заказа не содержит тела, результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - в запросе не хватает параметров (в URI или теле запроса), значение параметров указано неверно, либо JSON-структура в теле запроса сформирована неправильно.
404 Not Found - указанный в запросе заказ не найден.
500 Internal Server Error - возникла внутренняя ошибка сервера.

CancelOrder

Отмена заказа. Отменяться может как предложенный, так и уже принятый к выполнению заказ.

Примечание: отменить заказ может только владелец заказа. Отмена не разрешена исполнителю.

GET-запрос

https://MOISUrl/CancelOrder?apiKey=ProviderApiKey&orderId=OrderId&reason=Reason
Параметр Описание
orderId идентификатор заказа в СервисеЗ
reason причина отмены

Тело запроса

Отсутствует.

Ответ

Ответ на предложение заказа не содержит тела, результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - в запросе не хватает параметров (в URI или теле запроса), значение параметров указано неверно, либо JSON-структура в теле запроса сформирована неправильно.
500 Internal Server Error - возникла внутренняя ошибка сервера.

UpdateOrder

Редактирование заказа. Редактирование заказ следует использовать только для заказа, который уже принят в выполнению на СервисеВ.

POST-запрос

https://MOISUrl/UpdateOrder?apiKey=ProviderApiKey

Тело запроса (JSON)

Структура тела запроса аналогична структуре в методе OfferOrder.

Ответ

В ответ строкой возвращается ID заказа в системе СервисВ. Результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - в запросе не хватает параметров (в URI или теле запроса), значение параметров указано неверно, либо JSON-структура в теле запроса сформирована неправильно.
500 Internal Server Error - возникла внутренняя ошибка сервера.

SetOrderStatus

Обновление статуса заказа

Примечание: отменить заказ может только владелец заказа и соответственно, отправка статуса Cancelled не разрешена исполнителю.

GET-запрос

https://MOISUrl/SetOrderStatus?apiKey=ProviderApiKey&orderId=OrderId&status=Status&extra=Extra&responsibleName
=ResponsibleName&responsibleId=responsibleId
Параметр Описание
orderId идентификатор заказа в СервисеЗ
status устанавливаемый статус заказа
extra в данном поле при завершении заказа передается итоговая стоимость. При перепроводке заказа (повторном завершении) аналогично передается стоимость. В случае, если заказ провален или отменен, в этом параметре передается причина.
responsibleId идентификатор ответственного лица с СервисеВ
responsibleName имя ответственного за установку статуса в СервисеВ

Допустимые статусы

Параметр Описание
WaitTaxi Ожидание выезда такси (для предварительных)
WaitConfirmInWayFromDriver Ожидание подтверждения выезда от водителя по предварительному заказу(между статусом WaitTaxi и InWay)
InWay На пути к заказчику
NearCustomer Рядом с заказчиком
DriverWaitCustomer Водитель ожидает клиента
CustomerNotifiedAboutDriverWait Заказчик оповещен о подаче машины
Execute Заказчик в машине
WaitComplete Заказ ожидает завершения диспетчером (используется для безналичных заказов)
DoneOk Заказ благополучно завершен
DoneFail Заказ провален водителем
TryCancel Заказ поставлен на отмену (используется, если от водителя нужно подтверждение отмены)
Cancelled Заказ отменен
DoneNoClient Неявка клиента

Тело запроса

Отсутствует.

Ответ

Ответ на предложение заказа не содержит тела, результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - в запросе не хватает параметров (в URI или теле запроса), значение параметров указано неверно, либо JSON-структура в теле запроса сформирована неправильно.
404 Not Found - указанный в запросе заказ не найден.
500 Internal Server Error - возникла внутренняя ошибка сервера.

RenewDriver

Замена водителя, исполняющего заказ. В теле запроса передается информация о новом водителе.

POST-запрос

https://MOISUrl/RenewDriver?apiKey=ProviderApiKey&orderId=OrderId
Параметр Описание
orderId идентификатор заказа в СервисеЗ

Тело запроса (JSON)

Структура тела запроса аналогична структуре в методе TakeOrderByDriver

Ответ

Ответ на предложение заказа не содержит тела, результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - в запросе не хватает параметров (в URI или теле запроса), значение параметров указано неверно, либо JSON-структура в теле запроса сформирована неправильно.
404 Not Found - указанный в запросе заказ не найден.
500 Internal Server Error - возникла внутренняя ошибка сервера.

RefuseOrder

Отказ от выполнения взятого заказа.

Примечание: отказываться от заказа исполнитель может только до статуса Клиент в машине, позже отказ не принимается владельцем, исполнителю в данном случае следует присылать статус Заказ провален.

GET-запрос

https://MOISUrl/RefuseOrder?apiKey=ProviderApiKey&orderId=OrderId&reason=Reason
Параметр Описание
orderId идентификатор заказа в СервисеЗ
reason причина отмены

Тело запроса

Отсутствует.

Ответ

Ответ на предложение заказа не содержит тела, результат описывается кодом HTTP-ответа. 200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - в запросе не хватает параметров (в URI или теле запроса), значение параметров указано неверно, либо JSON-структура в теле запроса сформирована неправильно.
404 Not Found - указанный в запросе заказ не найден.
500 Internal Server Error - возникла внутренняя ошибка сервера.

GetOrderInfo

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

GET-запрос

https://MOISUrl/GetOrderInfo?apiKey=ProviderApiKey&orderId=OrderId
Параметр Описание
apiKey ключ провадера
orderId ID заказа на сервере провайдера, у которого запрашивается информация

Тело запроса

Отсутствует.

Ответ (JSON)

{
  "RequestingServerOrderId":123456, //ID заказа на запрашивающем сервере
  "AnsweringServerOrderId":789000,  //ID заказа на отвечающем сервере (совпадает с orderId в параметрах запроса)
  "Driver":
  {
    "Id":856,                       // ID водителя, выполняющего заказ
    "Name":"Веселый Сидор Петрович" // имя водителя, выполняющего заказ
  },
  "ExecutorGroup":
  {
    "Id":59,                        // ID группы, выполняющей заказ
    "Name":"Такси Позитив"          // название группы, выполняющей заказ
  },
  "OrderStatus":"DoneOk",           // текущий статус заказа
  "IsCashless":1,                   // наличный/безналичный
  "OrderCost":150,                  // стоимость заказа
}

Дополнительно результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - некорректный или пустой ключ ProviderApiKey, переданы некорректные параметры или несуществующие координаты.