/**
  * 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();
 }