В 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
.