statusResolver = $statusResolver ? : ObjectManager::getInstance()->get(StatusResolver::class); } /** * @param OrderPaymentInterface $payment * @param string|float $amount * @param OrderInterface $order * @return \Magento\Framework\Phrase */ public function execute(OrderPaymentInterface $payment, $amount, OrderInterface $order) { $state = Order::STATE_PROCESSING; $status = null; $message = 'Captured amount of %1 online.'; if ($payment->getIsTransactionPending()) { $state = Order::STATE_PAYMENT_REVIEW; $message = 'An amount of %1 will be captured after being approved at the payment gateway.'; } if ($payment->getIsFraudDetected()) { $state = Order::STATE_PAYMENT_REVIEW; $status = Order::STATUS_FRAUD; $message .= ' Order is suspended as its capturing amount %1 is suspected to be fraudulent.'; } if (!isset($status)) { $status = $this->statusResolver->getOrderStatusByState($order, $state); } $order->setState($state); $order->setStatus($status); return __($message, $order->getBaseCurrency()->formatTxt($amount)); } /** * @deprecated 100.1.9 Replaced by a StatusResolver class call. * * @param Order $order * @param string $status * @param string $state * @return void */ protected function setOrderStateAndStatus(Order $order, $status, $state) { if (!$status) { $status = $order->getConfig()->getStateDefaultStatus($state); } $order->setState($state)->setStatus($status); } }