Skip to content

Флоу аренды. Бронирование, старт, пауза, завершение

Общее флоу аренды

flow-rent.png

Бронирование

Бронирование позволяет пользователю на определенное время (время устанавливается в конфигурации на стороне Юрент, в настоящий момент 10 минут) скрыть какой-либо самокат от других пользователей, чтобы дойти до него и затем уже арендовать. Этот функционал не является обязательным для реализации и немного повышает удобство пользователя.

Мы проверяем, что пользователь находится не слишком далеко от самоката (1 км), поэтому в запросе на бронирование обязательно нужно указывать координаты клиента.

Когда пользователь подходит к забронированному самокату, может оказаться так, что он стоит на парковке “в пачке” других самокатов и понять который из них забронирован бывает сложно. Поэтому, как правило, в интерфейсе реализовывают кнопку “Посигналить” для забронированного самоката.

Отмена бронирования возможна по трем причинам:

  • Истекло время ожидания (10 мин)
  • Пользователь сам отменил бронирование
  • Пользователь начал аренду

Аренда

Это ключевой функционал шеринга. Его следует реализовать в первую очередь.

Начало аренды

Запрос на начало аренды /orders/make требует следующих параметров:

  • identifier — Номер самоката S.XXXXXX
  • isQrCode — Было ли сканирование транспорта перед стартом аренды. Если аренда происходит после сканирования QR-кода, то мы уверены что пользователь рядом с самокатом и можем далее не проверять что его геолокация совпадает с гео самоката.
  • lat, lng — Геолокация клиента. Если пользователь начинает аренду после выбора самоката на карте (не сканируя QR-код на нем), то перед арендой мы проверим что геолокация пользователя рядом с геолокацией арендуемого самоката. Если пользователь далеко от самоката, то в ответе придет "result": "DistanceIsTooFar”
  • rateId — тариф с которым начинается поездка, предварительно получен запросом /Transports/transport_multi/. Если не указывать будет использован минутный тариф по умолчанию.
  • withInsurance — Указывает выбрал ли пользователь при старте аренду страховку;
  • doNotOpen — Позволяет начать аренду не разблокируя колеса самоката. На случай, если в интерфейсе разблокировка и включение самоката реализовано отдельной кнопкой;

После отправки запроса, система пробует начать аренду и включить самокат в течение 50 секунд, зависит от настройки конфигурации на стороне Юрент. Результат этой операции не гарантирован. Если аренда за это время не начнется, то аренда не начнётся

Отмена начала аренды. Не путать с завершением аренды. Отмена начала аренды — защитный механизм от случайной аренды двух самокатов. Если после нажатия на кнопку “Начать аренду” самокат не включается довольно долго, пользователь может подумать что что-то сломалось и попытать арендовать второй самокат. В итоге может оказаться так, что пользователь арендует два самоката — один из которых по ошибке.

Чтобы избежать такой ситуации, если аренда не стартовала в течение 50 секунд (зависит он настройки конфигурации на стороне Юрент), то можно отправить запрос orders/cancel.

Пауза и возобновление поездки

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

В этой ситуации завершать аренду и потом начинать новую будет нецелесообразно (слишком долго, снова платить за активацию), да еще и самокат за это время могут арендовать другие пользователи.

Для управления самокатом в такой ситуации существует флоу паузы в аренде.

Когда пользователь нажимает кнопку “Пауза” (запрос orders/wait) во время аренды — у самоката блокируются колеса, но при этом аренда не завершается. Когда пользователь сделал все свои дела и нажимает кнопку “Продолжить поездку” (запрос orders/continue), колеса снова разблокируются и можно ехать дальше.

При этом, аренда продолжается, стоимость аренды во время паузы не меняется.

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

Завершение аренды

Существуют следующие сценарии завершения аренды:

  1. Автоматическое завершение:
  2. Юрентом, по данным самоката
  3. Юрентом, по id поездки
  4. Агентом, по данным пользователя
  5. Ручное завершение аренды пользователем

Автоматическое завершение аренды

Автоматическое завершение аренды — очень важный фактор качества сервиса.

  1. Пользователи склонны воспринимать стоимость поездки как стоимость за время в движении. Однако, если пользователь не смог / не захотел / не понял как завершать аренду внутри приложения — они могут оставить самокат с арендой (просто бросить его) и затем обратиться в поддержку с требованием вернуть деньги за то время когда пользователь уже не ехал. А еще у пользователя во время поездки может просто сесть телефон.
  2. Другой спорный момент — пользователи плохо рассчитывают стоимость поездки и для управления этим параметром могут использовать баланс собственной карты. Когда же стоимость поездки оказывается больше, чем средств на счету, то это также может вызвать негативные эмоции, обращения в поддержку и так далее.

Самые неприятные случаи возникают, когда срабатывают оба сценария одновременно — пользователи бросают самокат без завершения аренды, а через несколько часов у них накапливается огромный долг (чаще такое бывает в субботу вечером🍺).

Поэтому крайне важно помогать завершать аренду пользователям автоматически.

  • Юрент на своей стороне автоматически завершает аренды на основе данных о самокате, например по времени простоя на одном месте. При этом сервис отправляет callback о завершении аренды
  • Также, Юрент завершает автоматически аренду в случае, когда самокат сильно разряжается “BatteryStatus” : “ChargeIsExtremelyLow” . Происходит это так: отправляется callback о переходе самоката в сверхнизкий заряд и включении “платежных каникул”. Это 5-и минутный бесплатный период времени для того, чтобы пользователь мог найти парковку и завершить аренду. Если пользователь не найдет за это время парковку, то аренда все-равно завершится.
  • !!! Мы настоятельно рекомендуем реализовать автоматическое завершение аренды на стороне Агента по неудачной попытке списать следующий платеж с карты пользователя. Это поможет примерно с 10% до 2% (в пять раз) снизить количество проблемных поездок с долгом и/или возвратом.

Ручное завершение аренды

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

Проверка возможности завершить аренду

Чтобы проверить, может ли пользователь завершить аренду конкретно в данной локации — используется запрос orders/verify

По параметру identifier проверяет, находится ли этот самокат на парковке. В зависимости от настроек конкретного города, сервис может ориентировать не на локацию самоката, а на локацию клиента. Для этих целей используются координаты lat и lng из параметров запроса.

Завершение аренды

При завершении аренды по запросу orders/end, система проверяет, находится ли самокат на парковке.

Также, для завершения аренды требуются фотографии транспорта в формате Base64. Поддерживается до 5 фотографий. Фотографии можно дослать позднее, а не одновременно с вызовом orders/end, это позволит завершить аренду, а потом фоном отправить фотографии к заказу на сервер.

Замки

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

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

Давайте подробнее рассмотрим какие бывают типы замков и каких изменений в интерфейсе они требуют.

Тип замка LockType Описание В интерфейсе
Без замка "None" Замка совсем нет Ничего не надо
Кодовый "Code" Кодовой замок (4 цифры) Держим код на виду и подсвечиваем при завершении
Электро "Electro" Открывается автоматически, закрывается (защелкивается) механически Показываем кнопку “Открыть замок” в течение всей аренды
Карабин "Carbine" Замка нет, но есть карабинчик для удержания самоката тросиком у парковки Ничего не надо
Электрический "Electronic" При начале, продолжении аренды необходимо отправлять команду OpenElectronicLock и давать возможность клиенту открывать замок в течении аренды, и есть команда закрытия closeelectroniclock В течении аренды должна быть доступна кнопка открыть замок. Пользователь может нечаянно себя пристегнуть и иметь возможность открыть замок
Два в одном "Twoinone" Работает аналогично “Electronic” В течении аренды должны быть доступны кнопки открыть/закрыть замок. Пользователь должен иметь возможность пристегнуть/отстегнуть самокат в течении аренды