public function processResponse(PaymentTransaction $paymentTransaction, Response $response)
 {
     if ($response->isApproved()) {
         $paymentTransaction->setStatus(PaymentTransaction::STATUS_APPROVED);
     }
     return $response;
 }
 /**
  * {@inheritdoc}
  */
 public function processResponse(PaymentTransaction $paymentTransaction, Response $response)
 {
     if ($response->isProcessing() || $response->isApproved()) {
         $validate = array($this, 'validateResponseOnSuccess');
         $update = array($this, 'updatePaymentTransactionOnSuccess');
     } else {
         $validate = array($this, 'validateResponseOnError');
         $update = array($this, 'updatePaymentTransactionOnError');
     }
     try {
         call_user_func($validate, $paymentTransaction, $response);
     } catch (Exception $e) {
         $paymentTransaction->addError($e)->setStatus(PaymentTransaction::STATUS_ERROR);
         throw $e;
     }
     call_user_func($update, $paymentTransaction, $response);
     if ($response->isError()) {
         throw $response->getError();
     }
     return $response;
 }