API контрактов
В описании этой документации https://adm.pilot-gps.africa/ используется в качестве базового URL-адреса, вы можете использовать любой другой URL-адрес администратора.
Аутентификация
API использует токен для аутентификации.
Чтобы аутентифицировать запросы, включите токен в Authorization заголовок в качестве токена-носителя.
Для авторизации используются логин и пароль, которые вы используете для админки.
Заголовок
Authorization: Bearer <your_token>
|
Пример заголовка авторизации curl
curl --location --request POST 'https://adm.pilot-gps.africa/backend/app/contracts.php' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_TOKEN' \
|
Конечные точки API
POST /contracts.php
Эта конечная точка позволяет вам управлять контрактами, выполняя различные операции, такие как остановка, запуск, обновление, аутентификация и создание токенов.
Параметры запроса.
Параметр
|
Тип
|
Required
|
Описание
|
car_group_charged
|
string
|
Optional
|
Числовой идентификатор арендуемого автомобиля
|
cid
|
string
|
Optional
|
Числовой идентификатор договора аренды.
|
string
|
Optional
|
Адрес водителя, арендующего транспортное средство.
| |
string
|
Optional
|
Дата рождения водителя, арендующего транспортное средство.
| |
string
|
Optional
|
Страна водителя, арендующего транспортное средство.
| |
string
|
Optional
|
Адрес электронной почты водителя, арендующего автомобиль.
| |
string
|
Optional
|
Номер водительского удостоверения.
| |
string
|
Optional
|
Дата истечения срока действия водительских прав.
| |
string
|
Required
|
Имя водителя, арендующего транспортное средство.
| |
string
|
Optional
|
Номер паспорта водителя, арендующего транспортное средство.
| |
string
|
Required
|
Номер телефона водителя, арендующего автомобиль.
| |
int
|
Optional
|
Рейтинг водителя, арендующего автомобиль.
| |
string
|
Optional
|
Пол водителя, арендующего транспортное средство (м — мужчина, ж — женщина).
| |
end_location
|
object
|
Required
|
Место, где закончилась аренда. Объект с широтой, долготой или адресной строкой.
|
mileage_limit
|
int
|
Optional
|
Лимит пробега по договору аренды.
|
mva
|
int
|
Required
|
Числовой идентификатор арендуемого транспортного средства.
|
plate_number
|
int
|
Required
|
Номерной знак транспортного средства.
|
ra
|
int
|
Required
|
Числовой идентификатор договора аренды.
|
rate_code
|
string
|
Optional
|
Код ставки по договору аренды.
|
start_location
|
object
|
Required
|
Место, где началась аренда. Объект с широтой, долготой или адресной строкой
|
te_expected
|
int
|
Required
|
Ожидаемое время окончания аренды в формате временной метки Unix.
|
te_real
|
int
|
Optional
|
Фактическое время окончания аренды в формате временной метки Unix.
|
ts_expected
|
int
|
Required
|
Ожидаемое время начала аренды в формате временной метки Unix.
|
ts_real
|
int
|
Optional
|
Фактическое время начала аренды в формате временной метки Unix.
|
Запрос параметров cmd.
Код
|
Описание
|
generate_token
|
Сгенерировать токен для заголовка авторизации в запросе
|
начинать
|
Начать аренду автомобиля
|
обновлять
|
Обновить арендованный автомобиль
|
останавливаться
|
Остановить аренду автомобиля
|
Ответ будет содержать следующие поля:
Поле
|
Тип
|
Описание
|
код
|
integer
|
Код ответа
|
odo
|
string
|
Значение одометра
|
сообщение
|
string
|
Сообщение
|
Коды ответов:
1
|
Автомобиль не найден
|
2
|
Нечего обновлять
|
3
|
Договор аренды не найден
|
4
|
Ошибка аутентификации
|
5
|
Неизвестная ошибка
|
6
|
Нет прав
|
7
|
Модуль контракта не активен
|
8
|
Этот номер Ra использовал другую учетную запись
|
9
|
Автомобиль в аренде другой аккаунт
|
10
|
Автомобиль не в аренде
|
11
|
Неверный запрос
|
12
|
Неверный параметр местоположения
|
13
|
Этот RA используется в другом агенте
|
14
|
Сдал паспорт, но не передал имя
|
15
|
Сдал имя, но не прошел паспорт
|
16
|
Драйвер не найден
|
17
|
Другой водитель
|
18
|
Не найден контракт с номером RA
|
19
|
Этот контракт уже закончился
|
20
|
Автомобиль уже арендован
|
21
|
Другой автомобиль
|
Пример ответа JSON.
{
"code": 2,
"odo": "1208607",
"message": "Nothing to update"
}
Ошибки.
В случае ошибок API вернет 500 код состояния вместе с сообщением JSON, содержащим строковое описание ошибки.
Здесь вы можете просмотреть API через файл swagger.
В качестве интерфейса этот файл swager можно запустить например здесь:
https://editor.swagger.io/?_ga=2.32283837.2078627632.1681127699-1612985961.1680523574
Авторизация.
Для авторизации нам необходимо сгенерировать токен, чтобы использовать его в дальнейшем в заголовке запроса.
Подготовьте имя пользователя и пароль, которые вы используете для входа в панель администратора.
Пример авторизации.
curl --location --request GET 'https://adm.pilot-gps.africa/backend/app/contracts.php' \
--header 'Content-Type: application/json' \
--data-raw '{
"cmd": "generate_token",
"login": "YOUR LOGIN FOR ADMIN PANEL",
"password": "YOUR PASSWORD FOR ADMIN PANEL"
}'
Ответ:
{
"code": 0,
"odo": "0",
"message": "007898667a1b5711682399ea38a84f61"
}
В ответе на интересующую вас строку под ключом «сообщение» используйте эту строку как заголовок для последующих запросов.
Начать аренду.
Запрос:
curl --location --request POST 'https://adm.pilot-gps.africa/backend/app/contracts.php' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer 0adc8ab35b7fc549155d28a872b2463f' \
--header 'Cookie: PHPSESSID=ksv22b2961qr3t5kpjuio2p6jh' \
--data-raw '{
"cmd": "start", // required
"mva": 111, // required
"ra": 67890, // required
"plate_number": "plateNumber", // required
"driver_name": "John Doe", // required
"driver_passport": "ABC123", // optional
"driver_phone": "123-456-7890", // required
"driver_address": "123 Main St", // optional
"driver_license": "XYZ789", // optional
"driver_license_exp": "2024-12-31", // optional
"driver_email": "johndoe@example.com", // optional
"driver_birth_date": "1985-01-01", // optional
"driver_sex": "m", // optional
"driver_country": "USA", // optional
"driver_rating": 4, // optional
"ts_real": 1644924000, // optional
"ts_expected": 1644927600, // required
"te_expected": 1644981600, // required
"start_location": { // optional
"lat": 40.712776,
"lon": -74.005974
},
"cid": "C12345", // optional
"rate_code": "R123", // optional
"car_group_charged": "Economy", // required
"checkout_branch": "ABC123", // optional
"mileage_limit": 1000 // optional
}'
Ответ.
{
"code": 0,
"odo": "1233",
"message": "Success"
}
Обновить аренду.
curl --location --request POST 'https://adm.pilot-gps.africa/backend/app/contracts.php' \
--header 'Authorization: Bearer 0adc8ab35b7fc549155d28a872b2463f' \
--header 'Content-Type: application/json' \
--header 'Cookie: PHPSESSID=ksv22b2961qr3t5kpjuio2p6jh' \
--data-raw '{
"cmd": "update", // required
"mva": 111, // optional
"ra": 67890, // required
"plate_number": "plateNumber", // required
"driver_name": "John Doe", // optional
"driver_passport": "ABC123", // optional
"driver_phone": "123-456-7890", // optional
"driver_address": "123 Main St", // optional
"driver_license": "XYZ789", // optional
"driver_license_exp": "2024-12-31", // optional
"driver_email": "johndoe@example.com", // optional
"driver_birth_date": "1985-01-01", // optional
"driver_sex": "m", // optional
"driver_country": "USA", // optional
"driver_rating": 2, // optional
"ts_real": 1644924000, // optional
"ts_expected": 1644927600, // optional
"te_expected": 1644981600, // optional
"start_location": { // optional
"lat": 40.712776,
"lon": -74.005974
},
"cid": "C123456", // optional
"rate_code": "R123", // optional
"car_group_charged": "Economy", // optional
"checkout_branch": "ABC123", // optional
"mileage_limit": 2000 // optional
}'
Отчет - Аренда обновления.
{
"code": 0,
"odo": "1208607",
"message": "Success"
}
Остановить аренду.
Запрос:
curl --location --request POST 'https://adm.pilot-gps.africa/backend/app/contracts.php' \
--header 'Authorization: Bearer 0adc8ab35b7fc549155d28a872b2463f' \
--header 'Content-Type: application/json' \
--header 'Cookie: PHPSESSID=ksv22b2961qr3t5kpjuio2p6jh' \
--data-raw '{
"cmd": "stop", // required
"ra": 67890, // required
"driver_rating": 4, // optional
"end_location": { // optional
"address": "Ilino 2c"
}
}'
Ответ - Остановить ответ об аренде.
{
"code": 0,
"odo": "1208607",
"message": "Success"
}