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

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

В целом, эта доработка весьма сложная, поэтому мы её разделим на три части и не будем привязываться к определённому сервису рассылки 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();

На этом мы останавливаем совою работу в рамках первой части и переходим к следующему этапу.

В случаях, если у Вас возникла проблема или появились некоторые сложности, Вы всегда сможете обратиться к специалисту.