For the complete documentation index, see llms.txt. This page is also available as Markdown.

Валідація customerData

Загальний опис логіки валідації

Масив customerData формується під час натискання кнопки «Оплатити» (коли передається POST-параметр alliancepay_action = create_order). Дані клієнта витягуються з глобального масиву параметрів шлюзу WHMCS $params['clientdetails'].

Потім сформований масив передається до DTO об'єкта SDK: OrderRequestDTO::fromArray($orderData).

⚠️ Особливість для розробників (Валідація в SDK): Оскільки очищення та перевірка правил валідації (max_len, pattern, stop_words) відбуваються всередині зовнішнього PHP SDK, цей шлюз WHMCS передає дані «як є» (as-is), попередньо трансформувавши лише телефон та код країни. Якщо SDK DTO викидає виняток (Exception) через невалідні дані, WHMCS перехоплює його, логує помилку через logModuleCall і виводить загальне повідомлення для користувача.

Назва поля

Тип даних

Обов'язкове

Звідки береться в WHMCS ($params['clientdetails'])

Особливості та трансформації даних перед передачею в SDK

senderCustomerId

string

Так

(string)$params['clientdetails']['userid']

Примусово приводиться до типу string. У WHMCS користувач завжди авторизований для оплати інвойсу.

senderFirstName

string

Ні

$params['clientdetails']['firstname']

Передається напряму. SDK валідує за стандартним regex та на стоп-слова.

senderLastName

string

Ні

$params['clientdetails']['lastname']

Передається напряму.

senderEmail

string

Ні

$params['clientdetails']['email']

Передається напряму.

senderCountry

string

Ні

$params['clientdetails']['countrycode']

Трансформація через бібліотеку League\ISO3166:

Двозначний код країни (наприклад, UA) конвертується у числовий код ISO (наприклад, 804) через $leagueIso3166->alpha2(). Якщо код відсутній, поле не додається в масив.

senderRegion

string

Ні

$params['clientdetails']['state']

Передається напряму (назва штату/області текстовим рядком).

senderCity

string

Ні

$params['clientdetails']['city']

Передається напряму.

senderStreet

string

Ні

$params['clientdetails']['address1']

Передається напряму.

senderAdditionalAddress

string

Ні

$params['clientdetails']['address2']

Передається напряму.

senderZipCode

string

Ні

$params['clientdetails']['postcode']

Передається напряму.

senderPhone

numeric_string

Ні

Конкатенація полів:

phonecc + phonenumber

Логіка формування: Код країни телефона (phonecc) та сам номер (phonenumber) зливаються в один рядок без розділювачів. Далі SDK валідує строку як numeric_string.

Останнє оновлення