Фискализация платежей

Содержание...

В Webasyst используется системный механизм контроля фискализации платежей — для регистрации отправки информации чека об оплате. Это нужно для того, чтобы такие данные не отправлялись повторно (например, несколькими разными плагинами).

Расскажем, как использовать этот механизм в приложениях и плагинах.

Приложения

В приложении, позволяющем принимать платежи, должен быть реализован PHP-класс, наследующий системный класс waAppPayment, с именем вида [app_id]Payment. В этом классе нужно переопределить метод declareFiscalization() и реализовать в нём централизованное хранение информации об отправке данных фискализации. Способ и формат хранения этих данных могут быть любыми на ваше усмотрение.

public function declareFiscalization ($order_id, waPayment $plugin, array $custom_data = null)

Параметры

  • $order_id

    Идентификатор заказа или счёта, оплата которого получена от клиента.

  • $plugin

    Экземпляр основного класса платёжного плагина, чей способ оплаты использовался для получения платежа.

  • $custom_data

    Дополнительные данные о платеже, предоставленные плагином, выполнившим фискализацию.

Плагины

Фискализацию платежей могут выполнять разные виды плагинов:

  • платёжные плагины,
  • плагины приложений.

Фискализация платёжными плагинами

Для уведомления о выполненной фискализации платёжный плагин должен вызвать метод $this->getAdapter()->declareFiscalization() — при этом сработает метод declareFiscalization(), переопределённый в PHP-классе приложения, как описано выше.

Фискализация плагинами приложения

Для уведомления о выполненной фискализации плагин приложения должен использовать инструменты, предоставленные приложением. Например, в плагине для Shop-Script (начиная с версии 11) нужно использовать класс shopFiscalization.