Документация для разработчиков
Темная тема

События платежных систем

События

СобытиеОписание и параметрыС версии
OnSalePsServiceProcessRequestBeforePaid Событие происходит если метод processRequest обработчика платёжной системы отработал без ошибок и требуется изменить статус оплаты.

Параметры
paymentОбъект оплаты.
statusСтатус (Y/N).
pay_system_idИдентификатор платёжной системы.
OnSaleGetHandlerDescription Событие происходит при получении описания платёжной системы. В обработчике события можно дополнить значения ключа CODE.

Параметры
handlerОбработчик платёжной системы.
onSalePsInitiatePaySuccessСобытие происходит в случае успешной инициализации платёжной системы. В обработчике доступен объект оплаты.

Параметры
paymentОбъект оплаты.
20.0.200
onSalePsInitiatePayErrorСобытие происходит в случае ошибки при инициализации платёжной системы. В обработчике доступен объект оплаты и массив ошибок.

Параметры
paymentОбъект оплаты.
errorsмассив ошибок полученный через getErrorMessages с объекта ServiceResult.
20.0.200

Примеры

OnSalePsServiceProcessRequestBeforePaid

use Bitrix\Main;
use Bitrix\Sale\Payment;

Main\EventManager::getInstance()->addEventHandler(
   'sale',
   'OnSalePsServiceProcessRequestBeforePaid',
   'myFunction'
);

function myFunction(Main\Event $event)
{
   /** @var Payment $payment */
   $payment = $event->getParameter('payment');

   /** @var string $status */
   $status = $event->getParameter('status');

   /** @var string $paySystemId */
   $paySystemId = $event->getParameter('pay_system_id');

   /**
    * Произвольный код
    * Например, получение платёжной системы $paySystem = $payment->getPaySystem();
    */
}

OnSaleGetHandlerDescription

use Bitrix\Main;
use Bitrix\Sale\Payment;

Main\EventManager::getInstance()->addEventHandler(
   'sale',
   'OnSaleGetHandlerDescription',
   'myFunction'
);

function myFunction(Main\Event $event)
{
   /** @var string $handler */
   $handler = $event->getParameter("handler");

   if ($handler === 'my_handler')
   {
      return array(
         'USER_COLUMNS' => array(
            "NAME" => "Пользовательское поле",
            "SORT" => 6000,
            'GROUP' => 'COLUMN_SETTINGS',
         )
      );
   }

   return array();
}

onSalePsInitiatePaySuccess

use Bitrix\Main;
use Bitrix\Sale\Payment;

Main\EventManager::getInstance()->addEventHandler(
   'sale',
   'onSalePsInitiatePaySuccess',
   'myFunction'
);

function myFunction(Main\Event $event)
{
   /** @var Payment $payment */
   $payment = $event->getParameter('payment');

   /**
    * Произвольный код
    */
}

onSalePsInitiatePayError

use Bitrix\Main;
use Bitrix\Sale\Payment;

Main\EventManager::getInstance()->addEventHandler(
   'sale',
   'onSalePsInitiatePayError',
   'myFunction'
);

function myFunction(Main\Event $event)
{
   /** @var Payment $payment */
   $payment = $event->getParameter('payment');

   /** @var array $errors массив ошибок полученный через getErrorMessages с объекта ServiceResult */
   $errors = $event->getParameter('errors');

   /**
    * Произвольный код
    */
}

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх