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
ПОСТ /contracts.php
Эта конечная точка позволяет вам управлять контрактами, выполняя различные операции, такие как остановка, запуск, обновление, аутентификация и создание токенов.
Параметры запроса.
Параметр
|
Тип
|
Необходимый
|
Описание
|
Сид
|
int
|
Required
|
Числовой идентификатор арендуемого автомобиля.
|
Пробег_лимит
|
int
|
Required
|
Числовой идентификатор договора аренды.
|
номерной знак
|
int
|
Required
|
Номер автомобиля.
|
string
|
Required
|
Имя водителя, арендующего транспортное средство.
| |
string
|
Optional
|
Номер паспорта водителя, арендующего транспортное средство.
| |
string
|
Required
|
Телефон водителя, арендующего транспортное средство.
| |
string
|
Optional
|
Адрес водителя, арендующего транспортное средство.
| |
string
|
Optional
|
Номер водительского удостоверения.
| |
string
|
Optional
|
Срок действия водительского удостоверения.
| |
string
|
Optional
|
Адрес электронной почты водителя, арендующего транспортное средство.
| |
string
|
Optional
|
Дата рождения водителя, арендующего транспортное средство.
| |
string
|
Optional
|
Пол водителя, арендующего транспортное средство (м — мужчина, ж — женщина).
| |
string
|
Optional
|
Страна водителя, арендующего транспортное средство.
| |
int
|
Optional
|
Рейтинг водителя, арендующего транспортное средство.
| |
ts_real
|
int
|
Optional
|
Фактическое время начала проката в формате временной метки Unix.
|
настоящий_чай
|
int
|
Optional
|
Фактическое время окончания аренды в формате временной метки Unix.
|
ts_expected
|
int
|
Required
|
Ожидаемое время начала проката в формате временной метки Unix.
|
te_expected
|
int
|
Required
|
Ожидаемое время окончания аренды в формате метки времени Unix.
|
start_location
|
object
|
Required
|
Место, где началась аренда. Объект с широтой, долготой или строкой адреса. Уточняйте в отделении.
|
end_location
|
object
|
Required
|
Место, где закончилась аренда. Объект с широтой, долготой или строкой адреса. Проверить ветку
|
Сид
|
string
|
Optional
|
Идентификатор клиента водителя, арендующего транспортное средство.
|
rate_code
|
string
|
Optional
|
Код тарифа для договора аренды.
|
car_group_charged
|
string
|
Optional
|
Группа автомобилей взимала плату за аренду.
|
пробег_лимит
|
int
|
Optional
|
Ограничение пробега по договору аренды.
|
Запрос параметров 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, содержащим строковое описание ошибки.
https://adm.pilot-gps.africa/resources/swagger-contracts.yml Здесь вы можете просмотреть 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"
}