Last updated

Жизненный цикл ваучера

Обзор

Данное руководство описывает полный жизненный цикл ваучера в системе — от создания до закрытия, включая процессы привязки и отвязки устройств, а также особенности биллинга.

Общая схема жизненного цикла ваучера

Жизненный цикл ваучера проходит через следующие основные этапы:

Создан → Привязан к устройству (Активирован) → [Эксплуатация] → Закрыт

В процессе эксплуатации можно:

  • Отвязать текущее устройство.
  • Привязать новое устройство.
  • Заменить транспортное средство.

Статусы ваучера

Ваучер может находиться в одном из статусов, отраженных в параметре VoucherStatusCycle:

СтатусЗначениеОписание
0Ожидает привязкиВаучер создан, но устройство еще не привязано
1Ожидает активацииУстройство привязано, система ожидает подтверждения
2АктивированВаучер полностью активирован и функционирует
3Ошибка активацииВозникла ошибка при активации
4Замена транспортного средстваПроисходит процесс замены ТС
5Ошибка замены транспортного средстваВозникла ошибка при замене ТС
6Ожидает деактивацииЗапрошена деактивация ваучера, новые данные перестают собираться, но собранные данные продолжают быть доступны для просмотра и хранятся в системе
7ДеактивированВаучер полностью деактивирован
8Ошибка деактивацииВозникла ошибка при деактивации

Дополнительно ваучер имеет статус договора (ClientContractStatus):

  • 0 - закрыт
  • 1 - открыт

Шаг 1: Создание ваучера

Первым шагом в жизненном цикле является создание ваучера через метод PostVoucher. Подробная инструкция по созданию ваучера для корпоративного транспортного средства доступна в соответствующем руководстве.

После создания ваучер получает статус 0 (Ожидает привязки), а также идентификатор id, который используется для работы с сущностью ваучера.

Шаг 2: Привязка устройства и активация ваучера

Для активации ваучера необходимо привязать к нему устройство. Это двухэтапный процесс, включающий поиск устройства из общего пула и его привязку.

2.1 Поиск устройства по IMEI

Сначала необходимо найти устройство по его IMEI-номеру с помощью метода GetDeviceListImei:

curl -X GET "https://dev.api.exodrive.ai/api/v2/Device/list/imei?search=351579111983232" \
-H "Authorization: Bearer YOUR_TOKEN"
  • Пример ответа:
{
  "total": 1,
  "items": [
    {
      "id": 863,
      "title": "351579111983232"
    }
  ]
}

Этот запрос вернет список устройств, соответствующих поисковому запросу, с их идентификаторами.

2.2 Получение подробной информации об устройстве

После получения идентификатора устройства, необходимо запросить его детальную информацию с помощью метода GetDeviceById:

curl -X GET "https://dev.api.exodrive.ai/api/v2/Device/863" \
-H "Authorization: Bearer YOUR_TOKEN"
  • Пример ответа:
{
  "id": 863,
  "imei": "351579111983232",
  "serialNumber": "SNXFE32197",
  "terminalOctoStatus": 2
}

В ответе будет содержаться полная информация об устройстве, включая серийный номер.

Только устройства со статусом 2 (готово к использованию) будут доступны для привязки к ваучеру и будут возвращаться в списке доступных устройств из предыдущего метода. Устройства с другими статусами, например 4 (уже используется), не будут отображаться в списке доступных устройств, что исключает возможные проблемы при привязке.

2.3 Привязка устройства к ваучеру

После получения всех необходимых данных об устройстве, можно приступать к его привязке с использованием метода PostVoucherIdDeviceAttach:

curl -X POST "https://dev.api.exodrive.ai/api/v2/Voucher/4217/device/attach" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
  "voucherId": 4217,
  "imei": "351579111983232",
  "deviceSerialNumber": "SNXFE32197"
}'
  • Пример ответа:
{
  "voucherId": 4217
}

Важно указать оба параметра - IMEI и серийный номер. Это защитный механизм, предотвращающий случайную привязку чужого устройства, так как требуется знание обоих параметров.

После успешной привязки устройства ваучер автоматически активируется, если это первая привязка. При этом:

  1. Статус ваучера меняется на 2 (Активирован).
  2. Ваучеру присваивается уникальный номер (voucherNumber).
  3. Создается служебный идентификатор voucherObjectId, который используется для работы с непосредственно собранными данными.
  4. Устанавливается дата активации (activationDate).
  5. Начинается сбор данных с устройства.
  6. Начинается биллинг.

Шаг 3: Эксплуатация ваучера

В процессе эксплуатации ваучер находится в статусе 2 (Активирован) и функционирует в штатном режиме. В этот период:

  1. Система собирает данные с устройства.
  2. Формируются скоринговые показатели.
  3. Регистрируются события и аварии.
  4. Происходит биллинг согласно выбранному типу контракта.

Замена устройства

В случае необходимости, к активному ваучеру можно привязать другое устройство. Для этого необходимо:

  1. Отвязать текущее устройство.
  2. Привязать новое устройство.

Отвязка текущего устройства:

Отвязка текущего устройства производится с помощью метода PostVoucherIdDeviceDettach:

curl -X POST "https://dev.api.exodrive.ai/api/v2/Voucher/4217/device/dettach" \
-H "Authorization: Bearer YOUR_TOKEN"
  • Пример ответа:
{
  "voucherId": 4217
}

После отвязки устройства ваучер все равно остается в статусе 2 (Активирован). Важно понимать, что даже после отвязки устройства ваучер продолжает считаться активным и биллинг не прекращается.

Привязка нового устройства:

Выполняется по той же схеме, что и первичная привязка (шаги 2.1-2.3).

Шаг 4: Закрытие ваучера

Заключительным этапом жизненного цикла является закрытие ваучера с использованием метода PostVoucherIdClose:

curl -X POST "https://dev.api.exodrive.ai/api/v2/Voucher/4217/close" \
-H "Authorization: Bearer YOUR_TOKEN"
  • Пример ответа:
{
  "voucherId": 4217
}

После успешного выполнения запроса:

  1. Статус ваучера изменяется на 6 (Ожидает деактивации).
  2. Статус договора меняется на 0 (Закрыт).
  3. Устанавливается дата закрытия (closeDate).
  4. Прекращается сбор новых данных.
  5. Прекращается биллинг.
  6. Все собранные ранее данные остаются доступными для просмотра и хранятся в системе.

Особенности биллинга

Биллинг ваучера имеет следующие особенности:

  1. Начало биллинга: Биллинг начинается с момента первой успешной привязки устройства к ваучеру, то есть с даты активации (activationDate).

  2. Продолжительность биллинга: Ваучер биллится непрерывно с момента активации до его закрытия, даже в периоды, когда к нему не привязано ни одно устройство.

  3. Смена устройств: Замена устройств не влияет на биллинг. Ваучер продолжает биллиться непрерывно, даже в периоды между отвязкой одного устройства и привязкой другого.

  4. Окончание биллинга: Биллинг прекращается только после явного закрытия ваучера.

  5. Расчет стоимости: Стоимость услуг рассчитывается на основе выбранного типа контракта (contractTypeId), который определяет тарифный план и набор включенных услуг.

Схема изменения статусов

Создание             Первая привязка         Закрытие
ваучера              устройства              ваучера
   ↓                     ↓                     ↓
   0-1 ----------------→ 2-5 ----------------→ 6-8
(Ожидает привязки)   (Активирован)     (Ожидает деактивации)

                          |
                      Отвязка/привязка
                      устройства
                      (не меняет статус)

Рекомендации по работе с ваучерами

  1. Своевременное закрытие: Закрывайте ваучеры, которые больше не используются, чтобы избежать лишних расходов.

  2. Резервные устройства: Имейте запасные устройства для быстрой замены в случае выхода из строя основного устройства.