Example #1
0
 /**
  * Magento $payment->addTransaction(...) needs the transaction_id = id from the transaction entry or string!
  *
  * @param Mage_Sales_Model_Order_Payment $payment
  * @param string $type
  * @param Mage_Sales_Model_Abstract $salesDocument
  * @param bool $failsafe
  * @param string $message
  * @return null|Mage_Sales_Model_Order_Payment_Transaction
  */
 public function addNewTransaction(Mage_Sales_Model_Order_Payment $payment, $type, $salesDocument = null, $failsafe = false, $message = false)
 {
     $transaction = null;
     try {
         $addInformation = $payment->getAdditionalInformation();
         $payment->setTransactionId($addInformation['transactionId'] . '-' . $type);
         $transaction = $payment->addTransaction($type, $salesDocument, $failsafe, $message);
         $transaction->save();
     } catch (Exception $e) {
         Mage::logException($e);
     }
     return $transaction;
 }
 /**
  * Add payment transaction
  *
  * @param Mage_Sales_Model_Order_Payment $payment
  * @param string $transactionId
  * @param string $transactionType
  * @param array $transactionDetails
  * @param array $transactionAdditionalInfo
  * @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->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;
 }
Example #3
0
 /**
  * Change the status to rejected
  *
  * @param Mage_Sales_Model_Order_Payment $payment
  */
 protected function _updatePaymentStatusDenied(Mage_Sales_Model_Order_Payment $payment)
 {
     $comment = $this->_helper()->__('The transaction has been rejected.');
     $payment->setTransactionId($this->_transactionId)->setPreparedMessage($comment)->setIsTransactionApproved(false)->setIsTransactionClosed(true)->deny()->save();
     $payment->addTransaction(Mage_Sales_Model_Order_Payment_Transaction::TYPE_ORDER)->save();
     $payment->getOrder()->sendOrderUpdateEmail(true, $comment)->save();
     $payment->getOrder()->addStatusHistoryComment($comment)->save();
 }
Example #4
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();
 }