Настройка верификации клиента через звонок-сброс 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка верификации клиента через звонок-сброс 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка верификации клиента через звонок-сброс 1С-Битрикс

Звонок-сброс (missed call verification) — альтернатива SMS-коду. Пользователь вводит номер телефона, система звонит на него и сразу сбрасывает: последние 4 цифры входящего номера становятся кодом подтверждения. Это дешевле SMS в 5–10 раз и работает там, где SMS-доставка нестабильна.

Принцип работы и провайдеры

Технически схема такая: ваш сервер отдаёт команду телефонной платформе совершить вызов с одного из номеров пула. Пользователь видит входящий вызов, запоминает (или копирует) последние 4 цифры и вводит их в форму. Звонок при этом не нужно принимать.

Провайдеры, поддерживающие этот метод:

  • Exolve (МТС) — API Flash Call, пул исходящих номеров
  • Zadarma — функция «flash call» в тарифах с API
  • Novofon — поддержка через REST API
  • Звонок.ru — специализированный сервис верификации

Ключевое требование: провайдер должен предоставлять пул номеров с разными последними 4 цифрами и возможность выбрать конкретный номер при исходящем вызове.

Реализация в Битрикс

Архитектура аналогична SMS-верификации, но вместо кода-текста система генерирует 4-значный суффикс и выбирает из пула телефонный номер с этим суффиксом.

Таблица для хранения сессий верификации:

CREATE TABLE custom_flashcall_verification (
    id INT AUTO_INCREMENT PRIMARY KEY,
    phone VARCHAR(20) NOT NULL,
    caller_number VARCHAR(20) NOT NULL,
    code VARCHAR(4) NOT NULL,
    created_at DATETIME NOT NULL,
    attempts INT DEFAULT 0,
    verified TINYINT DEFAULT 0
);

Логика генерации:

function initiateFlashCall(string $targetPhone): array {
    // Генерируем 4-значный код (0001–9999)
    $code = str_pad(random_int(1, 9999), 4, '0', STR_PAD_LEFT);

    // Выбираем номер из пула, заканчивающийся на этот код
    $callerNumber = FlashCallPool::getNumberByCode($code);

    if (!$callerNumber) {
        throw new \Exception('No available number for code: ' . $code);
    }

    // Инициируем вызов через API провайдера
    $provider = new ExolveFlashCallProvider();
    $provider->call($callerNumber, $targetPhone);

    // Сохраняем в БД
    FlashCallVerificationTable::add([
        'PHONE' => $targetPhone,
        'CALLER_NUMBER' => $callerNumber,
        'CODE' => $code,
        'CREATED_AT' => new \Bitrix\Main\Type\DateTime(),
    ]);

    return ['success' => true, 'hint' => 'Ожидайте входящего звонка'];
}

Управление пулом номеров

Пул номеров — критичная часть системы. Для кодов 0000–9999 нужен минимум пул из нескольких сотен номеров, иначе коллизии неизбежны при высокой нагрузке.

Таблица пула:

CREATE TABLE custom_flashcall_pool (
    id INT AUTO_INCREMENT PRIMARY KEY,
    phone_number VARCHAR(20) NOT NULL,
    code_suffix VARCHAR(4) NOT NULL,
    in_use TINYINT DEFAULT 0,
    last_used DATETIME,
    INDEX idx_code (code_suffix),
    INDEX idx_available (in_use, last_used)
);

При выборе номера из пула берётся первый доступный с нужным суффиксом, который не использовался последние 30 секунд. После завершения верификации номер возвращается в пул.

Пользовательский интерфейс

Форма верификации через звонок-сброс отличается от SMS:

  1. Пользователь вводит номер телефона
  2. Появляется сообщение: «Сейчас вам позвонит номер, запомните его последние 4 цифры»
  3. Поле ввода с маской _ _ _ _
  4. Таймер обратного отсчёта (обычно 30–60 секунд)
  5. Кнопка «Позвонить ещё раз» после истечения таймера

Важно сообщить пользователю, что принимать звонок не нужно — это нестандартно и без подсказки вызывает замешательство.

Интеграция с Битрикс

Верификация встраивается через AJAX-контроллер (\Bitrix\Main\Engine\Controller) и подключается к форме регистрации или оформления заказа через JavaScript. В компоненте bitrix:sale.order.ajax добавляется шаг верификации между вводом контактных данных и подтверждением заказа.

Резервный вариант: если звонок не поступил в течение 90 секунд, пользователю предлагается переключиться на SMS-верификацию.

Сроки выполнения

Объём работ Срок
Интеграция с провайдером + базовая форма 1–2 дня
Пул номеров + управление коллизиями +1 день
Fallback на SMS + полная интеграция с Битрикс 3–4 дня

Для высоконагруженных магазинов с 1000+ верификациями в сутки стоит проработать резервирование пула и мониторинг доступности провайдера.