Example #1
0
 /**
  * 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;
 }