Навигация keyboard_arrow_down

Блог Rss rss_feed

PrestaShop: Как настроить подтверждение номер телефона по SMS (часть 3)

PrestaShop: Как настроить подтверждение номер телефона по SMS (часть 3)

В завершение проделанной работы нам остаётся отправить SMS и записать успешную верификацию.

Для начала проверяем ,что это действительно номер телефона, а не пустое поле:

if (!empty(Tools::getValue('phone')) && Validate::isPhoneNumber(Tools::getValue('phone')))

Затем проведём проверку на существование в базе данных телефонного номера:

Db::getInstance()->getValue('SELECT EXISTS
(SELECT phone FROM '.DB_PREFIX.'customer
WHERE phone = '.(int)Tools::getValue('phone').')')

Как только все условия были выполнены, мы отправляем SMS и записываем сгенерированный код в cookie для дальнейшего сравнения:

image-2_3.png

Не важно каким именно Вы пользуетесь сервисом - как только отправили SMS, вводите код в поле verification_number и отправляйте на адрес /login?action=compare_code. Для этого, соответственно, нужно в методе phoneVerification() добавить проверку параметра
action=compare_code:

if (Tools::getValue('action') == 'compare_code') {

и написать нашу функцию отправки кода подтверждения:

$.ajax({
type: "POST",
headers: {"cache-control": "no-cache"},
async: true,
cache: false,
url: '/login?action=compare_code',
data:'code_verification='+$('input[name="verification_number"]').val(),
dataType: "json",

Осталось проверить код и записать, что телефон подтверждён, где именно это сделать показано ниже, на screenshot:

image-5_3.png

Записать о удачном сравнении можно, создав в таблице customer поле под названием is_verification и добавив в файл переопределения Customer.php строчку кода :

'is_verification' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),

После чего нам останется добавить в файл переопределения дополнительное поле:

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


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

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

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

Checkout

close

Избранное