ffea3cd/app/code/Magento/Sales/Controller/Adminhtml/Order/ReviewPayment.php#L19-L69
/**
* Manage payment state
*
* Either denies or approves a payment that is in "review" state
*
* @return \Magento\Backend\Model\View\Result\Redirect
*/
public function execute()
{
$resultRedirect = $this->resultRedirectFactory->create();
try {
$order = $this->_initOrder();
if ($order) {
$action = $this->getRequest()->getParam('action', '');
switch ($action) {
case 'accept':
$order->getPayment()->accept();
$message = __('The payment has been accepted.');
break;
case 'deny':
$order->getPayment()->deny();
$message = __('The payment has been denied.');
break;
case 'update':
$order->getPayment()->update();
if ($order->getPayment()->getIsTransactionApproved()) {
$message = __('Transaction has been approved.');
} else if ($order->getPayment()->getIsTransactionDenied()) {
$message = __('Transaction has been voided/declined.');
} else {
$message = __('There is no update for the transaction.');
}
break;
default:
throw new \Exception(sprintf('Action "%s" is not supported.', $action));
}
$this->orderRepository->save($order);
$this->messageManager->addSuccess($message);
} else {
$resultRedirect->setPath('sales/*/');
return $resultRedirect;
}
} catch (\Magento\Framework\Exception\LocalizedException $e) {
$this->messageManager->addError($e->getMessage());
} catch (\Exception $e) {
$this->messageManager->addError(__('We can\'t update the payment right now.'));
$this->logger->critical($e);
}
$resultRedirect->setPath('sales/order/view', ['order_id' => $order->getEntityId()]);
return $resultRedirect;
}
Details: