Валідація customerData
Загальний опис логіки валідації
Перед відправкою даних, плагін формує масив у методі prepareCustomerData(), використовуючи платіжну адресу платника (об'єкт BT — BillTo) з VirtueMart. Після цього дані передаються в сервіс ValidateCustomerData.
Назва поля
Тип даних
Обов'язкове
Макс. довжина
Джерело даних у VirtueMart (BT / Моделі)
Особливі правила валідації та фільтрації
senderCustomerId
string
Так
255
$bt->customer_number
Якщо порожнє, весь запис поля ігнорується.
senderFirstName
string
Ні
30
$bt->first_name
Регулярний вираз: Дозволені літери, цифри, дефіси, апострофи. Без спецсимволів по краях.
Не лише цифри: Блокується, якщо складається тільки з цифр.
Стоп-слова (частковий збіг):
NULL,3D SECURE,SURNAME,CARDHOLDER,UNKNOWN. Якщо знайдено, поле видаляється.
senderLastName
string
Ні
30
$bt->last_name
Аналогічно до senderFirstName (крім перевірки стоп-слів).
senderMiddleName
string
Ні
30
$bt->middle_name
Нове поле. Проходить аналогічну валідацію, як і senderLastName.
senderEmail
string
Ні
256
$bt->email
Стандартне обрізання до 256 символів.
senderCountry
string
Ні
3
$country->country_num_code
Завантажується через VmModel::getModel('country') на основі ID країни платника. Передає числовий код ISO.
senderRegion
string
Ні
255
$state->state_name
Завантажується через VmModel::getModel('state') на основі ID регіону платника.
senderCity
string
Ні
25
$bt->city
Обрізається до 25 символів, якщо довше.
senderStreet
string
Ні
35
$bt->address_1
Обрізається до 35 символів, якщо довше.
senderAdditionalAddress
string
Ні
255
$bt->address_2
Обрізається до 255 символів, якщо довше.
senderIp
ip
Ні
—
$bt->ip_address
Нова логіка: Перевіряється через PHP FILTER_VALIDATE_IP. Якщо IP невалідний — поле повністю видаляється із фінального масиву.
senderPhone
numeric_string
Ні
20
$bt->phone_1 або $bt->phone_2
Фолбек: якщо phone_1 порожній, береться phone_2. Фільтрація: Видаляються абсолютно всі нецифрові символи.
senderZipCode
string
Ні
50
$bt->zip
Обрізається до 50 символів, якщо довше.
Останнє оновлення