Файл возвращает анонимный класс, реализующий интерфейс Handler:
формирует дополнительные поля с информацией
/*
$Invoice - массив с данными платежной квитанции
$infopay - массив с дополнительными параметрами платежа
$more_data - массив с дополнительными полями квитанции
*/
public function prepay( array $invoice, array|bool $info, array &$more_data ): void
{
$more_data["Оплата за:"] = "покупка товара {$infopay['params']['title']}";
}
проверяет дополнительные параметры (может изменять их) перед совершением платежа и оказанием услуги
в случаи ошибки - вызывает исключение
/*
$Invoice - массив с данными платежной квитанции
&$infopay - массив с дополнительными параметрами платежа
*/
public function prepay_check( array $invoice, array|bool &$info ) : void
{
if( ! $infopay['params']['post_id'] )
{
throw new Exception("Товар не найден");
}
}
возвращает массив с описанием платежа для истории движения средств
должен вернуть: [string 'Описание платежа', {ID}]
/*
$infopay - массив с дополнительными параметрами платежа
*/
public function desc(array $info = []) : array
{
return [
'Оплата услуги',
$infopay['params']['post_id']
];
}
процесс оплаты заказа, выполняется перед списанием средств, но после всех проверок
/*
$Invoice - массив с данными платежной квитанции
$API - экземпляр [api класса](https://dle-billing.ru/doc/api)
*/
public function pay(array $Invoice, API $API) : bool
{
$API->db->query(Предоставить оплаченную услугу);
return true;
}