getPayment(); $amount = $commandSubject['amount']; $order = $payment->getOrder(); $klarnaOrder = $this->getKlarnaOrder($order); if (!$klarnaOrder->getId() || !$klarnaOrder->getReservationId()) { $e = new KlarnaException(__('Unable to refund payment for this order.')); $this->messageManager->addErrorMessage($e->getMessage()); throw $e; } $response = $this->getOmApi($order) ->refund($klarnaOrder->getReservationId(), $amount, $payment->getCreditmemo()); if (!$response->getIsSuccessful()) { $errorMessage = __('Payment refund failed, please try again.'); $errorMessage = $this->getFullErrorMessage($response, $errorMessage, 'refund'); throw new KlarnaException($errorMessage); } if ($response->getTransactionId()) { $payment->setTransactionId($response->getTransactionId()); } return null; } }