• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/paysystem/service.php
  • Класс: BitrixSalePaySystemService
  • Вызов: Service::refund
public function refund(Payment $payment, $refundableSum = 0)
{
	if ($this->isRefundable())
	{
		$result = new Result();

		if (!$payment->isPaid())
		{
			$result->addError(new ResultError(Loc::getMessage('SALE_PS_SERVICE_PAYMENT_NOT_PAID')));
			return $result;
		}

		if ($refundableSum == 0)
			$refundableSum = $payment->getSum();

		/** @var ServiceResult $result */
		$result = $this->handler->refund($payment, $refundableSum);
		if (!$result->isSuccess())
		{
			Logger::addError(get_class($this->handler).': refund: '.implode("n", $result->getErrorMessages()));
		}

		return $result;
	}

	throw new SystemException();
}