handler.pay.php

Файл возвращает анонимный класс, реализующий интерфейс Handler:

prepay( ... )

формирует дополнительные поля с информацией

/*
   $Invoice - массив с данными платежной квитанции
   $infopay - массив с дополнительными параметрами платежа
   $more_data - массив с дополнительными полями квитанции 
*/
public function prepay( array $invoice, array|bool $info, array &$more_data ): void
{
       $more_data["Оплата за:"] = "покупка товара {$infopay['params']['title']}";
}
prepay_check( ... )

проверяет дополнительные параметры (может изменять их) перед совершением платежа и оказанием услуги
в случаи ошибки - вызывает исключение

/*
   $Invoice - массив с данными платежной квитанции
   &$infopay - массив с дополнительными параметрами платежа
*/
public function prepay_check( array $invoice, array|bool &$info ) : void
{
        if( ! $infopay['params']['post_id'] )
        {
            throw new Exception("Товар не найден");
        }
}
desc( ... )

возвращает массив с описанием платежа для истории движения средств
должен вернуть: [string 'Описание платежа', {ID}]

/*
   $infopay - массив с дополнительными параметрами платежа
*/
public function desc(array $info = []) : array
{
  return [
            'Оплата услуги',
            $infopay['params']['post_id']
        ];
}
pay( ... )

процесс оплаты заказа, выполняется перед списанием средств, но после всех проверок

/*
   $Invoice - массив с данными платежной квитанции
   $API - экземпляр [api класса](https://dle-billing.ru/doc/api)
*/
public function pay(array $Invoice, API $API) : bool
{
  $API->db->query(Предоставить оплаченную услугу);

    return true;
}