/** * Add payment transaction * * @param Mage_Sales_Model_Order_Payment $payment * @param string $transactionId * @param string $transactionType * @param array $transactionDetails * @param array $transactionAdditionalInfo * @param bool $message * @return null|Mage_Sales_Model_Order_Payment_Transaction */ protected function _addTransaction(Mage_Sales_Model_Order_Payment $payment, $transactionId, $transactionType, array $transactionDetails = array(), array $transactionAdditionalInfo = array(), $message = false) { $payment->setTransactionId($transactionId); $payment->setLastTransId($transactionId); $payment->resetTransactionAdditionalInfo(); foreach ($transactionDetails as $key => $value) { $payment->setData($key, $value); } foreach ($transactionAdditionalInfo as $key => $value) { $payment->setTransactionAdditionalInfo($key, $value); } $transaction = $payment->addTransaction($transactionType, null, false, $message); //foreach ($transactionDetails as $key => $value) { // $payment->unsetData($key); //} //$payment->unsLastTransId(); /** * It for self using */ $transaction->setMessage($message); return $transaction; }
/** * Set Payment Transaction Information * * @param Mage_Sales_Model_Order_Payment $payment Sales Payment Model * @param array $params Request params */ protected function setPaymentTransactionInformation($payment, $params) { $payment->setTransactionId($params['PAYID']); $code = $payment->getMethodInstance()->getCode(); if (in_array($code, array('postfinance_cc', 'postfinance_directDebit'))) { $payment->setIsTransactionClosed(false); $payment->addTransaction("authorization", null, true, $this->__("Process outgoing transaction")); $payment->setLastTransId($params['PAYID']); if (isset($params['HTML_ANSWER'])) { $payment->setAdditionalInformation('HTML_ANSWER', $params['HTML_ANSWER']); } } $payment->setAdditionalInformation('paymentId', $params['PAYID']); $payment->setAdditionalInformation('status', $params['STATUS']); $payment->setIsTransactionClosed(true); $payment->setDataChanges(true); $payment->save(); }