/** * 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(); }
/** * Capture a successful auth transaction * * @param Varien_Object|Mage_Sales_Model_Order_Payment $payment * @param float $amount * * @return EMerchantPay_Genesis_Model_Direct * * @throws Mage_Core_Exception */ private function _capture($payment, $amount) { Mage::log('Capture transaction for order #' . $payment->getOrder()->getIncrementId()); try { $this->getHelper()->initClient($this->getCode()); $authorize = $payment->lookupTransaction(null, Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH); $reference_id = $authorize->getTxnId(); $genesis = new \Genesis\Genesis('Financial\\Capture'); $genesis->request()->setTransactionId($this->getHelper()->genTransactionId($payment->getOrder()->getIncrementId()))->setRemoteIp($this->getHelper('core/http')->getRemoteAddr(false))->setReferenceId($reference_id)->setCurrency($payment->getOrder()->getBaseCurrencyCode())->setAmount($amount); $genesis->execute(); $payment->setTransactionId($genesis->response()->getResponseObject()->unique_id)->setParentTransactionId($reference_id)->setIsTransactionClosed(false)->setShouldCloseParentTransaction(true)->resetTransactionAdditionalInfo()->setTransactionAdditionalInfo(array(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS => $this->getHelper()->getArrayFromGatewayResponse($genesis->response()->getResponseObject())), null); $payment->save(); } catch (Exception $exception) { Mage::logException($exception); Mage::throwException($this->getHelper()->__($exception->getMessage())); } return $this; }