Обновлено 16.12.2023

Вызывается после формирования массива чека. Позволяет изменить данные позиций, маркировки и других значений. Если обработчик события вернёт ошибочный результат, то чек передан в банк не будет.

Параметры

  • объект заказа \Bitrix\Sale\Order
  • массив полей чека, идентичный полю 'Receipt' при инициализации платежа в описании апи
  • массив параметров платежной системы, на основе которых был сформирован чек

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

Заменяем все позиции на одну общую.

$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('rover.tinkoff', 'afterBuildReceipt', array('RoverReceipt', 'fix'));

class RoverReceipt
{
    /**
     * @param \Bitrix\Main\Event $event
     * @return \Bitrix\Main\EventResult
     */
    function fix(Bitrix\Main\Event $event)
    {
        /** @var \Bitrix\Sale\Order $order */
        $parameters = $event->getParameters();
        $order      = $parameters[0];
        $fields     = $parameters[1];
        $items      = $fields['Items'];

        $fields['Items'] =  [
            [
                'Name'      => 'Гайки и болты',
                'Price'     => $order->getPrice() * 100,
                'Quantity'  => 1,
                'Amount'    => $order->getPrice() * 100,
                'Tax'       => $items[0]['Tax']
            ]
        ];

        $parameters[1] = $fields;

        return new Bitrix\Main\EventResult(Bitrix\Main\EventResult::SUCCESS, $parameters, 'rover.tinkoff');
    }
}