Запросы от Провайдера к 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, для сверки)
}
]