В API V8 добавлены уведомления об удалении внешней оплаты из заказа
[v8
]
При попытке удаления внешней оплаты вызывается метод OnPaymentDeleting
у соответствующего IPaymentProcessor
.
Некоторые платёжные системы требуют проведения оплаты во внешней системе до оплаты заказа в iiko, поэтому возникает отрезок времени, когда во внешней системе оплата уже проведена, а в iiko ещё нет. Прежде пользователь мог бесследно удалить такую оплату и, поскольку в iiko эта оплата считалась непроведённой, удалялась она без отмены, что приводило к ошибочной лишней транзакции во внешней системе.
Теперь процессор оплаты в методе OnPaymentDeleting
может по своему усмотрению:
- ничего не делать — если оплата ещё не проведена и не требует никаких действий при удалении,
- отменить оплату во внешней системе,
- запретить удаление оплаты в iiko, сгенерировав одно из исключений:
PaymentActionCancelledException
— отмена удаления без дополнительных сообщений (например, если ранее плагин показывал какой-то вопрос, и пользователь выбрал отмену),PaymentActionFailedException
— запрет удаления с показом сообщения об ошибке (например, если не удалось отменить оплату во внешней системе).
Пока это работает только в случае попытки удаления с экрана оплаты. Вызов метода OnPaymentDeleting
при удалении оплаты через API (DeleteExternalPaymentItem
) будет реализован позднее.