Сценарії, канали, таймінги й ліміти
Налаштуйте окрему поведінку OTP для входу, реєстрації, профілю й оформлення замовлення.
Базова конфігурація
- сценарії OTP
- довжина і TTL коду
- основний і резервний канал
- затримка повторного надсилання
- ліміти помилкових кодів
- тексти повідомлень
Перевіряйте як клієнт
Після кожної зміни використовуйте приватне вікно або нову сесію, щоб попередній стан підтвердження не приховав проблему.
Усі поля, варіанти та перевірки
Нижче наведено повний профільний розділ офіційної інструкції модуля, без скорочень і маркетингового переказу.
14. OTP - підтвердження телефону
OTP - це одноразовий код, який клієнт отримує на телефон і вводить на сайті.
Як увімкнути OTP
- Спочатку перевірте SMS або дзвінок.
- Відкрийте
OTP -> Налаштування OTP. - Увімкніть
OTP Статус. - Увімкніть тільки потрібні сценарії OTP.
- У полі
Канал надсилання OTPвиберіть, через що модуль має спробувати відправити OTP-код першим:SMS,ViberабоTelegram. Якщо увімкненаАвторизація дзвінком, цей блок показується якКанал OTP без дзвінка: першим буде дзвінок, а вибраний канал працює тільки для OTP без дзвінка. - Налаштуйте довжину коду і часи.
- Перевірте маршрути сторінок, якщо оформлення замовлення нестандартне.
- Натисніть
Зберегти. - Протестуйте на сайті як клієнт.
Сценарії OTP
| Сценарій | Де працює | Коли вмикати |
|---|---|---|
Авторизації | Вхід клієнта в акаунт. | Якщо вхід має бути підтверджений телефоном. |
Реєстрації | Створення нового акаунта. | Якщо треба не приймати фейкові телефони. |
Зміні в Особистому кабінеті | Зміна телефону в профілі. | Рекомендовано, щоб клієнт не поставив чужий номер. |
Оформлення замовлення | Перевірка під час оформлення замовлення. | Найпрактичніший варіант для підтвердження телефону в замовленні. |
Як OTP працює для клієнта
- Клієнт вводить телефон.
- Модуль перевіряє формат номера, країну, IP, браузер, сесію і ліміти.
- Якщо все нормально, модуль вибирає сценарій доставки OTP.
- Якщо увімкнена авторизація дзвінком і вибраний шлюз її підтримує, модуль спочатку запускає дзвінок.
- Якщо дзвінок не використовується, модуль створює OTP-код і відправляє його через канал, вибраний у полі
Канал надсилання OTP. - Якщо дзвінок не вдався і ввімкнене резервне SMS для дзвінка, модуль створює OTP-код і надсилає його саме через SMS.
- Клієнт вводить код або підтверджує дію через дзвінок.
- Модуль перевіряє код, результат дзвінка і термін дії підтвердження.
- Якщо перевірка успішна, номер вважається підтвердженим.
Якщо будь-яка перевірка не пройдена, код або дзвінок не запускається. Це зроблено спеціально, щоб не витрачати баланс на ботів і підозрілі запити.
Логіка вибору каналу OTP
Для OTP є окреме поле Канал надсилання OTP. Воно не залежить від каналу звичайних повідомлень адміну, статусів замовлення, відкладених подій або масової розсилки.
Якщо ввімкнена Авторизація дзвінком, адмінка одразу змінює цей блок на Канал OTP без дзвінка. Це не декоративна назва, а захист від плутанини: поле не керує першим дзвінком або резервним SMS після його помилки.
Основна логіка така:
Дзвінокмає пріоритет, якщо ввімкненаАвторизація дзвінком, модуль і OTP увімкнені, а вибранийCall gatewayпідтримує потрібний сценарій. Це може бути SMS-шлюз із підтримкою дзвінків або окремий Stream Telecom.- Резервне SMS після дзвінка спрацьовує, якщо дзвінок не запустився або не підтвердився, поле
SMS при помилці дзвінкаввімкнене і налаштований основний SMS-шлюз. У цьому випадку модуль надсилає OTP саме через SMS, а не через канал, вибраний у поліКанал надсилання OTP/Канал OTP без дзвінка. - Якщо дзвінок не використовується, перша спроба OTP іде через вибраний канал:
SMS,ViberабоTelegram. - Якщо вибраний канал не спрацював, модуль перевіряє інші доступні й увімкнені канали в порядку
Telegram -> Viber -> SMS, пропускаючи вже вибраний канал. - Якщо інших доступних каналів немає або резервне надсилання для них вимкнене, додаткової спроби не буде.
Приклади:
Вибраний Канал надсилання OTP / Канал OTP без дзвінка | Що модуль пробує після помилки першого каналу |
|---|---|
SMS | Telegram -> Viber, якщо ці канали підключені й доступні. SMS повторно не пробується. |
Viber | Telegram, якщо Telegram доступний. Потім SMS, якщо SMS-шлюз налаштований і резервне SMS після помилки Viber дозволене. Viber повторно не перевіряється. |
Telegram | Viber, якщо Viber доступний. Потім SMS, якщо SMS-шлюз налаштований і відповідне резервне надсилання дозволене. Telegram повторно не перевіряється. |
Важливо: якщо у списку вибору є тільки SMS, то після невдалого надсилання SMS запасного каналу не буде. Якщо вибрано Без SMS / тільки авторизація дзвінком, а SMS-шлюз не налаштований, резервне SMS для OTP недоступне.
Як працює резервне надсилання для OTP
| Налаштування | Коли спрацьовує | Що буде далі |
|---|---|---|
SMS при помилці дзвінка | Дзвінок не запустився, не підтвердився або провайдер повернув помилку. | Модуль примусово надсилає OTP-код через основний SMS-шлюз. Telegram і Viber у цьому резервному сценарії не мають пріоритету. Якщо SMS-шлюз вимкнений, резервне надсилання недоступне. |
Канал надсилання OTP / Канал OTP без дзвінка | Дзвінок не використовується, і треба відправити звичайний OTP-код. | Вибраний канал стає першою спробою. Після помилки модуль може перейти до інших доступних каналів у порядку Telegram -> Viber -> SMS, але пропускає вже вибраний канал. |
SMS якщо Telegram недоступний | Telegram недоступний або не може доставити повідомлення, і наступним доступним запасним каналом має бути SMS. | Модуль може перейти на SMS. Якщо резервне надсилання вимкнене, повідомлення через SMS не піде. |
SMS якщо Viber недоступний | Viber не доставив повідомлення. | Модуль може перейти на SMS. Якщо резервне надсилання вимкнене, після помилки Viber SMS не піде. |
Приклад: якщо увімкнений дзвінок, підключений Telegram і налаштований SMS-шлюз, OTP спочатку піде через дзвінок. Якщо дзвінок провалиться і SMS при помилці дзвінка увімкнене, модуль відправить код через SMS, а не через Telegram або Viber. Якщо вибрано Без SMS / тільки авторизація дзвінком, після невдалого дзвінка SMS не піде.
Якщо дзвінок вимкнений і в Канал надсилання OTP вибрано SMS, модуль спочатку відправить SMS. Якщо SMS не спрацює, він не буде повторювати SMS, а перевірить тільки інші доступні канали: Telegram і Viber. Якщо вони не підключені, додаткової спроби не буде.
Які сценарії вмикати
| Потреба магазину | Що вмикати | Чого не вмикати без потреби |
|---|---|---|
| Треба перевіряти тільки телефони в замовленнях | Оформлення замовлення | Авторизації і Реєстрації, якщо акаунти не важливі. |
| Треба захистити акаунти клієнтів | Авторизації, Реєстрації, Зміні в Особистому кабінеті | оформлення замовлення можна не чіпати, якщо телефон замовлення не критичний. |
| Треба максимальна чистота бази телефонів | Усі сценарії | Не запускайте без тесту, бо кожна точка входу почне вимагати код. |
| Треба мінімум незручностей клієнту | Тільки оформлення замовлення або тільки реєстрація | Не вмикайте OTP всюди одразу. |
Код і таймінги
| Поле | Що робить | Рекомендація |
|---|---|---|
Довжина OTP | Вибирає 4 або 6 цифр у коді. | 4 простіше для клієнта, 6 безпечніше. |
Час повторного відправлення | Через скільки секунд можна попросити код повторно. | 30-60 секунд. |
Термін дії OTP | Скільки часу код дійсний. | 5-10 хвилин. |
Час життя підтвердженого номера | Як довго номер вважається вже підтвердженим у цьому браузері. | Для оформлення замовлення можна залишити помірне значення, щоб не просити код повторно на кожному кроці. |
Ліміти повторного надсилання
| Поле | Що робить | Рекомендація |
|---|---|---|
Обмежити запит OTP | Вмикає локальний ліміт повторних кодів для номера. | Увімкніть. |
Послідовні OTP-запити | Скільки разів підряд можна попросити код. | Не ставте занадто багато. |
Тривалість блокування | На скільки заблокувати після перевищення. | Почніть з помірного значення. |
Ліміти помилкових кодів
| Поле | Що робить | Рекомендація |
|---|---|---|
Обмеження помилкових спроб OTP | Блокує після багатьох неправильних кодів. | Увімкніть. |
Кількість помилкових спроб OTP | Скільки разів можна помилитися. | 3-5 спроб. |
Тривалість блокування | Пауза після неправильних кодів. | Достатня, щоб не можна було перебирати код. |
Маршрути сторінок
Стандартні сторінки OpenCart модуль підключає автоматично:
account/register;account/edit;checkout/checkout.
Якщо у вас SimpleCheckout, One Page Checkout або інший нестандартний модуль оформлення замовлення, OTP може не з'явитися автоматично. Тоді потрібно додати маршрут сторінки до блоку додаткових сторінок.
Для звичайного користувача правило просте: якщо OTP на оформлення замовлення не з'явився, передайте цей пункт розробнику.
Шаблон для розробника:
У модулі SAP - SMS / OTP Pro увімкнений OTP для оформлення замовлення, але на оформлення замовлення поле підтвердження не з'являється.
Потрібно перевірити маршрут сторінки оформлення замовлення і додати його в "Додаткові сторінки перевірки телефону" або "Сторінки сторонніх модулів".
Ризикові замовлення: OTP лише коли це потрібно
Функція Ризикові замовлення потрібна, якщо магазин не хоче змушувати кожного покупця вводити OTP. Вона залишає звичайне оформлення швидким для безпечних замовлень і вимагає підтвердження тільки тоді, коли спрацювало активне правило ризику.
Вкладка OTP -> Ризикові замовлення показується одразу після ввімкнення сценарію OTP -> Налаштування OTP -> Оформлення замовлення. Якщо цей сценарій вимкнути, вкладка ховається, а перевірка правил не виконується.
Логіка роботи:
Оформлення замовленняувімкнено, аПідтвердження ризикових замовленьвимкнено - OTP вимагається для кожного оформлення замовлення;- обидва перемикачі увімкнено, режим
Тестовий- правила перевіряються і пишуться в журнал, але оформлення замовлення не зупиняється через збіг; - обидва перемикачі увімкнено, режим
Робочий- OTP вимагається тільки коли збіглося перше активне правило; - жодне правило не збіглося - покупець продовжує оформлення без OTP;
- правило збіглося, але номер уже підтверджено для того самого оформлення замовлення і строк підтвердження не минув - повторний код не потрібен.
Безпечне ввімкнення
- Переконайтеся, що
OTP СтатусіОформлення замовленняувімкнені. - Відкрийте
OTP -> Ризикові замовлення. - Увімкніть перемикач у блоці
Підтвердження ризикових замовлень. - Залиште
Режим роботи = Тестовий - лише журнал. - Виберіть поведінку
Якщо OTP неможливо надіслати. - Задайте строк підтвердження оформлення замовлення.
- Виберіть статуси замовлень, які магазин вважає успішними.
- Створіть правила й натисніть
Зберегти. - Зробіть кілька тестових оформлень: одне має збігтися з правилом, інше - ні.
- Перевірте блок
Останні спрацювання. - Лише після перевірки журналу перемкніть режим на
Робочий - вимагати OTP.
Основні налаштування
| Поле | Що робить | Рекомендація |
|---|---|---|
Підтвердження ризикових замовлень | Вмикає вибірковий OTP під час оформлення замовлення. | Увімкніть після створення правил. Якщо вимкнено, сценарій оформлення працює як звичайний OTP для всіх замовлень. |
Режим роботи | Тестовий тільки записує збіги; Робочий реально вимагає OTP. | Починайте з тестового режиму щонайменше на кількох реальних або тестових замовленнях. |
Якщо OTP неможливо надіслати | Визначає, чи пропускати покупця при помилці провайдера. | На старті використовуйте точний варіант інтерфейсу Дозволити checkout і записати попередження. Блокування вмикайте тільки після стабільної перевірки основного й запасного каналів. |
Строк підтвердження checkout, хвилин | Скільки діє успішне підтвердження для поточного стану оформлення замовлення. | 15 хвилин — нормальне стартове значення. Дозволено від 1 до 120 хвилин. |
Статуси успішних замовлень | Визначає, які попередні замовлення враховувати в історії покупця. | Виберіть статуси, які у вашому магазині означають реальне прийняте, оплачене або виконане замовлення. Не додавайте скасовані й помилкові статуси. |
Як перевіряються правила
Кожне правило має назву, перемикач Активне правило, пріоритет, логіку умов і одну або кілька умов.
- Менше число в полі
Пріоритетперевіряється раніше. Наприклад,10має вищий пріоритет за20. Усі умови (AND)означає, що мають виконатися всі умови правила.Будь-яка умова (OR)означає, що достатньо хоча б однієї умови.- Після першого збігу перевірка зупиняється. Саме назва цього правила потрапляє в журнал.
- Неактивне правило не впливає на оформлення замовлення.
- Кнопка копіювання створює копію правила, а червона кнопка видаляє його. Окрема червона кнопка в рядку умови видаляє тільки цю умову.
Показники правил
| Показник | Доступні порівняння | Що означає значення |
|---|---|---|
Сума замовлення | Більше, Більше або дорівнює, Менше, Менше або дорівнює, Між значеннями | Поточна підсумкова сума оформлення замовлення. Для Між значеннями заповніть нижню і верхню межу. |
Спосіб оплати | Дорівнює, Не дорівнює | Обраний покупцем спосіб оплати. Список формується автоматично з установлених та увімкнених способів оплати магазину. |
Тип покупця | Дорівнює | Гість, Авторизований клієнт або Клієнт без успішних замовлень. |
Кількість успішних замовлень | Дорівнює, Більше, Більше або дорівнює, Менше, Менше або дорівнює | Кількість попередніх замовлень у статусах, вибраних у блоці Статуси успішних замовлень. Для гостя історія шукається за нормалізованим телефоном. |
Телефон підтверджено | Дорівнює | Чи був номер поточного оформлення замовлення успішно підтверджений OTP у чинній сесії. Значення: Так або Ні. |
Вік підтвердження телефона, днів | Більше, Більше або дорівнює | Скільки повних днів минуло від останнього успішного підтвердження цього номера. |
Замовлень із телефона за період | Більше або дорівнює | Скільки замовлень уже створено з тим самим нормалізованим номером за попередній період. Поле Період, хвилин приймає від 1 хвилини до 7 днів (10080 хвилин). |
Тип покупця читається так:
Гість- покупець не авторизований;Авторизований клієнт- покупець авторизований і має хоча б одне замовлення в обраних успішних статусах;Клієнт без успішних замовлень- покупець авторизований, але ще не має замовлень у цих статусах.
Список для показника Спосіб оплати не зашитий у модуль. Він автоматично читає встановлені платіжні розширення та їхні статуси. Для OpenCart/ocStore 2.3 перевіряються старі ключі налаштувань, а для 3.x — нові ключі payment_*, із сумісною перевіркою в обидва боки. Якщо спосіб оплати встановлено, але він не з'явився у правилі, спочатку переконайтеся, що його статус справді Увімкнено, а потім перезбережіть сторінку модуля.
Рекомендований стартовий набір
Пороги нижче - приклад, а не універсальна істина. Суми треба адаптувати до середнього чека й валюти магазину.
| Пріоритет | Назва | Умови |
|---|---|---|
10 | Часті повторні замовлення | Замовлень із телефона за період >= 2, період 60 хвилин. |
20 | Гість із підвищеною сумою | Сума замовлення >= 1500 AND Тип покупця = Гість. |
30 | Новий клієнт із великою сумою | Сума замовлення >= 2500 AND Тип покупця = Клієнт без успішних замовлень. |
40 | Велика сума для будь-якого покупця | Сума замовлення >= 5000. |
Тримайте правила від вузьких до загальних. Правило масових повторів має бути вище за правило великої суми, інакше журнал показуватиме тільки загальне правило, а причина ризику буде менш зрозумілою.
Останні спрацювання
Журнал показує дату, назву правила, замаскований телефон, статус рішення та ID створеного замовлення, якщо воно вже існує. Відкритий номер у журналі ризику не зберігається.
| Елемент | Що робить |
|---|---|
Усього записів | Показує реальну кількість записів журналу. |
Зберігати журнал, днів | Автоматично видаляє старі записи під час відкриття налаштувань модуля. Допустимо від 1 до 365 днів; 30 днів - нормальний старт. |
Очистити журнал | Видаляє весь журнал після підтвердження. Дію неможливо скасувати. |
Типові статуси журналу: правило збіглося в тестовому режимі, OTP потрібен, OTP підтверджено, оформлення замовлення дозволено або оформлення замовлення пропущено через політику доступності провайдера.
Активні правила кешуються між запитами, а дані оформлення замовлення обчислюються тільки коли вони реально потрібні конкретній умові. Наприклад, для гостя модуль не читає історію успішних замовлень лише заради визначення Тип покупця = Гість; але якщо правило прямо використовує Кількість успішних замовлень, потрібний запит виконується. Це зменшує навантаження без зміни результату правила.
17. OTP - тексти повідомлень
У цій вкладці налаштовуються тексти OTP-повідомлень.
Як налаштувати
- Відкрийте
OTP -> Повідомлення OTP. - Перевірте текст для входу, реєстрації, профілю і оформлення замовлення.
- Переконайтеся, що в тексті є
{otp}. - Натисніть
Зберегти. - Протестуйте кожний увімкнений сценарій.
Головне правило
У повідомленні обов'язково має бути шорткод {otp}. Саме він підставляє код.
Нормальні приклади:
Код підтвердження: {otp}
Ваш код для підтвердження телефону: {otp}. Магазин Example.
Не робіть OTP-повідомлення довгим. Клієнт має швидко побачити код.
Пов’язані екрани
Без макетів і намальованих обіцянок: це інтерфейс модуля у демонстраційній адмінці.