4.6 KiB
Работа с оплатами
Один объект
Объект оплаты инициализируется следующим образом:
$payment = new AtolOnline\Entities\Payment();
У объекта оплаты должны быть указаны все следующие атрибуты:
- тип оплаты (теги ФФД: 1031, 1081, 1215, 1216, 1217) - все типы перечислены в классе
AtolOnline\Constants\PaymentTypes
(по умолчаниюELECTRON
) - сумма оплаты (теги ФФД: 1031, 1081, 1215, 1216, 1217; по умолчанию 0)
Все эти атрибуты являются обязательными.
Установить атрибуты можно следующими способами:
// 1 способ - через конструктор
$payment = new AtolOnline\Entities\Payment(
AtolOnline\Constants\PaymentTypes::OTHER, // тип оплаты
123.45 // сумма оплаты
);
// 2 способ - через сеттер
$payment = (new AtolOnline\Entities\Payment())
->setType(AtolOnline\Constants\PaymentTypes::OTHER) // тип оплаты
->setSum(123.45); // сумма оплаты
Размер налога высчитывается автоматически из общей суммы. Сумму, от которой нужно расчитать размер налога, можно передать следующими способами:
// 1 способ - через конструктор
$payment = new AtolOnline\Entities\Payment(
AtolOnline\Constants\PaymentTypes::CASH, // тип оплаты
1234.56 // сумма оплаты в рублях
);
// 2 способ - через сеттер
$payment = (new AtolOnline\Entities\Payment())
->setType(AtolOnline\Constants\PaymentTypes::CASH) // тип оплаты
->setSum(1234.56); // сумма оплаты в рублях
Получить установленную сумму оплаты в рублях можно через геттер getSum()
:
var_dump($payment->getSum());
Объект класса приводится к JSON-строке автоматически или принудительным приведением к string
:
echo $payment;
$json_string = (string)$payment;
Чтобы получить те же данные в виде массива, нужно вызвать метод jsonSerialize()
:
$json_array = $payment->jsonSerialize();
Массив объектов оплат
Максимальное количество объектов в массиве - 10.
Массив инициализируется следующим образом:
$payment_array = new AtolOnline\Entities\PaymentArray();
Чтобы задать содержимое массива, используйте метод set()
:
use AtolOnline\{Constants\PaymentTypes, Entities\Payment};
$payment_array->set([
new Payment(PaymentTypes::ELECTRON, 123),
new Payment(PaymentTypes::ELECTRON, 53.2),
new Payment(PaymentTypes::ELECTRON, 23.99),
new Payment(PaymentTypes::ELECTRON, 11.43)
]);
Очистить его можно передачей в сеттер пустого массива:
$payment_array->set([]);
Чтобы добавить объект к существующим элементам массива, используйте метод add()
:
use AtolOnline\{Constants\PaymentTypes, Entities\Payment};
$payment = new Payment(PaymentTypes::PRE_PAID, 20);
$payment_array->add($payment);
Методы set()
и add()
проверяют количество элементов в массиве перед его обновлением.
Выбрасывают исключение AtolTooManyPaymentsException
(если в массиве уже максимальное количество объектов).
Чтобы получить содержимое массива, используйте метод get()
:
$payment_array->get();
Объект класса приводится к JSON-строке автоматически или принудительным приведением к string
:
echo $payment_array;
$json_string = (string)$payment_array;
Чтобы получить те же данные в виде массива, нужно вызвать метод jsonSerialize()
:
$json_array = $payment_array->jsonSerialize();