interso/aisdk-api-order-client

API client aisdk project)

dev-master 2017-09-04 07:45 UTC

This package is not auto-updated.

Last update: 2025-06-08 08:04:02 UTC


README

Aisdk API клиент для заявок

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']);

Методы для клиента

1. Список заказов

$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 - Организация владеющая данным ТС

2. Информация об одном заказе

$order = $client->getOrder(1234)

Возвращает данные одной заявки. Формат аналогичен указанному в методе getOrders.

3. Информация о диагностической карте одного заказа

$dcard = $client->getDcardForOrder(1234);

Возвращает найденную для заявки диагностическую карту в виде ассоциативного массива со следуюшими полями:

order_id - идентификатор заявки

expiration_date - дата до которой выдана диагностическая карта

start_date - дата с которой диагностическая карта выдана

number - номер в ЕАИСТО

url - URL для доступа к PDF файлу с диагностической картой

4. Мета информация об одной заявке

$meta = $client->getMetaForOrder(1234);

Возвращает найденную для заявки мета информацию со следующими полями:

order_id - идентификатор заявки

status - статус заявки

  • new - новая
  • proceed - в процессе
  • complete - завершена
  • canceled - отменена
  • error - ошибка

station_id - идентификатор станции

station - название станции

5. Создание заявки

$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.

6. Обновление заявки

$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)
}