Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Как подтвердить мобильный телефон через SMS

by
Read Time:4 minsLanguages:

Russian (Pусский) translation by Олег Шабалин (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

Вступление

В предыдущем епизоде, я писал о подготовке вашего приложение к SMS используя Twilio, широко-распрастраненый сервис SMS. В сегоднешнем туториале я вам покажу как подтвердить номер мобильного телефона пользователя, перед тем как отправлять большие объемы текста, которые быстро превысят ваши затраты.

Перед тем как мы начнем, мне хотелось бы попросить вас оставлять ваши вопросы и отзывы в коментариях. Если вы хотели что-бы я продолжил свое будущее на Envato Tuts+, писав туториалы и другие серии, пожалуйста посетите мою страницу иструктора или подпишитесь на @lookahead_io.

Описание Процесса

После того, как пользователь введет свой мобильный номер, нам нужно будет произвести немного действий:

  • Генерирование униклаьного 4-х циферного кода.
  • Сохранение их мобильного номера и 4-х циферного кода в базе данных ( или зашифровать код в локальном хранилище как скрытую переменную формы на странице )
  • Отправить SMS не проверенному номеру с 4-х символьным кодом.
  • Отобразить форму, запрашивающию код, который они получили.
  • Проверить совпадение кода.
  • Обозначить номер как "проверенный" в базе данных.

Страница контактов пользователя.

В Meeting Planner, каждый пользователь может добавлять несколько котнактных данных, например Skpye, телефон и т.д. Каждый мобильный номер должен быть проверен перед использование SMS оповещений.

Третья строка снизу показывает чекбокс, который пользователь может нажать что-бы запросить проверку.

How to Verify a Phone Number via SMS - Contacts listHow to Verify a Phone Number via SMS - Contacts listHow to Verify a Phone Number via SMS - Contacts list

При нажатии, пользователь попадает на actionVerify() контроллер снизу; заметьте, что сначало это переносит их на else блок, так-как код не был сначала отправлен.

Метод canRequest() проверяет запрашивает-ли пользователь код слишком часто или нет

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

Передача кода подтверждения.

Если это разрешено, он вызывет requestCode()

Это делает следующие:

  • Генерирует рандомный 4-х чисельный код.
  • Записывает момент времени в Unix секундах, когда данный запрос был сделан.
  • Увеличивает на 1 количество попыток проверки для данного номера.
  • И сохраняет это все в базе данных.
  • После чего он отправляет код в SMS сообщении, которое выглядит как на картинку снизу.
How to Verify a Phone Number via SMS - Text message with verification codeHow to Verify a Phone Number via SMS - Text message with verification codeHow to Verify a Phone Number via SMS - Text message with verification code

После запроса кода, сохраненяя его в базе данных и отправляя пользователю, он загружает форму, запрашивая этот код:

How to Verify a Phone Number via SMS - Verify Contact Form requesting codeHow to Verify a Phone Number via SMS - Verify Contact Form requesting codeHow to Verify a Phone Number via SMS - Verify Contact Form requesting code

Проверка Кода

Когда пользователь пытается отправить код, ему возвращается верхняя часть actionVerify():

Он проверяет чтоб коды совпадали. Если они совпадают, он обновляет базу данных чтобы пометить мобильный номер как проверенный. И он сообщает пользователю:

How to Verify a Phone Number via SMS - Successful confirmation noticeHow to Verify a Phone Number via SMS - Successful confirmation noticeHow to Verify a Phone Number via SMS - Successful confirmation notice

Если не совпадает, он отображает сообщение об ошибке:

How to Verify a Phone Number via SMS - Error try again after a minuteHow to Verify a Phone Number via SMS - Error try again after a minuteHow to Verify a Phone Number via SMS - Error try again after a minute

Попробуйте Сами

Если вы хотите увидить это в действии, вы можете зарегестрироваться на Simple Planner или Meeting Planner ( который дружит с социальными сетями типо Facebook или Google ) и добавить мобильный номер. После чего нажать на чекбокс в данном списке.

Итоги

Очевидно, если ваше приложение отправляет много SMS сообщений, это довольно сильно ударит по вашему бюджету бизнесса. Вам нужно максимально ограничить злоупотрибление, например настроить файерволл против не правильных номеров или номеров не прнадлежащих imposer, но которыми не владеет пользователь

Я надеюсь вы нашли данный туториал полезным. Если у вас есть вопросы или предложения, пожалуйста оставте их в коментариях. Если вы хотите следить за моим будующим на Envato Tuts+ туториалов и других серий, пожалуйста поситите мою страницу инструктора или подпишитесь на @lookahead_io. Вам также определенно стоит посмотреть мою серию Стартапов и Meeting Planner.

Ссылке по теме

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.