Example #1
0
 /**
  * Capture an authorized payment. This should only be available if there
  * is an open authorized transaction already.
  *
  * @param Varien_Object $payment
  * @param int|float $amount
  */
 public function capture(Varien_Object $payment, $amount)
 {
     $order = $payment->getOrder();
     $transactionId = $payment->getParentTransactionId();
     if (empty($transactionId)) {
         // @see Made_Dibs_Model_Observer ~ line 58
         $transactionId = $payment->getAuthorizeTransactionId();
         $payment->setParentTransactionId($transactionId);
     }
     $parameters = array('transactionId' => $transactionId, 'amount' => $this->formatAmount($amount, $order->getOrderCurrencyCode()), 'doReAuthIfExpired' => (bool) $this->getConfigData('reauth_expired') ? 'true' : 'false');
     $result = $this->_apiCall('CaptureTransaction', $parameters);
     $transactionString = $transactionId . '-capture-' . $this->formatAmount($order->getBaseTotalDue(), $order->getOrderCurrencyCode());
     $payment->setTransactionId($transactionString)->setIsTransactionClosed(true)->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS, array_merge($result, $parameters));
     return $this;
 }