/** * 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; }