Сведения о безналичной транзакции в платёжных плагинах (IPaymentProcessor)
Начиная с V10Preview2, платёжный плагин, реализующий
IPaymentProcessor,
может передавать реквизиты безналичной транзакции
(BankTransactionDetails)
через
IPaymentDataContext.
Контекст передаётся в каждый из методов процессора:
Pay, ReturnPayment, EmergencyCancelPayment, PaySilently,
ReturnPaymentSilently, EmergencyCancelPaymentSilently, ReturnPaymentWithoutOrder.
Для записи используйте
SetBankTransactionDetails,
для чтения —
GetBankTransactionDetails.
Рабочие примеры для всех сценариев ФНС (Мир, МПС, СБП, MultiQR, PayQR-сервисы) —
класс BankNonCashPaymentProcessorSample
в проекте Resto.Front.Api.SamplePaymentPlugin SDK.
ReturnPaymentWithoutOrder
Важно. В сценарии частичного возврата возвратная операция не привязана к заказу. iikoFront сохраняет реквизиты в
CardOrderTransaction(transactions.db) вместе с проводкой возврата (как и при любой другой оплате) и использует их для формирования фискального чека. Методы контекста, сохраняющие данные внутри заказа (SetRollbackData,SetCustomData,SetInfoForReports,GetRollbackData,GetCustomData), недоступны — они бросаютNotSupportedException. Поддерживается толькоSetBankTransactionDetailsиGetBankTransactionDetails.
Доступ к реквизитам
Через IOrder → IPaymentItem
После проведения оплаты реквизиты доступны в
IPaymentItem.BankTransactionDetails —
это те данные, которые плагин передал через SetBankTransactionDetails.
Доступ через
IOrder.Payments:
var order = PluginContext.Operations.GetOrderById(orderId);
foreach (var payment in order.Payments)
{
var details = payment.BankTransactionDetails;
if (details == null)
continue;
PluginContext.Log.Info($"Rrn: {details.Rrn}, AuthCode: {details.AuthCode}");
}
Через ChequeTask (ФФД 1.05, 1.1, 1.2)
Для ККТ с ФФД 1.05, 1.1 или 1.2 iikoFront формирует реквизит 1235 «Сведения об оплате безналичными»
автоматически на основе BankTransactionDetails и записывает результат в
ChequeCardPayment.FiscalTags.
Для управления значениями тегов используются
BankPaymentRuExtensionKeys,
BankPaymentExtensionKeys
и константы
BankPaymentRuExtensionValues.
ChequeTask
доступен в методах
ICashRegister
и
IChequeTaskProcessor.
Пример обхода тегов — метод DoCheque класса
SampleCashRegister
в проекте Resto.Front.Api.SampleCashRegisterPlugin SDK.
Структура тегов (пример — эквайринг Мир):
CardPayment.FiscalTags
└── FiscalTag(1235) — Сведения об оплате безналичными
├── FiscalTag(1236, "1") — Признак способа оплаты: НПС
├── FiscalTag(1237, "date=2025-07-16T07:25:03+03:00&psid=22&rrn=...&mid=...&tid=...&acq=...")
└── FiscalTag(1238, "pc=1&pt=257&auth=...&bacq=...&bpay=...")