Обновлено 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');
}
}