/** * Process fraud status * * @param \Magento\Sales\Model\Order\Payment $payment * @return $this */ protected function processPaymentFraudStatus(\Magento\Sales\Model\Order\Payment $payment) { try { $fraudDetailsResponse = $payment->getMethodInstance()->fetchTransactionFraudDetails($this->getResponse()->getXTransId()); $fraudData = $fraudDetailsResponse->getData(); if (empty($fraudData)) { $payment->setIsFraudDetected(false); return $this; } $payment->setIsFraudDetected(true); $payment->setAdditionalInformation('fraud_details', $fraudData); } catch (\Exception $e) { //this request is optional } return $this; }
/** * {@inheritdoc} */ public function setIsFraudDetected($flag) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'setIsFraudDetected'); if (!$pluginInfo) { return parent::setIsFraudDetected($flag); } else { return $this->___callPlugins('setIsFraudDetected', func_get_args(), $pluginInfo); } }