Как настроить вход в личный кабинет по Flash Call без SMS

Как настроить вход в личный кабинет по Flash Call без SMS

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

Как работает вход по звонку

Сценариев два. В первом звонок запускает сервис: на номер пользователя уходит вызов, человек вводит в форму последние цифры этого номера. Отдельный одноразовый код генерировать не нужно (Mindbox). Во втором варианте, который называют обратным Flash Call, на экране показывается номер для звонка, и система узнаёт пользователя по входящему вызову (Plusofon).

Первый вариант привычнее для входа в кабинет: пользователь не набирает ничего, кроме нескольких цифр. Второй чаще берут как дополнение или замену SMS-кодов там, где входящий звонок на устройство неудобен (Plusofon).

Задача у обоих вариантов та же, что у кодов авторизации: убедиться, что человек распоряжается этим номером (SMS.BY). Если вход идёт по паролю, звонок выполняет роль второго фактора — такого же слоя защиты, как код в сообщении (SMS Blog).

Чем Flash Call отличается от SMS-кода

Разница в канале доставки и в том, как считается оплата. Один из провайдеров называет Flash Call самым недорогим способом доставки кодов и паролей (SMS Pilot), а сервис авторизации по звонку берёт деньги только за подтверждения, без абонплаты и скрытых платежей (Звонок™). Что это значит на практике — в таблице.

Что сравниваемSMS-кодFlash CallКаскад «Flash Call → SMS»
Действие пользователяЖдёт сообщение и вводит кодПринимает звонок и вводит последние цифры номераЖдёт звонок, при неудаче — сообщение
Что готовит бизнесSMS-шлюз, шаблон сообщения, генерацию кодаДоступ к API звонков, генерация кода не нужнаОба канала и правило переключения
Слабые местаСообщение может задержаться или не прийтиЗвонок не пройдёт при слабом сигнале и в роумингеЧасть пользователей проходит через оба канала, поэтому дороже
ОплатаЗа каждое сообщениеЗа каждое подтверждение, абонплаты нетЗа использованные каналы

Если выбираете канал для входа, пригодится разбор почему Flash Call лучше SMS при подтверждении номера. Там собраны типичные ситуации, в которых выигрывает звонок.

Как настроить вход по звонку: пошаговый план

Базовая логика состоит из четырёх частей: единый формат номера, отправка, проверка с ограничением попыток и вход в аккаунт (Kalinkin Dev). Ниже — как это выглядит в работе.

  1. Приведите номер к одному виду. Храните только цифры с кодом страны, иначе один человек заведёт два аккаунта с разными записями телефона.
  2. Выберите тип подтверждения. Для входа в кабинет обычно берут звонок от сервиса, для кассы или мобильного приложения — обратный звонок.
  3. Подключите API провайдера. Получите ключи, ограничьте их по IP, настройте вебхук о статусе вызова, чтобы система знала, дозвонилась ли она.
  4. Опишите логику на бэкенде. Создайте короткую сессию подтверждения, привяжите её к номеру и устройству, проверяйте последние цифры звонящего.
  5. Заложите лимиты. Ограничьте число попыток и частоту запросов на один номер, поставьте паузу после нескольких неудач.
  6. Добавьте резервный канал. Если звонок не прошёл за отведённое время, включайте второй способ — сборка описана в инструкции про каскад «Flash Call → SMS».

Крайние случаи и типичные ошибки

Что может пойти не так

  • Задержка доставки. Звонок не проходит в роуминге или при слабом сигнале, поэтому нужны понятный текст на экране и кнопка повторного запроса.
  • Превышение лимитов. Провайдер или оператор ограничивает число вызовов на номер, и при массовых запросах часть людей не получит подтверждение (SMS Blog).
  • Смена номера. Человек с новым номером теряет доступ, если у аккаунта нет других подтверждённых данных (SMS Blog).
  • Восстановление пароля. Это отдельный сценарий с повышенными требованиями, о нём читайте в статье Flash Call при восстановлении пароля.

Где теряют деньги и безопасность

  • Сессию открывают сразу после ввода номера, до подтверждения. Тогда в кабинет попадёт любой, кто знает чужой телефон.
  • Нет лимита на попытки. Короткий код подбирают перебором, а на этом теряют и доступы, и деньги (Kalinkin Dev).
  • Повторная отправка при каждом обновлении страницы. Лишние звонки и сообщения съедают бюджет.
  • Номер сохраняют «как ввёл пользователь». В базе появляются дубли, а поддержка тратит время на поиск одного и того же человека.
  • Номера и коды лежат в логах открытым текстом. Провайдеры шифруют доставку паролей и базы абонентов (Plusofon), но это не поможет, если у вас всё хранится в открытом виде.

Сколько стоит подтверждение и как считать бюджет

Схема оплаты простая: платите за подтверждения, абонплаты и скрытых платежей нет (Звонок™). Для микробизнеса это удобно — расходы растут вместе с числом входов. Сравнивать каналы только по цене одного подтверждения не стоит: дешевле выйдет тот способ, при котором человек доходит до конца сценария с первой попытки.

Что посчитатьКак это выглядит на практике
Число подтверждений в месяцСчитайте запросы пользователей, а не только успешные входы.
Повторные запросыПосмотрите в логах, сколько людей просят звонок или сообщение второй раз.
Нагрузка на поддержкуОбращение «код не приходит» — это время менеджера. Резервный канал снижает их число.
Оборванные входыДолю людей, которые бросили подтверждение, показывает цель в Яндекс Метрике (Cropas).

Дальше решение простое. Если звонок доходит до большинства пользователей, ставьте его первым каналом. Если аудитория часто в роуминге, держите наготове SMS. Для интернет-магазина в Гомеле и сервиса записи в Гродно логика одна: сначала измерить, потом выбирать.

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

  1. Поставьте цель в Яндекс Метрике на шаг подтверждения номера и посмотрите, сколько людей его не проходят.
  2. Соберите тестовый сценарий с одним провайдером: сначала на своём номере, затем на номере коллеги с другим оператором.
  3. Опишите текстом правило, по которому включается резервный канал, и отдайте его разработчику.