Example #1
0
 /**
  * Capture payment
  *
  * @param   Varien_Object $payment
  * @param   float $amount
  * @return  Mage_Payment_Model_Abstract
  */
 public function capture(Varien_Object $payment, $amount)
 {
     //parent::capture($payment, $amount);
     $authTransactionId = $payment->getParentTransactionId();
     if (!$authTransactionId) {
         return false;
         //$this->authorize($payment, $amount);
     }
     $request = $this->_getApiRequest();
     $request->setData('transaction_id', $authTransactionId)->setData('is_capture_complete', (int) $payment->getShouldCloseParentTransaction())->setData('amount', $amount)->setData('currency_code', $payment->getOrder()->getBaseCurrencyCode())->setData('order_id', $payment->getOrder()->getIncrementId())->setData('is_first_capture', $payment->hasFirstCaptureFlag() ? $payment->getFirstCaptureFlag() : true);
     $api = $this->_getApi()->doCapture($request);
     $this->_importResultToPayment($payment, $api->getResponse());
     $apiResponse = $api->getResponse();
     if (isset($apiResponse['fraud']) && (bool) $apiResponse['fraud']) {
         $message = Mage::helper('enterprise_pbridge')->__('Merchant review is required for further processing.');
         $payment->getOrder()->setState(Mage_Sales_Model_Order::STATE_PROCESSING, Mage_Sales_Model_Order::STATUS_FRAUD, $message);
     }
     return $apiResponse;
 }