Как подтверждать вход по Flash Call, когда клиент в роуминге

Как подтверждать вход по Flash Call, когда клиент в роуминге

Flash Call подтверждает номер звонком: код приходит голосом или лежит в последних цифрах входящего номера. В роуминге ломается первый вариант — человек не берёт трубку с незнакомого номера и не знает, сколько ему будет стоить ответ. Рабочее решение для поездок: сценарий, где отвечать не нужно, а код виден в журнале вызовов. Ниже — чем отличаются два варианта, что прописать в интерфейсе и как подстраховаться, если звонок не дошёл.

Почему в роуминге Flash Call ведёт себя иначе

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

Техника тоже ведёт себя иначе. Гостевой сети нужно зарегистрировать абонента, поэтому вызов приходит с задержкой, а не мгновенно. В журнале вызовов номер отображается в международном формате, с плюсом и кодом страны. Последние четыре или шесть цифр при этом остаются на месте — именно их клиент вводит в форму подтверждения (по описанию метода от сервиса RedSMS).

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

Отвечать на звонок или читать номер: в чём разница

Оба варианта используют один и тот же звонок, но требуют от клиента разного.

Что сравниваемОтветить и ввести кодКод в последних цифрах номера
Действие клиентаПринять вызов, услышать или увидеть код, ввести его в формуОткрыть журнал вызовов, посмотреть номер, ввести последние цифры
Если вызов сброситьКод не получен, нужен повторКод остаётся в журнале и в уведомлении о пропущенном
Реакция на незнакомый номерВ роуминге многие не берут трубкуСброс не мешает подтверждению
Настройки телефонаБлокировка незнакомых номеров ломает сценарийРежим «не беспокоить» скрывает экран, но не журнал вызовов
Где встречаетсяВход в личный кабинет, где нужен голосовой кодПубличные сети Wi-Fi, крупные маркетплейсы

Первый вариант даёт больше свободы: в звонке можно передать длинный код. Второй проще для пользователя и устойчивее к роумингу, но длина кода ограничена разрядностью номера — обычно это четыре или шесть цифр. Если сомневаетесь, какой метод ближе вашему сценарию, начните с разбора Voice OTP или Flash Call: что выбрать для подтверждения номера.

Как настроить вход по Flash Call с оглядкой на роуминг

Проверьте, умеет ли сервис передавать код в номере

Разные поставщики работают по-разному: один читает код голосом, другой подставляет цифры в номер. Уточните, какой вариант доступен вам и сколько цифр он передаёт. Если голосовой код — единственный вариант, сценарий подойдёт для клиентов в домашней сети, а для поездок понадобится запасной способ. Последовательность настройки входа, который держится только на звонке, разобрана в материале Как настроить вход в личный кабинет по Flash Call без SMS.

Задайте таймаут и запасной способ

Минуты хватает, чтобы звонок дошёл даже через гостевую сеть. Дальше человек должен увидеть кнопку «Не приходит код» с двумя действиями: позвонить ещё раз и получить код по SMS. Второй канал выручает, когда у клиента выключена белорусская SIM или номер не принимает вызовы. Как связать оба способа в один сценарий, описано в статье как собрать Flash Call и SMS в единый сценарий подтверждения номера.

Напишите понятную инструкцию на экране ожидания

Подсказка работает, если появляется до звонка. Слабый текст: «Ожидайте звонка». Рабочий: «Сейчас позвоним с белорусского номера. Отвечать не обязательно — посмотрите последние четыре цифры в журнале вызовов и введите их в поле». Добавьте оговорку, что номер может прийти в международном формате и цифры от этого не меняются. Кнопка «Позвонить ещё раз» должна стоять рядом с полем ввода, а не в разделе помощи.

Логируйте попытки через вебхук

Вебхук Flash call возвращает данные о звонке, включая параметр verification_call_uuid, который связывает конкретный вызов с конкретным запросом к API (по документации интеграций). Такой лог разделяет две разные ситуации: клиент не взял трубку или звонок вообще не дошёл. От этого зависит и текст ошибки, и следующий шаг для пользователя.

Как считать попытки и во что это обходится

Расходы зависят от числа звонков, а не от числа входов. Клиент в роуминге может быть в самолёте, в метро или просто не успеть взглянуть на экран, и вы платите за повтор. Flash Call обходится дешевле SMS-кода (по данным сервиса «Звонок»), поэтому два-три повтора редко становятся проблемой. Ограничьте автоповтор двумя-тремя звонками с паузой в минуту: длинная серия вызовов раздражает сильнее, чем один неудачный вход.

Типичные ошибки

  • Ждать, что клиент в роуминге ответит на звонок с незнакомого номера.
  • Держать один сценарий для домашней сети и для поездок, без запасного канала.
  • Не давать альтернативы, когда звонок не дошёл: пользователь уходит в поддержку.
  • Показывать инструкцию про журнал вызовов только после второго или третьего звонка.
  • Не логировать попытки и не понимать, был звонок или нет.
  • Тестировать сценарий только на своей SIM в домашней сети.

3 шага, которые можно сделать на этой неделе:

  1. Уточнить у поставщика, умеет ли сервис передавать код в последних цифрах номера и какой длины этот код.
  2. Переписать экран ожидания: объяснить, что отвечать не обязательно, и подсказать, где смотреть цифры.
  3. Добавить после таймаута повтор звонка и SMS, а также включить логирование попыток через вебхук.