Please enable JavaScript.
Coggle requires JavaScript to display documents.
Последовательность оплаты проезда дистанция/время - Coggle Diagram
Последовательность оплаты проезда дистанция/время
БЭК
Создается сущность “Тариф”:
(модель тарификации)
Создается сущность “Льгота”
Создается сущность “Поездка”:
ID
Номер автобуса
Маршрут
Тариф (модель тарификации)
Координаты точки начала поездки
Координаты точки завершения
Трек (расстояние / время)
Льгота
Итоговая стоимость
категория
процент дисконта
мгновенная оплата
оплата за километраж
оплата за время поездки
АДМИНКА
При создании маршрута - тарификация
При создании маршрута - льготы
в случае надобности на экран создания маршрута ("Связи" у Механика) может быть введена категория “Льгота”, с возможностью установить определенные типы льгот для маршрута
маршруту на экране "Связи" у Механика дается возможность присваивается один/несколько возможных типов тарификации
вводится стоимость проезда за единицу для каждого из тарифов или сумма фикса
Приложения
При первом старте приложения юзер видит серию Welcome-экранов с описанием функционала
Ввод информации о льготе
Наряду с платежной картой на отдельном экране юзер может выбрать льготу.
ВНИМАНИЕ: при первом посещении экрана юзер видит модалочку с юр. текстом и кнопкой "Зрозуміло". После нажатия на кнопку он может приступить к выбору льготы.
Текст для модалки:
Інформація щодо Ваших документів зберігається виключно локально на Вашому пристрої і НЕ передається на сервер сервісу "Мій квиток" або будь-якого інщого сервісу.
Пред'явіть, будь ласка, зображення документу, що підтверджує право на льготний проїзд, на вимогу контролера.
Выбрать категорию льготы в выпадающем меню (одну из представленных: студент / инвалид / пенсионер и т.д.)
Также юзер должен нажатием на иконку активировать камеру приложения и сделать фото документа, подтверждающего льготу
Также юзер вводит в текстовое поле номер удостоверения
Сохраняет добавленную инфу
После сохранения информации кнопка "Сохранить" меняет цвет, становясь "не активной". При изменении любого параметра она вновь "активируется", намекая на необходимость сохранить вновь введенную инфу.
ВНИМАНИЕ: фото и номер документа хранятся локально на устройстве юзера, на бэк НЕ передаются
В транспорте: начало движения
После получения пуша от ТС, клиент
:
переходит на экран начала поездки по выбранному маршруту
активирует поездку
.
При этом приложение:
Фиксирует координаты точки начала движения.
При поездке с тарифом по расстоянию начинает писать трек и фиксировать время поездки
При тарификации по времени запускается таймер продолжительности поездки.
При одноразовой поездке по принципу Check-In сразу списывается фиксированная плата с учетом льготы - также как сейчас
В транспорте: отображение активной поездки
На карточке активной поездки юзер видит
(помимо стандартной инфы):
Для поездок по километражу и времени - каунтеры времени поездки и расстояния, которые обновляются в режиме реального времени
Мигающую во время поездки точку (защита от скринов)
В транспорте: завершение поездки
при завершении поездки клиент:
нажимает кнопку “завершить поездку”
при этом приложение:
Фиксирует координаты точки завершения.
(координаты начала и конца поездки будут использоваться для целей формирования статистики перевозок)
При тарификации по расстоянию отправляет данные на бэк вместе с категорией льготы
При тарификации по времени останавливает таймер и отправляет данные на бэк вместе с категорией льготы
на бэке осуществляется калькуляция стоимости проезда с учетом льготы/цены за единицу, в приложение отправляется финальная сумма оплаты
происходит списание денег по токену
ВНИМАНИЕ!: если юзер не завершил поездку нажатием на кнопку, но при этом вышел из транспорта, работает сценарий АВТОВЫСАДКА:
Приложение каждые 20 сек в течение 20 сек сканирует наличие бекона. Если оно его не находит в течении трёх попыток эпизодов описанных выше, то ещё через минуту - сканирует ещё раз и если нет, то высаживает пассажира из маршрута. (Т.е. полный цикл - 3 мин) Если хоть одна попытка успешна, то процедура повторяется от момента последнего удачного сканирования.