/** * Fetch transaction details info * * @param Mage_Payment_Model_Info $payment * @param string $transactionId * @return array */ public function fetchTransactionInfo(Mage_Payment_Model_Info $payment, $transactionId) { /** @var Mage_Sales_Model_Order_Payment_Transaction $transaction */ $transaction = Mage::getModel('sales/order_payment_transaction')->load($transactionId, 'txn_id'); $checkout_transaction = $transaction->getOrder()->getPayment()->lookupTransaction(null, Mage_Sales_Model_Order_Payment_Transaction::TYPE_ORDER); $reconcile = $this->reconcile($checkout_transaction->getTxnId()); // Get the current details $transaction_details = $payment->getAdditionalInformation(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS); // Try to extract transaction details from the Gateway response if ($reconcile->unique_id == $transactionId) { $transaction_details = $reconcile; } else { if ($reconcile->payment_transaction instanceof stdClass) { if ($reconcile->payment_transaction->unique_id == $transactionId) { $transaction_details = $reconcile->payment_transaction; } } if ($reconcile->payment_transaction instanceof ArrayObject) { foreach ($reconcile->payment_transaction as $payment_transaction) { if ($payment_transaction->unique_id == $transactionId) { $transaction_details = $payment_transaction; } } } } // Remove the current details $payment->unsAdditionalInformation(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS); // Set the default/updated transaction details $payment->setAdditionalInformation(array(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS => $this->getHelper()->getArrayFromGatewayResponse($transaction_details)), null); $payment->save(); return $payment->getAdditionalInformation(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS); }
/** * saves the alias and if given the cvc to the payment information * * @param Mage_Payment_Model_Info $payment - the payment which should be updated * @param array $aliasData - the data we will update * @param boolean $userIsRegistering - is registering method in checkout * @param boolean $paymentSave - is it necessary to save the payment afterwards */ public function setAliasToPayment(Mage_Payment_Model_Info $payment, array $aliasData, $userIsRegistering = false, $paymentSave = false) { if (array_key_exists('alias', $aliasData) && 0 < strlen(trim($aliasData['alias']))) { $payment->setAdditionalInformation('alias', trim($aliasData['alias'])); $payment->setAdditionalInformation('userIsRegistering', $userIsRegistering); if (array_key_exists('CVC', $aliasData)) { $payment->setAdditionalInformation('cvc', $aliasData['CVC']); $this->setCardHolderToAlias($payment->getQuote(), $aliasData); } $payment->setDataChanges(true); if ($paymentSave === true) { $payment->save(); } } else { Mage::helper('ops/data')->log('did not save alias due to empty alias'); Mage::helper('ops/data')->log($aliasData); } }
/** * Fetch transaction details info * * @param Mage_Payment_Model_Info $payment * @param string $transactionId * * @return array */ public function fetchTransactionInfo(Mage_Payment_Model_Info $payment, $transactionId) { $reconcile = $this->reconcile($transactionId); // Remove the current details $payment->unsAdditionalInformation(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS); // Set the default/updated transaction details $payment->setAdditionalInformation(array(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS => $this->getHelper()->getArrayFromGatewayResponse($reconcile)), null); $payment->save(); return $payment->getAdditionalInformation(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS); }