/** * Process DoCapture response * * @param \XLite\Model\Payment\BackendTransaction $transaction Transaction * @param string $responseData Response data OPTIONAL * * @return boolean */ protected function processRefundTransactionResponse(\XLite\Model\Payment\BackendTransaction $transaction, $responseData = null) { $result = false; if (!empty($responseData)) { $status = \XLite\Model\Payment\Transaction::STATUS_FAILED; if ('Success' === $responseData['ACK']) { $result = true; $status = \XLite\Model\Payment\Transaction::STATUS_SUCCESS; $transaction->getPaymentTransaction()->getOrder()->setPaymentStatus(\XLite\Model\Order\Status\Payment::STATUS_REFUNDED); // save transaction id for IPN $transaction->setDataCell('PPREF', $responseData['REFUNDTRANSACTIONID'], 'Unique PayPal transaction ID (REFUNDTRANSACTIONID)'); \XLite\Core\TopMessage::getInstance()->addInfo('Payment has bes refunded successfully'); } else { \XLite\Core\TopMessage::getInstance()->addError('Transaction failure. PayPal response: ' . $responseData['L_LONGMESSAGE0']); } $transaction->setStatus($status); $transaction->update(); } return $result; }
/** * {@inheritDoc} */ public function update() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'update', array()); return parent::update(); }