atol-online/docs/client.md

3.5 KiB
Raw Blame History

Работа с клиентами (покупателями)

Объект покупателя инициализируется следующим образом:

$customer = new AtolOnline\Entities\Client();

У объекта покупателя могут быть указаны любые из следующих атрибутов:

  • email (тег ФФД 1008);
  • ИНН (тег ФФД 1128);
  • наименование (тег ФФД 1127);
  • номер телефона (тег ФФД 1008).

Все эти атрибуты являются необязательными.
Если указаны одновременно и email, и номер телефона, то ОФД отправит чек только на email.

Указать эти атрибуты можно двумя способами:

// 1 способ - через конструктор
$customer = new AtolOnline\Entities\Client(
    'John Doe', // наименование
    '+1/22/99*73s dsdas654 5s6', // номер телефона +122997365456
    'john@example.com', // email
    '+fasd3\qe3fs_=nac990139928czc' // номер ИНН 3399013928
);

// 2 способ - через сеттеры
$customer = (new AtolOnline\Entities\Client())
    ->setEmail('john@example.com')
    ->setInn('+fasd3\q3fs_=nac9901 3928c-c') // 3399013928
    ->setName('John Doe')
    ->setPhone('+1/22/99*73s dsdas654 5s6'); // +122997365456

// либо комбинация этих способов

Метод setEmail() проверяет входную строку на длину (до 64 символов) и валидность формата email. Выбрасывает исключения:

  • AtolEmailTooLongException (если слишком длинный email);
  • AtolEmailValidateException (если email невалиден).

Метод setInn() чистит входную строку от всех символов, кроме цифр, и проверяет длину (либо 10, либо 12 цифр). Выбрасывает исключение AtolInnWrongLengthException (если длина строка ИНН некорректна).

Метод setName() проверяет входную строку на длину (до 256 символов). Выбрасывает исключение AtolNameTooLongException (если слишком длинное наименование).

Метод setPhone() чистит входную строку от всех символов, кроме цифр и знака +, и проверяет длину (до 64 символов). Выбрасывает исключение AtolPhoneTooLongException (если слишком длинный номер телефона).

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

Получить установленные значения атрибутов можно через геттеры:

$customer->getInn();
$customer->getEmail();
$customer->getName();
$customer->getPhone();

Объект класса приводится к JSON-строке автоматически или принудительным приведением к string:

echo $customer;
$json_string = (string)$customer;

Чтобы получить те же данные в виде массива, нужно вызвать метод jsonSerialize():

$json_array = $customer->jsonSerialize();