Налаштування верифікації клієнта через flash call 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування верифікації клієнта через flash call 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування верифікації клієнта через flash call у 1С-Bitrix

Flash call відрізняється від дзвінку-скидання деталлю, яка змінює всю схему: на Android-пристроях додаток постачальника або сам браузер перехоплює вхідний дзвінок, автоматично зчитує номер і підтверджує верифікацію без участі користувача. Людина взагалі нічого не вводить. Конверсія верифікації при цьому вище SMS на 15–25%.

Технологія і вимоги

Flash call працює в двох режимах:

Автоматичний (справжній flash call) — вимагає встановленого мобільного додатку з дозволом на читання дзвінків, або браузерного API (Android Chrome + Web OTP API для деяких постачальників). Вхідний дзвінок перехоплюється програмно, останні цифри номера витягуються і відправляються на сервер без дій користувача.

Напівавтоматичний — користувачу показується екран з маскою, система ініціює дзвінок, користувач бачить 4 цифри і вводить їх. Це фактично той же «дзвінок-скидання», але з позиціонуванням як flash call.

Для справжнього автоматичного flash call у Bitrix-магазині без мобільного додатку реалістичний лише напівавтоматичний режим. Повністю автоматичний — через SDK, вбудований у мобільний додаток магазину.

Інтеграція з постачальниками flash call

Спеціалізовані постачальники flash call для ринку РФ/СНД:

  • Exolve Flash Call API — підтримує автоматичне перехоплення на Android через Web API
  • МГТС Flash Call — B2B-сервіс з SLA
  • Devino Telecom — REST API з кодом у номері

Приклад інтеграції з Exolve:

class ExolveFlashCallProvider {
    private const API_URL = 'https://api.exolve.ru/call/v1/MakeCall';
    private string $apiKey;

    public function __construct(string $apiKey) {
        $this->apiKey = $apiKey;
    }

    public function initiate(string $targetPhone, string $code): array {
        // Номер дзвінюча містить код у останніх 4 цифрах
        $callerNumber = $this->getCallerByCode($code);

        $response = (new \Bitrix\Main\Web\HttpClient())->post(
            self::API_URL,
            json_encode([
                'number' => $callerNumber,
                'destination' => $targetPhone,
                'call_duration' => 1, // Мінімальна тривалість — одразу скидання
            ]),
            ['Authorization' => 'Bearer ' . $this->apiKey,
             'Content-Type' => 'application/json']
        );

        return json_decode($response->getResult(), true);
    }
}

Підтримка Web OTP API

На Android-пристроях з Chrome 84+ можлива напівавтоматична обробка через Web OTP API. Браузер перехоплює SMS з кодом (не дзвінок), якщо повідомлення оформлено спеціальним способом. Це поєднання SMS і flash-механізму.

Формат SMS для Web OTP:

Ваш код верифікації: 4821

@shop.ru #4821

JavaScript для автоперехвату:

if ('OTPCredential' in window) {
    const ac = new AbortController();
    navigator.credentials.get({
        otp: { transport: ['sms'] },
        signal: ac.signal
    }).then(otp => {
        document.getElementById('verification-code').value = otp.code;
        submitVerificationForm();
    }).catch(err => {
        // Fallback: користувач вводить вручну
        console.log('OTP auto-read failed:', err);
    });
}

Серверна частина: контролер верифікації

У Bitrix реалізується як контролер D7:

namespace Custom\Verification;

class FlashCallController extends \Bitrix\Main\Engine\Controller {

    public function initiateAction(string $phone): array {
        $phone = $this->normalizePhone($phone);

        if (!$this->checkRateLimit($phone)) {
            return $this->error('Занадто багато запитів. Зачекайте хвилину.');
        }

        $code = str_pad(random_int(1, 9999), 4, '0', STR_PAD_LEFT);

        try {
            $provider = new ExolveFlashCallProvider(EXOLVE_API_KEY);
            $provider->initiate($phone, $code);
        } catch (\Exception $e) {
            \Bitrix\Main\Diag\Logger::getLogger('flash_call')->error($e->getMessage());
            return $this->error('Помилка надсилання. Спробуйте SMS-верифікацію.');
        }

        FlashCallTable::add([
            'PHONE' => $phone,
            'CODE' => $code,
            'CREATED_AT' => new \Bitrix\Main\Type\DateTime(),
            'EXPIRES_AT' => new \Bitrix\Main\Type\DateTime(date('Y-m-d H:i:s', time() + 120)),
        ]);

        return ['success' => true];
    }

    public function verifyAction(string $phone, string $code): array {
        $record = FlashCallTable::getList([
            'filter' => [
                '=PHONE' => $this->normalizePhone($phone),
                '=CODE' => $code,
                '=VERIFIED' => false,
                '>EXPIRES_AT' => new \Bitrix\Main\Type\DateTime(),
            ],
            'order' => ['CREATED_AT' => 'DESC'],
            'limit' => 1,
        ])->fetch();

        if (!$record) {
            return $this->error('Неправильний код або час закінчився.');
        }

        FlashCallTable::update($record['ID'], ['VERIFIED' => true]);
        \Bitrix\Main\Application::getInstance()->getSession()->set('PHONE_VERIFIED', $phone);

        return ['success' => true];
    }
}

Сроки виконання

Обсяг робіт Строк
Базова інтеграція з постачальником 1 день
Контролер + UI + rate limiting 2–3 дні
Web OTP API + fallback на SMS +1 день
Інтеграція з реєстрацією та замовленням +1 день

Flash call-верифікація стає конкурентною перевагою для мобільної аудиторії — менше тертя, вища конверсія.