/**
  * @param mixed $parameters
  *
  * @return AuthResponse|VerifySigResponse
  */
 public function sendData($parameters)
 {
     /**
      * @var VerifySigResponse $response
      */
     $response = parent::sendData($parameters);
     if ($response->isSuccessful()) {
         // a few additional parameters that need to be passed for 3D-Secure transactions
         $parameters = $this->getParameters();
         $parameters['cavv'] = $response->getParam('cavv');
         $parameters['eci'] = $response->getParam('eci');
         $parameters['xid'] = $response->getParam('xid');
         /**
          * Now finally, do our authorisation
          *
          * @var AuthRequest $request
          * @var AuthResponse $response
          */
         $request = new AuthRequest($this->httpClient, $this->httpRequest);
         $request->initialize($parameters);
         $response = $request->send();
     }
     return $response;
 }
 protected function createResponse($data)
 {
     /**
      * We need to inspect this response to see if the customer is actually
      * enrolled in the 3D Secure program. If they're not, we can go ahead
      * and do a normal auth instead.
      */
     $response = $this->response = new EnrolmentResponse($this, $data);
     if (!$response->isEnrolled()) {
         $request = new AuthRequest($this->httpClient, $this->httpRequest);
         $request->initialize($this->getParameters());
         $response = $request->send();
     }
     return $response;
 }