Advertisement
  1. Code
  2. PHP
Code

Как да Верифицирате Телефонен Номер чрез SMS

by
Difficulty:IntermediateLength:ShortLanguages:

Bulgarian (Български) translation by Radoslav Ivanov (you can also view the original English article)

Final product image
What You'll Be Creating

Въведение

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

Преди да започнем, искам да ви насърча да публикувате въпроси и обратна връзка в коментарите. Ако искате да сте информирани за бъдещи мои Envato Tuts+ уроци и други поредици от уроци, моля, посетете страницата ми като инструктор или ме последвайте на @lookahead_io.

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

След като потребителят ни предостави неговия телефонен номер, ние искаме да изпълним няколко прости стъпки:

  • Генериране на уникален четирицифрен код.
  • Записваме неговия телефонен номер и четирицифрения код в нашата база данни (или криптираме кода локално, и го поставяме като променлива в скрито поле във формата на страницата).
  • Изпращаме SMS до неверифицирания номер с четирицифрения код.
  • Визуализираме форма, в която потребителя трябва да напише кода, който е получил.
  • Проверяваме дали кодовете съвпадат.
  • Обозначаваме телефония номер като верифициран в базата данни.

Контактната Страница на Потребителя

В Meeting Planner, всеки потребител може да добави няколко метода за контакт, например Skype, телефон и т.н. Всеки телефонен номер трябва да бъде верифициран, за да използва SMS нотификации.

Третият ред по-долу показва чекбокс, където потребителите могат да кликнат, за да подадат заявка за верификация:

How to Verify a Phone Number via SMS - Contacts list

Кликването прехвърля потребителя към actionVerify()контролера по-долу; имайте предвид, че това ги отвежда до else блока първоначално, защото все още не са изпратили кода:

Методът canRequest() проверява дали са искали кодове многократно или прекалено често:

Направил съм така, че трябва да изчакат една минута между опитите, за да намаля злоупотребите.

Предаваме Кода за Верификация

Ако е позволено, извиква requestCode() :

Това прави следното:

  • Генерира произволeн четири цифрен код.
  • Това записва последния момент във времето (unix секунди), в което е направено искането за проверка.
  • Това увеличава стойноста на опитите за проверка на този номер.
  • И записва всичко това в базата данни.
  • След това го изпраща като SMS с кода, който прилича на изображението по-долу.
How to Verify a Phone Number via SMS - Text message with verification code

След искането на кода, записването в базата данни и изпращането на кода до потребителя, зареждаме следната форма, в която искаме четирицифрения код:

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

Верифициране на Кода

Когато потребителят се опита да изпрати код, той работи в горната част на actionVerify():

Това проверява, дали кодовете съвпадат. Ако съвпадат, базата данни се актуализира и номера се отбелязва като верифициран. И това казва на потребителя:

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

Ако не, се визуализира съобщение за грешка:

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

Пробвайте го Сами

Ако искате да видите това в действие, можете да се регистрирате в Simple Planner или Meeting Planner (което е лесно със социален профил от Facebook или Google) и да добавите телефонен номер. След това кликнете върху отметката в списъка, който ще видите. Това е всичко.

Обобщение

Очевидно, ако приложението ви изпраща множество текстови съобщения, това би бил един забележителен разход за бизнеса ви и поради тази причина бихте желали да ограничите злоупотребите. Това започва с изграждането на защитна стена срещу невалидните номера - или валидни, но всъщност не притежавани от измамника.

Надявам се сте намерили това за полезно. Ако имате някакви въпроси или предложения, моля публикувайте ги в коментарите. Ако искате да сте информирани за бъдещи мои 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.