Навигация keyboard_arrow_down

Блог Rss rss_feed

Подтверждение номера телефона по SMS (часть1)

Подтверждение номера телефона по SMS (часть1)

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

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

В целом, эта доработка весьма сложная, поэтому мы её разделим на три части и не будем привязываться к определённому сервису рассылки SMS-сообщений.

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

Распишем по пунктам логику действий:
1) Пользователь вводит телефон и нажимает на кнопку "Подтвердить"
2) Генерируем код и сохраняем cookies
3) Отправляем SMS
4) Записываем время отправки
5) Сравниваем код

Это краткое изложение нашей дальнейшей работы. Чтобы приступить к ней, Вы должны добавить поле с номером телефона в форму регистрации (мы говорили про это в материале "Добавление телефона для пользователя").

Первым делом стоит скрыть существующее поле (оно будет заполнятся динамично в зависимости от статуса подтверждения). Для этого переходим в папку
/override/classes/ и открываем файл CustomerFormatter.php. В нём, в методе
public function getFormat() вставляем скрытое поле телефона,

$format['phone'] = (new FormField)
->setName('phone')
->setType('hidden') ;

а старое переименовываем и добавляем ещё одно поле для ввода кода из SMS.

$format['phone_e'] = (new FormField)
->setName('phone_e')
->setType('text')
->setLabel(
$this->translator->trans(
'Phone', [], 'Shop.Forms.Labels'
)
)
->setRequired(false)
;
$format['verification_number'] = (new FormField)
->setName('verification_number')
->setType('text')
->setLabel(
$this->translator->trans(
'Verification', [], 'Shop.Forms.Labels'
)
)
->setRequired(false)
;

Поле "verification_number" изначально скрываем, воспользовавшись библиотекой Jquery , а именно функцией, которая будет скрывать это поле.

$('input[name="verification_number"]').parent().parent().hide();

Был ли этот пост полезен для вас?

    
На данный момент комментариев нет
close

Checkout

close

Избранное

Оцените сайт

Спасибо за отзыв👍