После долгого дебага и танцев с бубном, вернул код обработчика в исходное состояние и всё заработало. Вообще не понял как это дело пофиксилось.
Возвраты по факту работают даже если они не настроены на странице "Настройки возвратов" в админке. Как я понял, имплементация методов интерфейса IRefundExtended используется, если возвраты как-то нужно тюнить и настраивать под себя (как в примере с обработчиком yandex - они там какие-то сертификаты загружают), но у меня была простая логика с запросом в банк, поэтому интерфейса IRefund и его метода refund хватило.
В итоге реализация следующего вида получилась:
namespace Sale\Handlers\PaySystem;
class BCCHandler extends PaySystem\ServiceHandler implements PaySystem\IRefund
{
// стандартные методы для оплаты...
/**
* Обработчик возврата в админ-панели
* @param Payment $payment
* @param $refundableSum
* @return PaySystem\ServiceResult
*/
public function refund(Payment $payment, $refundableSum)
{
$result = new PaySystem\ServiceResult();
// логика возврата....
return $result;
}
}
На странице "Настройки возвратов" моя платёжка не светится, но для решения моей задачи оказалось, что это и не требуется.
PetrPo, а что вы имели ввиду под "если возврат настроен правильно". Вижу рядом с "Платёжными системами" в админке раздел "Настройка возвратов", но там пусто. В документации написано "запись на странице появляется в том случае, если обработчик платежной системы поддерживает настройку возврата и для него выполнены настройки подключения" - но как эти настройки выполнить и где они вообще выполняются не нашёл. Не подскажете куда посмотреть / почитать о настройке возвратов?
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Возвраты по факту работают даже если они не настроены на странице "Настройки возвратов" в админке. Как я понял, имплементация методов интерфейса IRefundExtended используется, если возвраты как-то нужно тюнить и настраивать под себя (как в примере с обработчиком yandex - они там какие-то сертификаты загружают), но у меня была простая логика с запросом в банк, поэтому интерфейса IRefund и его метода refund хватило.
В итоге реализация следующего вида получилась:
На странице "Настройки возвратов" моя платёжка не светится, но для решения моей задачи оказалось, что это и не требуется.