/** * Capture payment * * @param Mage_Sales_Model_Order_Payment | Mage_Sales_Model_Quote_Payment $payment * @param mixed $amount * @return Mage_Paypal_Model_Payflowlink */ public function capture(Varien_Object $payment, $amount) { $removePaypalTransaction = false; /** @var $transaction Mage_Paypal_Model_Payment_Transaction */ $transaction = Mage::getModel('paypal/payment_transaction'); $txnId = $payment->getAdditionalInformation('authorization_id'); $transaction->loadByTxnId($txnId); if ($transaction->getId()) { $removePaypalTransaction = true; $this->_authorize($payment, $amount, $transaction, $txnId); $this->_addTransaction($payment, $txnId); $payment->setReferenceTransactionId($payment->getAdditionalInformation('authorization_id')); } $payment->setParentTransactionId($txnId); $payment->setRequestAmount(round($amount, 2)); parent::capture($payment, $amount); if ($removePaypalTransaction) { $transaction->delete(); } return $this; }
/** * Capture payment * * @param Mage_Sales_Model_Order_Payment | Mage_Sales_Model_Quote_Payment $payment * @param mixed $amount * @return Mage_Paypal_Model_Payflowlink */ public function capture(Varien_Object $payment, $amount) { $removePaypalTransaction = false; /** @var $transaction Mage_Paypal_Model_Payment_Transaction */ $transaction = Mage::getModel('Mage_Paypal_Model_Payment_Transaction'); $txnId = $payment->getAdditionalInformation('authorization_id'); $transaction->loadByTxnId($txnId); if ($transaction->getId()) { $removePaypalTransaction = true; $this->_authorize($payment, $amount, $transaction, $txnId); $this->_addTransaction($payment, $txnId); // Handle case when order is placed via 'Pay With PayPal' button of Payflowlink iFrame if (!$payment->getAdditionalInformation('express_checkout_token')) { $payment->setReferenceTransactionId($payment->getAdditionalInformation('authorization_id')); } } $payment->setParentTransactionId($txnId); $payment->setRequestAmount(round($amount, 2)); parent::capture($payment, $amount); if ($removePaypalTransaction) { $transaction->delete(); } return $this; }