/**
  * Capture payment
  *
  * @param Mage_Sales_Model_Order_Payment $payment
  * @return Mage_Paypal_Model_Payflowpro
  */
 public function capture(Varien_Object $payment, $amount)
 {
     if ($payment->getReferenceTransactionId()) {
         $request = $this->_buildPlaceRequest($payment, $amount);
         $request->setTrxtype(self::TRXTYPE_SALE);
         $request->setOrigid($payment->getReferenceTransactionId());
     } elseif ($payment->getParentTransactionId()) {
         $request = $this->_buildBasicRequest($payment);
         $request->setTrxtype(self::TRXTYPE_DELAYED_CAPTURE);
         $request->setOrigid($payment->getParentTransactionId());
     } else {
         $request = $this->_buildPlaceRequest($payment, $amount);
         $request->setTrxtype(self::TRXTYPE_SALE);
     }
     $response = $this->_postRequest($request);
     $this->_processErrors($response);
     switch ($response->getResultCode()) {
         case self::RESPONSE_CODE_APPROVED:
             $payment->setTransactionId($response->getPnref())->setIsTransactionClosed(0);
             break;
         case self::RESPONSE_CODE_FRAUDSERVICE_FILTER:
             $payment->setTransactionId($response->getPnref())->setIsTransactionClosed(0);
             $payment->setIsTransactionPending(true);
             $payment->setIsFraudDetected(true);
             break;
     }
     return $this;
 }