Запросы от Провайдера к POIS

SendMoisUrl

Отправка Провайдером своего URL для MOIS, с указанием сервера, если необходимо.

POST-запрос

https://POISUrl/SendMoisUrl?apiKey=ProviderApiKey&serverId=ServerId&url=newUrl
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
ServerId ID сервера, если у провайдера несколько серверов. Если нет – 0
newUrl URL, куда другим Провайдерам следует обращаться для обмена MOIS-запросами с данным Провайдером

Тело запроса:

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

Ответ

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

GetProperties

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

GET-запрос

https://POISUrl/GetProperties?apiKey=ProviderApiKey&language=ru
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
ru локализация языка для отображения свойств

Ответ

Ответ от POIS - JSON с массивом свойств и допустимых значений вида:

[
  {
    "Name":"Places", // имя свойства - ключ, по которому это свойство будет опознаваться при передаче в методах
    "Description":"Количество мест", //  локализованное название свойства
    "Type":"int", // тип свойства, допустимые варианты: int - числовое, string - строковое, bool - логическое
    "AllowedValues":["4","5","7"] //  допустимые значения свойства
  }
]

SendDriverProperties

Отправка на POIS информации по свойствам водителя (при изменении свойств).

POST-запрос

https://POISUrl/SendDriverProperties?apiKey=ProviderApiKey&driverId=DriverId&serverId=ServerId
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
DriverId ID водителя
ServerId ID сервера, если у провайдера несколько серверов. Если нет – 0

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

[
  {
    "PropertyName":"Places","PropertyValue":"4"
  },
  {
    "PropertyName":"CarModel","PropertyValue":"Toyota Rav4"
  }
] // массив свойств автомобиля

Ответ

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

SendDriverInfo

Отправка на POIS текущей информации по водителю (при изменении координаты или статуса).

POST-запрос

https://POISUrl/SendDriverInfo?apiKey=ProviderApiKey

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

{
  "DriverId":1, // Id водителя
  "ServerId":25, // Id сервера, если у провайдера несколько серверов. Если нет – 0
  "Free":true, // свободен ли водитель (true – свободен, false – занят)
  "Position":{"Latitude":55.7672,"Longitude":37.588073} // координата текущего местонахождения водителя
}

Ответ

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

SendDriverInfos

Отправка на POIS текущей информации по водителям(при изменении координаты или статуса).

POST-запрос

https://POISUrl/SendDriverInfos?apiKey=ProviderApiKey

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

{[{
  "DriverId":1, // Id водителя
  "ServerId":25, // Id сервера, если у провайдера несколько серверов. Если нет – 0
  "Free":true, // свободен ли водитель (true – свободен, false – занят)
  "Position":{"Latitude":55.7672,"Longitude":37.588073} // координата текущего местонахождения водителя
},
{
  "DriverId":2, // Id водителя
  "ServerId":25, // Id сервера, если у провайдера несколько серверов. Если нет – 0
  "Free":true, // свободен ли водитель (true – свободен, false – занят)
  "Position":{"Latitude":55.7672,"Longitude":37.588073} // координата текущего местонахождения водителя
}]}

Ответ

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

GetDrivers

Запрос Провайдером указанного количества подходящих водителей с указанными свойствами, в заданном радиусе. Также можно передавать несколько фильтров.

POST-запрос

https://POISUrl/GetDrivers?apiKey=ProviderApiKey&serverId=ServerId
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
ServerId ID сервера, если у провайдера несколько серверов. Если нет – 0

Два фильтра свойств применяются по или.

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

{
  "Coordinate":{"Latitude":55.8028,"Longitude":37.6369}, // координаты точки, вокруг которой запрашиваются водители
  "Properties":null, // массив требуемых свойств автомобиля (устарело)
  "OrderId":"123456", // номер заказа
  "PropertiesFilter":[
    {
      "Properties":[
        {"PropertyName":"Places","PropertyValue":"4"},
        {"PropertyName":"YearOfManufacture","PropertyValue":"2018"}]
    },
    {
      "Properties":[
        {"PropertyName":"Places","PropertyValue":"4"},
        {"PropertyName":"YearOfManufacture","PropertyValue":"2016"},
        {"PropertyName":"CarModel","PropertyValue":"Mercedes, Hyundai"}]
    }], // массив требуемых свойств автомобиля
  "Radius":3.5, // радиус, в котором требуются свободные водители. Максимально допустимо 4 км
  "AllDrivers":0 // Не вовзвращать своих собственных водителей, флагом 0/1
  "MaxCount":100 // максимальное возвращаемое количество водителей. Максимально допустимо - 100
}

Ответ

Ответ от POIS - JSON вида (водители сгруппированы в массив по провайдерам)

[
  {
    "ProviderId":2, // ID провайдера
    "ProviderName":"Такси СуперСервис", // Название провайдера
    "Drivers":[{"ServerId":71,"DriverId":1,"Coordinate": {"Latitude":54.7265642,"Longitude":20.525276}},{"ServerId":71,"DriverId":2,"Coordinate": {"Latitude":54.7265642,"Longitude":20.525276}}] // список ID водителей, с указанием сервера (сервер необязателен, если у провайдера он один)
  },
  {
    "ProviderId":3,
    "ProviderName":"Какой-то провайдер3",
    "Drivers": [ {"ServerId":1,"DriverId":78,"Coordinate": {"Latitude":54.7265642,"Longitude":20.525276}},{"ServerId":2,"DriverId":95,"Coordinate": {"Latitude":54.7265642,"Longitude":20.525276}}]
  }
]

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

GetMoisData

Запрос Провайдером информации по MOIS, с указанием своего сервера (если необходимо), для другого Провайдера2 и его сервера (куда обращаться к Провайдеру2 и его серверу для работы по MOIS).

GET-запрос

https://POISUrl/GetMoisData?apiKey=ProviderApiKey&serverId=ServerId&providerIdFor=ProviderIdFor&serverIdFor=ServerIdFor
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
ServerId ID сервера запрашивающего провайдера
ProviderIdFor ID провайдера, по которому требуется информация
ServerIdFor ID сервера, по которому требуется информация

Ответ

Ответ от POIS - JSON вида

{
  "ProviderId":2, // ID провайдера для которого запрашивается ключ
  "ProviderName":"Такси СуперСервис", // имя провайдера для которого запрашивается ключ
  "ServerId":71, // ID сервера провайдера (может отсутствовать, либо 0)
  "ProviderMoisUrl":"http://localhost:9010", // MOIS-Url для связи с указанным в параметрах Провайдером и сервером
  "YourMoisApiKeyForProvider":"3591098164444b12b13163b8913de258", // ключ, с которым следует обращаться к указанному Провайдеру и серверу
  "ProviderMoisApiKeyForYou":"d45e37706bbb4e64905c501aad58f727" // ключ, с которым к запрашивающему Провайдеру будет обращаться указанные в запросе Провайдер с указанного сервера
}

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

GetMoisDataByKey

Запрос Провайдером информации по MOIS, с указанием ключа другого Провайдера2 (куда обращаться к Провайдеру2 и его серверу для работы по MOIS).

GET-запрос

https://POISUrl/GetMoisDataByKey?apiKey=ProviderApiKey&serverId=ServerId&moisKey=MoisKey
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
ServerId ID сервера запрашивающего провайдера
MoisKey ключ MOIS провайдера, по которому нужна информация

Ответ

Ответ от POIS - JSON вида

{
  "ProviderId":2, // ID провайдера для которого запрашивается ключ
  "ProviderName":"Такси СуперСервис", // имя провайдера для которого запрашивается ключ
  "ServerId":71, // ID сервера провайдера (может отсутствовать, либо 0)
  "ProviderMoisUrl":"http://localhost:9010", // MOIS-Url для связи с указанным в параметрах Провайдером и сервером
  "YourMoisApiKeyForProvider":"3591098164444b12b13163b8913de258", // ключ, с которым следует обращаться к указанному Провайдеру и серверу
  "ProviderMoisApiKeyForYou":"d45e37706bbb4e64905c501aad58f727" // ключ, с которым к запрашивающему Провайдеру будет обращаться указанные в запросе Провайдер с указанного сервера
}

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

GetProviderBalanceHistory

Запрос Провайдером истории изменения баланса провайдера за период, не позднее месяца назад.

GET-запрос

https://POISUrl/GetProviderBalanceHistory?apiKey=ProviderApiKey
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером

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

{
   "TimeFrom":"2018-05-01T00:00", // дата-время в формате ISO 8601"
   "TimeTo":"2018-05-31T23:59", // дата-время в формате ISO 8601"
}

Ответ -JSON вида

[
  {
    "ServerId":1, //id сервера SeDi
    "SediOrderId":"25757", //id заказа SeDi
    "IsCashless":0, //наличный - 0, безналичный - 1
    "ProviderToSedi":0, //направление заказа(1 - от Провадера в СеДи, 0 - от СеДи к Провайдеру)
    "OrderCost":250, //стоимость заказа
    "Sum":-25, //сумма отчисления провайдеру(с минусом - Провайдер платит СеДи, с плюсом - СеДи платит Провайдеру)
    "Percent":10 //процент от заказа(Sum = Percent от OrderCost, для сверки)
  },
  {
    "ServerId":2, //id сервера SeDi
    "SediOrderId":"25750", //id заказа SeDi
    "IsCashless":0, //наличный - 0, безналичный - 1
    "ProviderToSedi":0, //направление заказа(1 - от Провадера в СеДи, 0 - от СеДи к Провайдеру)
    "OrderCost":200, //стоимость заказа
    "Sum":-20, //сумма отчисления провайдеру(с минусом - Провайдер платит СеДи, с плюсом - СеДи платит Провайдеру)
    "Percent":10 //процент от заказа(Sum = Percent от OrderCost, для сверки)
  },
  {
    "ServerId":2, //id сервера SeDi
    "SediOrderId":"25850", //id заказа SeDi
    "IsCashless":0, //наличный - 0, безналичный - 1
    "ProviderToSedi":1, //направление заказа(1 - от Провадера в СеДи, 0 - от СеДи к Провайдеру)
    "OrderCost":300, //стоимость заказа
    "Sum":30, //сумма отчисления провайдеру(с минусом - Провайдер платит СеДи, с плюсом - СеДи платит Провайдеру)
    "Percent":10 //процент от заказа(Sum = Percent от OrderCost, для сверки)
  }
]