C:\Users\Елена\Documents\План\SMS-Ассистент\Исходники\Лого и конверты\Otpiska.jpg

Форма для подтверждения номера телефона

Для подтверждения номера мобильного телефона посетителя сайта, например, для активации новой учетной записи на сайте, или при оставлении комментария, можно использовать подтверждение номера телефона с помощью SMS-кода.

СКАЧАТЬ МОДУЛЬ ДЛЯ ПОДТВЕРЖДЕНИЯ НОМЕРА ТЕЛЕФОНА

Описание принципа действия

  1. Пользователь вводит свой номер мобильного телефона.
  2. Нажимает кнопку [Выслать код].
  3. В этот момент генерируется код, состоящий из 5 цифр, который отправляется в виде SMS-сообщения через сервис www.sms-assistent.by на указанный номер мобильного телефона. Код генерируется безопасно, в браузере не хранится, поэтому его не могут подсмотреть злоумышленники.
  4. Пользователь вводит код, нажимает [Подтвердить].
  5. Происходит сверка введённого кода с отправленным. Если код верен, телефон считается идентифицированным (подтверждённым). Вы получаете результат проверки, и можете дальше разрешать пользователю совершать те или иные действия (оставить комментарий, зарегистрироваться и т.д.).

Возможности предлагаемого готового решения

  1. Готовая HTML-форма

для вставки на свой интернет-ресурс. Стили формы вынесены в отдельный файл, что позволяет легко редактировать их под себя.

  1. Ввод телефонного номера абонентов Республики Беларусь в любом формате:

81037529xxxxxxx

375029xxxxxxx

37529xxxxxxx

+37529xxxxxxx

8029xxxxxxx

029xxxxxxx

29xxxxxxx

* xxxxxxx — семизначный номер абонента. Вместо кода 29 возможны другие коды мобильных операторов РБ (33, 44, 25).

Все другие символы, кроме цифр, не учитываются.

  1. Автоматическая проверка на правильность номера телефона

после ввода номера в форму. Учитывается корректность длины номера, принадлежность диапазонам мобильных операторов Республики Беларусь. Городские номера, короткие/длинные, не существующие в номерном фонде операторов, будут признаны некорректными, благодаря чему, отправка SMS на такие номера происходить не будет. Телефоны других стран проверяются на принадлежность стране, некоторые проверяются на диапазоны операторов.[1] 

  1. Возможность в тексте SMS добавить к коду подтверждения свой текст,

например, адрес своего сайта или другую дополнительную информацию.

  1. Результат ввода данных отображается на экране − у пользователя будет “обратная связь” после выполнения своих действий.
  2. Лимит отправляемых SMS с одной формы на один и тот же номер телефона. По умолчанию установлен на 5 SMS за 60 минут. Вы сможете самостоятельно регулировать это значение[2].
  3. Лимит времени, отведённый на ввод кода из SMS. По умолчанию установлен на 5 минут.
    Вы сможете самостоятельно регулировать это значение
    2.
  4. Очистка данных, введённых в форму после успешного подтверждения номера телефона.
  5. Результат подтверждения номера телефона в виде “Ok + номер телефона”. В случае подтверждения номера телефона, в ответ вам возвращается статус “Оk” и  непосредственно сам номер телефона, который вы можете записывать в свою базу данных для хранения информации о пользователе.
  6. Встроенный обработчик результатов проверки позволяет вам производить дальнейшие действия с пользователем (разрешить оставить комментарий, получить доступ к ресурсу, скачать файл и т.д.).

Прежде чем начать

  1. Зарегистрируйтесь!

Вам необходимо быть зарегистрированным пользователем сервиса SMS-ассистент (только для ИП и юридических лиц Республики Беларусь). Для этого вы можете зарегистрироваться на демо-версию или получить полный доступ.

  1. Подключите API в Личном кабинете

!

Если вы не активируете API в разделе «SMS-рассылка → Рассылка по API», то в ответ на запрос вам будет возвращаться ошибка «−10».

Если вы не сгенерируете персональный пароль для API, то в ответ на запрос вам будет возвращаться ошибка «−2». Если после подключения вы всё равно получаете эту ошибку, то воспользуйтесь рекомендациями по самостоятельному анализу ошибки.

  1. Сохраните ваши персональные данные

  • Логин – название аккаунта для входа (отправлялся вам на телефон в виде SMS).
  • Пароль – персональный пароль для API (генерируется на предыдущем шаге).

Если вы забыли ваш логин, то вы можете его восстановить. Для этого на странице авторизации в программу воспользуйтесь опцией «Забыли логин и/или пароль?». Введите ваш e-mail и УНП. На телефонный номер, указанный при регистрации, придёт SMS с логином и новым паролем для входа в личный кабинет.

Если вы забыли пароль для API, то после входа в аккаунт, на странице «SMS-рассылка →  Рассылка по API» сгенерируйте новый персональный пароль для API (описано на предыдущем шаге).

Обратите особое внимание: этот новый сгенерированный пароль вам необходимо будет вводить в настройки формы для подтверждения номера телефона.

  1. Проверьте регистрацию вашего имени отправителя (альфа-имени)

Имя отправителя SMS – это замена номера телефона, от которого вашим клиентам будут приходить SMS. При получении SMS они увидят не номер телефона, а, например, название вашей компании, что позволит им сразу понять от кого пришло сообщение.

Доступны для использования только те ваши имена отправителей, которые имеют статус модерации «Промодерирован» и статус регистрации у операторов «Зарегистрирован».

Посмотреть список доступных вам имен отправителя можно в личном кабинете SMS-ассистента в разделе «Мои настройки» → вкладка «Отправитель». Здесь вы также увидите их статус модерации и регистрации:

!

На демо-доступе или до момента регистрации вашего имени отправителя у операторов (на полном доступе), вы можете отправлять только 20 тестовых SMS в день с тестовым именем отправителя TEST-assist. При этом в текст SMS будет автоматически добавлена фраза TEST SMS

Подключение формы

  1. Сохраните модуль для подтверждения номера телефона

Скачайте архив с модулем к себе на компьютер. Распакуйте его.

  1. Впишите свои данные

  1. Перейдите в папку lib/sms-assistent.by/conf/
  2. Откройте файл sms_assistent.conf.php в программе “Блокнот”:

В параметрах, отмеченных красным, нужно заменить исходный текст, обязательно оставив ‘апострофы с двух сторон’ вокруг него, а затем сохранить файл:

Параметр

Исходный текст

На что нужно заменить

API_USERNAME

Имя пользователя*

На ваш логин, для доступа в Личный кабинет. Регистр букв (большие/маленькие) имеет значение.

API_PASSWORD

Пароль к API*

На ваш пароль, для API, который вы получаете при в момент подключения API (см. “Перед тем как начать. 2 Подключите API в Личном кабинете”) . Регистр букв (большие/маленькие) имеет значение.

API_SENDER

ОТПРАВИТЕЛЬ*

На ваше имя отправителя в SMS (подпись SMS), которое доступно для отправки SMS. Регистр букв (большие/маленькие) имеет значение.

SMS_TEXT

по умолчанию не указан

Если ничего не заполнять, то будет отправлен только код, состоящий из 5-ти цифр. Как дополнительно к коду вставить свой текст SMS смотрите здесь.

* обязательные параметры

  1. Вставьте форму на сайт

  1. На сервере, на котором расположен ваш сайт, или в административной панели сайта, откройте папку, в которой содержится файл со страницей сайта, на которую нужно вставить форму с кодом подтверждения.
  2. Скопируйте в эту папку из папки с модулем, которая расположена на вашем компьютере, папку lib.
  3. На компьютере в папке с модулем откройте файл index.html в программе “Блокнот” и скопируйте всё его содержимое.
  4. На сервере, на котором расположен сайт, или в административной панели сайта откройте для редактирования файл со страницей сайта, на которую нужно вставить форму с кодом подтверждения.
  5. Вставьте в нужное вам место скопированное содержимое файла index.html и сохраните этот файл.
  6. Откройте в браузере страницу сайта, на которую вы вставляли форму, обновите её (F5 на клавиатуре) – форма должна появиться на экране.
  7. Проверьте работу формы:
  • введите свой номер телефона, нажмите [Выслать код]. На экране должно отобразиться сообщение: Сообщение успешно отправлено
  • проверьте телефон – на него должна прийти SMS. Введите полученный код в поле “Код из SMS” и нажмите [Подтвердить]. Должно появиться сообщение Номер телефона ХХХХХХХХХХХ успешно подтвержден.

Если вместо этих сообщений будут появляться другие, то причину их появления посмотрите здесь и исправьте ошибки.

  1. Если всё работает, осталось только добавить собственные действия после подтверждения номера телефона. Это делается на вашей стороне.

Добавление собственных последующих действий после успешного/неуспешного подтверждения номера телефона

Например, вы хотите после успешного подтверждения номера телефона разрешить пользователю оставить комментарий или зарегистрироваться.

Вам необходимо на сервере, на котором расположен сайт, в папке lib:

  • Вариант 1. Открыть файл sms-assistent.by-1.1.js (полный путь к файлу lib/sms-assistent.by/js/sms-assistent.by-1.1.js) и найти в нём места для вставки своего кода. Они помечены комментариями:

// Проверка успешно пройдена, место для вставки кода

// Проверка не пройдена, место для вставки кода

И вставить javascript, jquery запрос.

  • Вариант 2. Открыть файл sms-assistent.by.back.php (полный путь к файлу lib/sms-assistent.by/sms-assistent.by.back.php) и после строчек:

$request_data['tel'] = $result['result'];

$request_data['message'] = 'Номер телефона '.$result['result'].' успешно подтвержден.';

$request_data['check_result'] = 1;

вставить свой php-код, который необходимо выполнить, когда номер телефона успешно подтвержден.

Вывод результатов действий пользователя

После нажатия кнопки [Выслать код]

В зависимости от результата, пользователю на экране отображается следующая информация:

Отображаемая информация

Описание и код ошибки

Некорректное значение номера получателя

Появляется при вводе некорректного номера телефона. Ошибка “-4”.

Сообщение успешно отправлено

Номер телефона введён корректно, SMS отправлено на введённый номер телефона

Невозможно отправить SMS, обратитесь к владельцу интернет-ресурса

Выводится при всех остальных неописанных здесь ошибках на стороне владельца интернет-ресурса.

Превышено разрешенное количество проверок по одному номеру телефона

Проверяется количество отправок SMS на один и тот же номер телефона в пределах одного интернет-ресурса, на котором установлена форма. Лимит установлен на 5 SMS в течение 60 минут. Ошибка “-21”.

После нажатия кнопки [Подтвердить]

В зависимости от результата, пользователю на экране отображается следующая информация:

Отображаемая информация

Описание и код ошибки

Введённый код неверен. Введите правильный код или отправьте еще одно SMS и повторите ввод кода.

При несовпадении отправленного SMS-кой кода с введённым или по истечении установленного лимита времени. Ошибка “-23”.

Номер телефона ХХХХХХХХХХХ успешно подтвержден.

При совпадении введённого и отправленного кода в SMS.

Невозможно выполнить подтверждение, обратитесь к владельцу интернет-ресурса

Выводится при всех остальных неописанных здесь ошибках на стороне владельца интернет-ресурса.

Информация для тех, кто хочет изменить форму под себя

  1. Описание содержимого архива

Архив содержит следующие файлы:

  1. index.html – основной файл, в котором расположен HTML-код формы для подтверждения номера телефона.
  2. lib/sms-assistent.by/conf/sms_assistent.conf.php – настройка подключения к sms-assistent.by.
  3. lib/sms-assistent.by/css/page-1.1.css – общий файл стилей для страницы.
  4. lib/sms-assistent.by/css/sms-assistent.by-1.1.css – файл стилей непосредственно формы подтверждения номера телефона.
  5. lib/sms-assistent.by/js/jquery-1.7.1.min.js – библиотека jQuery.
  6. lib/sms-assistent.by/js/sms-assistent.by-1.1.js – обработчик javascript событий (нажатия на кнопки).
  7. lib/sms-assistent.by/sms_assistent.lib.php – библиотека для интеграции с sms-assistent.by (файл, в котором прописаны функции, необходимые для работы механизма подтверждения номера телефона).
  8. lib/sms-assistent.by/sms-assistent.by.back.php – обработчик php-событий (выполнение действий из библиотеки интеграции с sms-assistent.by п.7 на основании запроса из обработчика javascript п.6).
  1. Описание кода в файле index.html

  1. Строка <script type="text/javascript" src="lib/sms-assistent.by/js/jquery-1.7.1.min.js"></script>

Подключение файлов javascript. Jquery для отправки Ajax запроса. Если подключена у вас, то можно удалить.

  1. Строка <script type="text/javascript" src="lib/sms-assistent.by/js/sms-assistent.by-1.1.js"></script>

Это вызов обработчика нажатий на кнопки и отправки Ajax запросов. Необходим в том случае, если нужно что-то сделать после подтверждения номера телефона.

  1. Строка <link type="text/css" rel="stylesheet" href="lib/sms-assistent.by/css/page-1.1.css"> 

Подключение общего файла стилей для страницы. Использовать необязательно.

  1. Строка <link type="text/css" rel="stylesheet" href="lib/sms-assistent.by/css/sms-assistent.by-1.1.css">

Подключение файла со стилями, которые используются непосредственно в форме.

  1. Код формы подтверждения номера телефона

Фундаментально важный HTML-код, который менять нежелательно, выделен красным.

<form>

<input type="hidden" name="check_hash" id="check_hash" value="">

<div class="smsassistent-formdesc">Введите номер вашего мобильного телефона, на него будет отправлен SMS-код, который в течение 5 минут необходимо ввести в форму ниже. <br> Количество отправок SMS на один и тот же номер телефона ограничено.</div>

<div class="smsassistent-messages" id="check_messages"></div>

<div class="smsassistent-row">

<div class="smsassistent-rowtitle">Ваш телефон</div>

<div class="smsassistent-rowvalue"><input type="text" name="check_telephone" id="check_telephone"></div>

<div class="smsassistent-rowbutton"><input type="button" name="but_check_telephone" id="but_check_telephone" value="Выслать код"></div>

<div class="smsassistent-separator"></div>

</div>

<div class="smsassistent-row">

<div class="smsassistent-rowtitle">Код из SMS</div>

<div class="smsassistent-rowvalue"><input type="text" name="check_code" id="check_code"></div>

<div class="smsassistent-rowbutton"><input type="button" name="but_check_code" id="but_check_code" value="Подтвердить"></div>

<div class="smsassistent-separator"></div>

<div class="smsassistent-messages" id="check_messages"></div>

        </div>

</form>

  1. Настройка текста SMS

По умолчанию в SMS отправляется только код, состоящий из 5-ти цифр. Если, помимо кода, вам необходимо добавить свой текст SMS, то сделать вы это можете в файле lib/sms-assistent.by/conf/sms_assistent.conf.php. В этом файле в параметре define('SMS_TEXT',' '); между апострофами ' ' нужно вставить свой текст SMS.

Вариант по умолчанию

В параметре define('SMS_TEXT',' '); между апострофами ' ' ничего не введено.

В файле:

На телефоне будет SMS, содержащее только код из 5-ти цифр:

Вариант использования вставки только текста (код подтверждения автоматически вставляется в конец текста SMS)

Вы можете добавить свой текст в SMS, и тогда вставка кода подтверждения произойдёт автоматически в конец текста сообщения. Текст сообщения должен быть длиной не более 1 SMS. Поэтому, с учётом автоматической вставки кода (5 символов), вы можете вписать текст длиной 65 символов по-русски или 155 символов латиницей. В параметре define('SMS_TEXT',' '); между апострофами введено: Ваш код подтверждения на сайте www.sms-assistent.by:

В файле необходимо вставить:

В этом случае код подтверждения, состоящий из 5-ти цифр, автоматически вставляется в конец текста SMS:

Вариант использования вставки своего текста и кода подтверждения в любое место текста

Вы можете добавить код подтверждения в любое место текста SMS, используя для этого специальную вставку тега {KOD}. Текст сообщения должен быть длиной не более 1 SMS, поэтому вы можете добавить текст длиной 70 символов по-русски или 160 символов латиницей. В примере, в параметре define('SMS_TEXT',' '); между апострофами введено: Ваш код подтверждения {KOD}, введите его в поле “Код из SMS”.

В файле необходимо вставить:

На телефоне в SMS вместо тега {KOD} будет вставлен код подтверждения, состоящий из 5-ти цифр:

  1. Изменение предустановленных лимитов

По умолчанию установлены следующие лимиты:

  • Лимит на отправку SMS одному и тому же абоненту с одной и той же формы (5 SMS в течение 60 минут).
  • Лимит на количество минут, отведённое для ввода кода подтверждения в форму.

Изменить эти лимиты можно в вашем Личном кабинете сервиса SMS-ассистент.[3]

  1. Важные замечания

  1. При изменении расположения файлов CSS

Вам необходимо изменить в коде из файла index.html информацию в следующих строках (указать новый путь к этим файлам):

<link type="text/css" rel="stylesheet" href="lib/sms-assistent.by/css/page-1.1.css">

<link type="text/css" rel="stylesheet" href="lib/sms-assistent.by/css/sms-assistent.by-1.1.css">

  1. При изменении расположения файлов js

Вам необходимо изменить в коде из файла index.html информацию в следующих строках (указать новый путь к этим файлам):

<script type="text/javascript" src="lib/sms-assistent.by/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="lib/sms-assistent.by/js/sms-assistent.by-1.1.js"></script>

  1. Файлы sms-assistent.by.back.php, sms_assistent.lib.php и папку conf (вместе с содержимым) перемещать вместе

В случае переноса файлов, необходимо в 2-х местах в файле sms-assistent.by-1.1.js изменить следующую строку (указать новый путь к этим файлам):

url: 'lib/sms-assistent.by/sms-assistent.by.back.php',



www.sms-assistent.by                                                       
support@sms-assistent.by


[1] По умолчанию включена отправка SMS только абонентам Республики Беларусь. При попытке отправки SMS в другие страны, пользователю будет отображаться ошибка “Некорректное значение номера получателя“. Для отправки SMS в другие страны вам необходимо подключить эти страны в вашем личном кабинете SMS-ассистента в разделе “Мои тарифы”.

[2] Реализация самостоятельной регулировки в личном кабинете планируется при следующем обновлении.

[3] Планируется при следующем обновлении.