public function postProcessing(\Magento\Sales\Model\Order $order, \Magento\Framework\DataObject $payment, $response)
 {
     // Update payment details
     $payment->setTransactionId($response['invoice_id']);
     $payment->setIsTransactionClosed(0);
     $payment->setTransactionAdditionalInfo('tco_order_number', $response['order_number']);
     $payment->setAdditionalInformation('tco_order_number', $response['order_number']);
     $payment->setAdditionalInformation('tco_order_status', 'approved');
     $payment->place();
     // Update order status
     $order->setStatus($this->getOrderStatus());
     $order->setExtOrderId($response['order_number']);
     $order->save();
     // Send email confirmation
     $this->orderSender->send($order);
 }
 /**
  * Fill payment with credit card data from response from Authorize.net.
  *
  * @param \Magento\Framework\DataObject $payment
  * @return void
  */
 protected function fillPaymentByResponse(\Magento\Framework\DataObject $payment)
 {
     $response = $this->getResponse();
     $payment->setTransactionId($response->getXTransId())->setParentTransactionId(null)->setIsTransactionClosed(0)->setTransactionAdditionalInfo(self::REAL_TRANSACTION_ID_KEY, $response->getXTransId());
     if ($response->getXMethod() == self::REQUEST_METHOD_CC) {
         $payment->setCcAvsStatus($response->getXAvsCode())->setCcLast4($payment->encrypt(substr($response->getXAccountNumber(), -4)));
     }
     if ($response->getXResponseCode() == self::RESPONSE_CODE_HELD) {
         $payment->setIsTransactionPending(true)->setIsFraudDetected(true);
     }
 }