_getParentTransactionId($payment)) { $api = $this->getApi(); $api->setAuthorizationId($captureTxnId); } parent::refund($payment, $amount); } /** * Is capture request needed on this transaction * * @return true */ protected function _isCaptureNeeded() { return true; } /** * Get payflow transaction id from parent transaction * * @param Varien_Object $payment * @return string */ protected function _getParentTransactionId(Varien_Object $payment) { if ($payment->getParentTransactionId()) { return $payment->getTransaction($payment->getParentTransactionId()) ->getAdditionalInformation(Mage_PaypalUk_Model_Pro::TRANSPORT_PAYFLOW_TXN_ID); } return $payment->getParentTransactionId(); } /** * Import capture results to payment * * @param Mage_Paypal_Model_Api_Nvp * @param Mage_Sales_Model_Order_Payment */ protected function _importCaptureResultToPayment($api, $payment) { $payment->setTransactionId($api->getPaypalTransactionId()) ->setIsTransactionClosed(false) ->setTransactionAdditionalInfo( Mage_PaypalUk_Model_Pro::TRANSPORT_PAYFLOW_TXN_ID, $api->getTransactionId() ); $payment->setPreparedMessage( Mage::helper('paypaluk')->__('Payflow PNREF: #%s.', $api->getTransactionId()) ); Mage::getModel('paypal/info')->importToPayment($api, $payment); } /** * Fetch transaction details info method does not exists in PaypalUK * * @param Mage_Payment_Model_Info $payment * @param string $transactionId * @throws Mage_Core_Exception * @return void */ public function fetchTransactionInfo(Mage_Payment_Model_Info $payment, $transactionId) { Mage::throwException( Mage::helper('paypaluk')->__('Fetch transaction details method does not exists in PaypalUK') ); } /** * Import refund results to payment * * @param Mage_Paypal_Model_Api_Nvp * @param Mage_Sales_Model_Order_Payment * @param bool $canRefundMore */ protected function _importRefundResultToPayment($api, $payment, $canRefundMore) { $payment->setTransactionId($api->getPaypalTransactionId()) ->setIsTransactionClosed(1) // refund initiated by merchant ->setShouldCloseParentTransaction(!$canRefundMore) ->setTransactionAdditionalInfo( Mage_PaypalUk_Model_Pro::TRANSPORT_PAYFLOW_TXN_ID, $api->getTransactionId() ); $payment->setPreparedMessage( Mage::helper('paypaluk')->__('Payflow PNREF: #%s.', $api->getTransactionId()) ); Mage::getModel('paypal/info')->importToPayment($api, $payment); } }