/**
  * Fill payment with credit card data from response from Authorize.net.
  *
  * @param Varien_Object $payment
  */
 protected function _fillPaymentByResponse(Varien_Object $payment)
 {
     $response = $this->getResponse();
     $payment->setTransactionId($response->getXTransId())->setParentTransactionId(null)->setIsTransactionClosed(0)->setTransactionAdditionalInfo($this->_realTransactionIdKey, $response->getXTransId());
     if ($response->getXMethod() == self::REQUEST_METHOD_CC) {
         $payment->setCcAvsStatus($response->getXAvsCode())->setCcLast4($payment->encrypt(substr($response->getXAccountNumber(), -4)));
     }
 }
 /**
  * Update the payment with details from the CC Auth Request and Reply
  * @param Varien_Object                          $payment
  * @param Payload\Payment\ICreditCardAuthRequest $request
  * @param Payload\Payment\ICreditCardAuthReply   $response
  * @return self
  */
 public function _updatePayment(Varien_Object $payment, Payload\Payment\ICreditCardAuthRequest $request, Payload\Payment\ICreditCardAuthReply $response)
 {
     $correctionRequired = $response->getIsAVSCorrectionRequired() || $response->getIsCVV2CorrectionRequired();
     $payment->setAdditionalInformation(['request_id' => $request->getRequestId(), 'response_code' => $response->getResponseCode(), 'pan_is_token' => $response->getPanIsToken(), 'bank_authorization_code' => $response->getBankAuthorizationCode(), 'cvv2_response_code' => $response->getCVV2ResponseCode(), 'avs_response_code' => $response->getAVSResponseCode(), 'phone_response_code' => $response->getPhoneResponseCode(), 'name_response_code' => $response->getNameResponseCode(), 'email_response_code' => $response->getEmailResponseCode(), 'currency_code' => $response->getCurrencyCode(), 'tender_type' => $this->_helper->getTenderTypeForCcType($payment->getCcType()), 'is_correction_required' => $correctionRequired, 'last4_to_correct' => $correctionRequired ? $payment->getCcLast4() : null])->setAmountAuthorized($response->getAmountAuthorized())->setBaseAmountAuthorized($response->getAmountAuthorized())->setCcNumberEnc($payment->encrypt($response->getCardNumber()));
     return $this;
 }