/**
  * 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;
 }
 /**
  * Generate end return new secure hash value
  *
  * @param \Magento\Sales\Model\Order\Payment $payment
  * @return string
  */
 protected function _generateSecureSilentPostHash($payment)
 {
     $secureHash = md5($this->mathRandom->getRandomString(10));
     $payment->setAdditionalInformation($this->_secureSilentPostHashKey, $secureHash);
     return $secureHash;
 }
 /**
  * {@inheritdoc}
  */
 public function setAdditionalInformation($key, $value = null)
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'setAdditionalInformation');
     if (!$pluginInfo) {
         return parent::setAdditionalInformation($key, $value);
     } else {
         return $this->___callPlugins('setAdditionalInformation', func_get_args(), $pluginInfo);
     }
 }