public function getGwapPaymentData($payment) { $data = new Varien_Object(); if ($payment->getCcType()) { $data->setCcType($payment->getCcType()); } if ($payment->getCcOwner()) { $data->setCcOwner($payment->getCcOwner()); } if ($payment->getCcLast4()) { $data->setCcLast4($payment->getCcLast4()); } if (Mage::getModel('core/session')->getGwapCcCcNumber()) { $data->setCcNumber(Mage::getModel('core/session')->getGwapCcCcNumber()); } if (Mage::getModel('core/session')->getGwapCcId()) { $data->setCcCid(Mage::getModel('core/session')->getGwapCcId()); } if ($payment->getCcParcelas()) { $data->setCcParcelas($payment->getCcParcelas()); } if ($payment->getCcExpMonth()) { $data->setCcExpMonth($payment->getCcExpMonth()); } if ($payment->getCcExpYear()) { $data->setCcExpYear($payment->getCcExpYear()); } if ($payment->getAdditionalInformation('GwapBoletoType')) { $data->setGwapBoletoType($payment->getAdditionalInformation('GwapBoletoType')); } if ($payment->getAdditionalInformation('GwapCheckOneclick')) { $data->setGwapCcCheckOneclick($payment->getAdditionalInformation('GwapCheckOneclick')); } if ($payment->getAdditionalInformation('GwapOneclickSelected')) { $data->setGwapOneclickSelected($payment->getAdditionalInformation('GwapOneclickSelected')); } if ($payment->getAdditionalInformation('GwapSessionId')) { $data->setGwapSessionId($payment->getAdditionalInformation('GwapSessionId')); } Mage::getModel('core/session')->setGwapCcId(); Mage::getModel('core/session')->setGwapCcCcNumber(); if ($payment->getMethod() == 'gwap_2cc') { $data->setCcAmount($payment->getAdditionalInformation('gwapCcAmount')); $data->setCcType2($payment->getAdditionalInformation('gwapCcType2')); $data->setCcOwner2($payment->getAdditionalInformation('gwapCcOwner2')); $data->setCcLast4_2($payment->getAdditionalInformation('gwapCcLast4_2')); $data->setCcNumber2($payment->getAdditionalInformation('gwapCcNumber2')); $data->setCcParcelas2($payment->getAdditionalInformation('gwapCcParcelas2')); $data->setCcCid2($payment->getAdditionalInformation('gwapCcCid2')); $data->setCcExpMonth2($payment->getAdditionalInformation('gwapCcExpMonth2')); $data->setCcExpYear2($payment->getAdditionalInformation('gwapCcExpYear2')); $payment->setAdditionalInformation('gwapCcNumber2', ''); $payment->setAdditionalInformation('gwapCcCid2', ''); } if ($payment->getMethod() == 'gwap_oneclick') { $data->setCcType($payment->getAdditionalInformation('oneclickType')); } return $data; }
/** * Refund the amount * Need to decode Last 4 digits for request. * * @param Varien_Object $payment * @param decimal $amount * @return Mage_Authorizenet_Model_Directpost * @throws Mage_Core_Exception */ public function refund(Varien_Object $payment, $amount) { $last4 = $payment->getCcLast4(); $payment->setCcLast4($payment->decrypt($last4)); try { $this->_refund($payment, $amount); } catch (Exception $e) { $payment->setCcLast4($last4); throw $e; } $payment->setCcLast4($last4); return $this; }
/** * Updates customer account information with most current from Litle. * * @param Varien_Object $payment * @param DOMDocument $litleResponse */ public function accountUpdater(Varien_Object $payment, $litleResponse) { if ($this->getUpdater($litleResponse, 'newCardInfo') !== null) { $payment->setCcLast4(substr($this->getUpdater($litleResponse, 'newCardInfo', 'number'), -4)); $payment->setCcType($this->getUpdater($litleResponse, 'newCardInfo', 'type')); $payment->setCcExpDate($this->getUpdater($litleResponse, 'newCardInfo', 'expDate')); } elseif ($this->getUpdater($litleResponse, 'newCardTokenInfo') !== null) { $payment->setCcNumber($this->getUpdater($litleResponse, 'newCardTokenInfo', 'litleToken')); $payment->setCcLast4(substr($this->getUpdater($litleResponse, 'newCardTokenInfo', 'litleToken'), -4)); $payment->setCcType($this->getUpdater($litleResponse, 'newCardTokenInfo', 'type')); $payment->setCcExpDate($this->getUpdater($litleResponse, 'newCardTokenInfo', 'expDate')); } }
/** * Processes successful authorize/clone result * * @param Varien_Object $payment * @param Braintree_Result_Successful $result * @param float $amount * @return Varien_Object */ protected function _processSuccessResult(Varien_Object $payment, $result, $amount) { // Pass an event if the payment was a success Mage::dispatchEvent('gene_braintree_creditcard_success', array('payment' => $payment, 'result' => $result, 'amount' => $amount)); // Set some basic information about the payment $payment->setStatus(self::STATUS_APPROVED)->setCcTransId($result->transaction->id)->setLastTransId($result->transaction->id)->setTransactionId($result->transaction->id)->setIsTransactionClosed(0)->setAmount($amount)->setShouldCloseParentTransaction(false); // Set information about the card $payment->setCcLast4($result->transaction->creditCardDetails->last4)->setCcType($result->transaction->creditCardDetails->cardType)->setCcExpMonth($result->transaction->creditCardDetails->expirationMonth)->setCcExpYear($result->transaction->creditCardDetails->expirationYear); // Additional information to store $additionalInfo = array(); // The fields within the transaction to log $storeFields = array('avsErrorResponseCode', 'avsPostalCodeResponseCode', 'avsStreetAddressResponseCode', 'cvvResponseCode', 'gatewayRejectionReason', 'processorAuthorizationCode', 'processorResponseCode', 'processorResponseText', 'threeDSecure'); // Handle any fraud response from Braintree $this->handleFraud($result, $payment); // If 3D secure is enabled, presume it's passed if ($this->is3DEnabled()) { $additionalInfo['threeDSecure'] = Mage::helper('gene_braintree')->__('Passed'); } // Iterate through and pull out any data we want foreach ($storeFields as $storeField) { if (!empty($result->transaction->{$storeField})) { $additionalInfo[$storeField] = $result->transaction->{$storeField}; } } // Check it's not empty and store it if (!empty($additionalInfo)) { $payment->setAdditionalInformation($additionalInfo); } if (isset($result->transaction->creditCard['token']) && $result->transaction->creditCard['token']) { $payment->setAdditionalInformation('token', $result->transaction->creditCard['token']); } return $payment; }