Example #1
0
 private function request($pnr, $command)
 {
     $data = $this->DOMIssue->createElement('data');
     $data->appendChild($this->DOMIssue->createElement('serviceaction', $command));
     $servicedata = $this->DOMIssue->createElement('servicedata');
     $servicedata->appendChild($this->DOMIssue->createElement('booking', $pnr));
     //$servicedata->appendChild($this->DOMIssue->createElement('commission', ''));
     $servicedata->appendChild($this->DOMPayments);
     $data->appendChild($servicedata);
     $this->DOMIssue->appendChild($data);
     $this->DOMIssue->formatOutput = true;
     $xml = substr($this->DOMIssue->saveXML(), 22);
     /**
      * Se hace la peticion al servicio de emision
      */
     $ws = new SoapClient($this->serviceUrl, array('encoding' => 'UTF-8'));
     $request = new stdClass();
     $request->value = $xml;
     $result = $ws->GetSendData($request);
     $result = $result->GetSendDataResult;
     /**
      * Se termina la peticion y se procesa la respuesta
      */
     $doc = new DOMDocument();
     $doc->loadXML($result);
     foreach ($doc->getElementsByTagName('successful') as $data) {
         $status = strtolower($data->nodeValue) != 'false';
     }
     if (!$status) {
         foreach ($doc->getElementsByTagName('errormessage') as $data) {
             $this->message = $data->nodeValue;
         }
     } else {
         $tickets = '<pre>';
         foreach ($doc->getElementsByTagName('passenger') as $data) {
             $info = explode('/', $data->getElementsByTagName('ticketnumber')->item(0)->nodeValue);
             $tickets .= $info[0] . ' / ' . $info[2] . ' / ';
             $tickets .= $data->getElementsByTagName('type')->item(0)->nodeValue . ' / ';
             $tickets .= $data->getElementsByTagName('surname')->item(0)->nodeValue . ' ';
             $tickets .= $data->getElementsByTagName('firstname')->item(0)->nodeValue;
             $tickets .= "\n";
         }
         $tickets .= '</pre>';
         $this->tickets = $tickets;
     }
     return $status;
 }