PHP библиотека для работы с сервисом aisdk с помощью REST API
Установка через composer:
composer require interso/aisdk-api-order-client$client = new \Aisdk\Client('http://127.0.0.1:8090/api',new \GuzzleHttp\Client());
$client->auth('login', 'password');или
$client = new \Aisdk\Client('http://127.0.0.1:8090/api',new \GuzzleHttp\Client(), ['token'=>'w340349if903f0weifjqewoifjewo']);$orders = $client->getOrders();или
$orders = $client->getOrders($page=3);Возвращает массив заявок. По умолчанию 1 страницу. Каждая заявка является ассоциативным массивом с ключами.
id - Идентификатор заявки
engine_type - Тип двигателя
- none - Нет
- ice - Бензин
- diesel - Дизель
- pressure_gas - Сжатый газ
- liquefied_gas - Сжиженный газ
run - Пробег (в км)
tires - Используемая марка шин
axle_count - Кол-во осей у транспортного средства
vin - VIN номер транспортного средства
reg_number - Регистрационный номер
vehicle_str - Название модели
vehicle_type - Категория транспортного средства
A, B, C, D, E
vehicle_type2 - Классификация транспортного средства
L, M1, M2, M3, N1, N2, N3, O1, O2, O3, O4
max_weight - Максимально разрешенная масса (кг)
weight - Масса транспортного средства без нагрузки (кг)
prod_year - Год выпуска
document_type - Тип документов на транспортное средство
- pts - ПТС
- license - Свидетельство
document_serial - Серия документа
document_number - Номер документа
document_dt - Дата выдачи документа
document_owner - Кем выдан документ
notes - Примечание к заявке от агента
dt_add - Дата добавления заявки
dt_update - Дата обновления заявки
body_number - Номер кузова
chassis_number - Номер шасси
vehicle_goal - Назначение транспортного средства
- taxi - Такси
- personal - Личная
- none - Нет отметок
- learn - Для учебной езды
- route - Для маршрутных перевозок
- danger - Для опасных грузов
brake_system - Тип тормозной системы
- hydra - Гидравлические
- pneu - Пневматические
- mechanical - Механические
- combined - Комбинированные
owner_fname - Имя предоставившего сведения о ТС
owner_lname - Фамилия предоставившего сведения о ТС
owner_mname - Отчество предоставившего сведения о ТС
organization - Организация владеющая данным ТС
$order = $client->getOrder(1234)Возвращает данные одной заявки. Формат аналогичен указанному в методе getOrders.
$dcard = $client->getDcardForOrder(1234);Возвращает найденную для заявки диагностическую карту в виде ассоциативного массива со следуюшими полями:
order_id - идентификатор заявки
expiration_date - дата до которой выдана диагностическая карта
start_date - дата с которой диагностическая карта выдана
number - номер в ЕАИСТО
url - URL для доступа к PDF файлу с диагностической картой
$meta = $client->getMetaForOrder(1234);Возвращает найденную для заявки мета информацию со следующими полями:
order_id - идентификатор заявки
status - статус заявки
- new - новая
- proceed - в процессе
- complete - завершена
- canceled - отменена
- error - ошибка
station_id - идентификатор станции
station - название станции
$client->createOrder($data);В параметре data передать массив полей для создания заявки. Принимаются следующие поля:
engine_type - Тип двигателя
- none - Нет
- ice - Бензин
- diesel - Дизель
- pressure_gas - Сжатый газ
- liquefied_gas - Сжиженный газ
run - Пробег (в км)
tires - Используемая марка шин
axle_count - Кол-во осей у транспортного средства
vin - VIN номер транспортного средства
reg_number - Регистрационный номер
vehicle_str - Название модели
vehicle_type - Категория транспортного средства
A, B, C, D, E
vehicle_type2 - Классификация транспортного средства
L, M1, M2, M3, N1, N2, N3, O1, O2, O3, O4
max_weight - Максимально разрешенная масса (кг)
weight - Масса транспортного средства без нагрузки (кг)
prod_year - Год выпуска
document_type - Тип документов на транспортное средство
- pts - ПТС
- license - Свидетельство
document_serial - Серия документа
document_number - Номер документа
document_dt - Дата выдачи документа
document_owner - Кем выдан документ
notes - Примечание к заявке от агента
body_number - Номер кузова
chassis_number - Номер шасси
vehicle_goal - Назначение транспортного средства
- taxi - Такси
- personal - Личная
- none - Нет отметок
- learn - Для учебной езды
- route - Для маршрутных перевозок
- danger - Для опасных грузов
brake_system - Тип тормозной системы
- hydra - Гидравлические
- pneu - Пневматические
- mechanical - Механические
- combined - Комбинированные
owner_fname - Имя предоставившего сведения о ТС
owner_lname - Фамилия предоставившего сведения о ТС
owner_mname - Отчество предоставившего сведения о ТС
organization - Организация владеющая данным ТС
В качестве ответа приходит массив вида:
$result = [
'success' => ???,
'data' = [],
];Значение ключа success сообщает об успешности операции и принимает значение true/false. Если значение success = false, то ключ data содержит массив ошибок. В массиве ошибок ключом является имя поля, а значением список ошибок в нем. Исключением является ошибка с ключом globalError. Она не относится к одному полю, а связана со всем заказом целиком. Поле vehicle_type2 автоматически вычисляется и требуется его передавать, только когда vehicle_type = B.
$client->updateOrder($id, $data);Метод работает аналогично созданию заявки. Т.е. $id указывает какую заявку обновляем, а доступные значения для $data, а так-же формат ответа, такой-же как и при создании заявки.
$result = $client->createOrder();
print_r($result);В ответе будет
(
[success] =>
[errors] => Array
(
[prod_year] => Array
(
[0] => Необходимо заполнить «Год выпуска».
)
[owner_fname] => Array
(
[0] => Необходимо заполнить «Имя».
)
[owner_lname] => Array
(
[0] => Необходимо заполнить «Фамилия».
)
[owner_mname] => Array
(
[0] => Необходимо заполнить «Отчество».
)
[vehicle_str] => Array
(
[0] => Необходимо заполнить «Модель ТС».
)
[vehicle_goal] => Array
(
[0] => Необходимо заполнить «Назначение».
)
[engine_type] => Array
(
[0] => Необходимо заполнить «Тип двигателя».
)
[brake_system] => Array
(
[0] => Необходимо заполнить «Тормоза».
)
[tires] => Array
(
[0] => Необходимо заполнить «Марка шин».
)
[run] => Array
(
[0] => Необходимо заполнить «Пробег (км)».
)
[axle_count] => Array
(
[0] => Необходимо заполнить «Кол-во осей».
)
[weight] => Array
(
[0] => Необходимо заполнить «Масса без нагрузки».
)
[max_weight] => Array
(
[0] => Необходимо заполнить «Максимальная масса».
)
[document_type] => Array
(
[0] => Необходимо заполнить «Тип документа».
)
[document_serial] => Array
(
[0] => Необходимо заполнить «Серия документа».
)
[document_number] => Array
(
[0] => Необходимо заполнить «Номер документа».
)
[document_dt] => Array
(
[0] => Необходимо заполнить «Дата выдачи».
)
[document_owner] => Array
(
[0] => Необходимо заполнить «Кем выдано».
)
[vehicle_type] => Array
(
[0] => Необходимо заполнить «Категория ТС».
)
)
)
$data = array (
'engine_type' => 'ice',
'run' => 11000,
'tires' => 'Cordiant',
'axle_count' => '2',
'vin' => 'XTA21144000372068',
'reg_number' => 'P300TO98',
'vehicle_str' => 'ВАЗ-21140',
'max_weight' => '1520',
'weight' => '1107',
'prod_year' => '2011',
'document_type' => 'license',
'document_serial' => '7913',
'document_number' => '401786',
'document_dt' => '03.05.2011',
'document_owner' => 'МРЭО-1',
'notes' => 'Проверка работы API',
'body_number' => '',
'chassis_number' => '',
'vehicle_goal' => 'personal',
'brake_system' => 'hydra',
'owner_fname' => 'Виктор',
'owner_lname' => 'Смирнов',
'owner_mname' => 'Афанасьевич',
'organization' => '',
'vehicle_type' => 'B',
'vehicle_type2' => 'M1',
);
$result = $client->createOrder($data);
print_r($result);В ответе будет
array(2) {
["success"]=>
bool(true)
["id"]=>
int(41514)
}