25 private static $NAMESPACE_ESP =
'http://intermediacion.redsara.es/scsp/esquemas/datosespecificos';
26 private static $NAMESPACE_PET =
'http://intermediacion.redsara.es/scsp/esquemas/V3/peticion';
27 private static $NAMESPACE_SR =
'http://intermediacion.redsara.es/scsp/esquemas/V3/solicitudRespuesta';
36 private function crearCliente() {
37 $opcionesClienteWS = array (
38 'soap_version' => SOAP_1_1,
39 'user_agent' =>
'WSSoapClient',
41 'cache_wsdl' => self::$MYSOAPOP_WSDL_CACHE,
42 'trace' => self::$MYSOAPOP_TRACE
45 $this->
__clienteOn(self::KEYCLIENTE_DGT_DATOSVEHICULO,
true, $opcionesClienteWS);
46 $clienteWS = $this->
__getClient(self::KEYCLIENTE_DGT_DATOSVEHICULO);
62 public function peticionSincrona($IdPeticion, $TimeStamp, $CodigoCertificado, $oSolicitud)
67 $clienteWS = $this->crearCliente();
70 $bodyWSRequest = $this->toSOAP_petSinc($IdPeticion, $TimeStamp, $CodigoCertificado, $oSolicitud);
73 $miSoapRQ =
new SoapVar($bodyWSRequest, SOAP_ENC_OBJECT,null,null,
'Peticion', self::$NAMESPACE_PET);
74 $respuesta = $clienteWS->peticionSincrona($miSoapRQ);
79 $vRespuesta = array();
80 if (is_object($respuesta))
84 'respuesta' => $respuesta
91 $this->tratarExcepcionEstandar($e, $clienteWS);
111 $clienteWS = $this->crearCliente();
114 $bodyWSRequest = $this->toSOAP_petAsinc($IdPeticion, $TimeStamp, $CodigoCertificado, $vSolicitudes);
117 $miSoapRQ =
new SoapVar($bodyWSRequest, SOAP_ENC_OBJECT,null,null,
'Peticion', self::$NAMESPACE_PET);
118 $respuesta = $clienteWS->peticionAsincrona($miSoapRQ);
123 $vRespuesta = array();
124 if (is_object($respuesta))
128 'respuesta' => $respuesta
135 $this->tratarExcepcionEstandar($e, $clienteWS);
155 $clienteWS = $this->crearCliente();
158 $bodyWSRequest = $this->toSOAP_SR($IdPeticion, $TimeStamp, $CodigoCertificado, $NumElementos);
161 $miSoapRQ =
new SoapVar($bodyWSRequest, SOAP_ENC_OBJECT,null,null,
'SolicitudRespuesta', self::$NAMESPACE_SR);
162 $respuesta = $clienteWS->solicitudRespuesta($miSoapRQ);
167 $vRespuesta = array();
168 if (is_object($respuesta))
172 'respuesta' => $respuesta
179 $this->tratarExcepcionEstandar($e, $clienteWS);
195 private function toSOAP_atributos($idPeticion, $numElementos, $timestamp, $codigoCertificado, $ns) {
198 $AtrWSLvl->append(
new SoapVar($idPeticion, XSD_STRING, null, null,
'IdPeticion', $ns));
199 $AtrWSLvl->append(
new SoapVar($numElementos, XSD_INTEGER , null, null,
'NumElementos', $ns));
200 $AtrWSLvl->append(
new SoapVar($timestamp->format(DateTime::ATOM), XSD_STRING, null, null,
'TimeStamp', $ns));
201 $AtrWSLvl->append(
new SoapVar($codigoCertificado, XSD_STRING, null, null,
'CodigoCertificado', $ns));
203 return new SoapVar($AtrWSLvl, SOAP_ENC_OBJECT, null, null,
'Atributos', $ns);
216 private function toSOAP_petSinc($IdPeticion, $TimeStamp, $CodigoCertificado, $oSolicitud)
219 $AtrSoapVar = $this->toSOAP_atributos($IdPeticion, 1, $TimeStamp, $CodigoCertificado, self::$NAMESPACE_PET);
222 $SolicitudTransmisionSoapVar = $oSolicitud->toSoap($IdPeticion, $CodigoCertificado, null);
226 $SolicitudesWSRequest->append($SolicitudTransmisionSoapVar);
230 $bodyWSRequest->append($AtrSoapVar);
231 $bodyWSRequest->append(
new SoapVar($SolicitudesWSRequest, SOAP_ENC_OBJECT, null, null,
'Solicitudes', self::$NAMESPACE_PET));
233 return $bodyWSRequest;
247 private function toSOAP_petAsinc($IdPeticion, $TimeStamp, $CodigoCertificado, $vSolicitudes)
250 $NumElementos = count($vSolicitudes);
255 for ($iPet=0; $iPet < $NumElementos; $iPet++) {
256 $oSolicitud = $vSolicitudes[$iPet];
259 $SolicitudTransmisionSoapVar = $oSolicitud->toSoap($IdPeticion, $CodigoCertificado, $iPet);
262 $SolicitudesWSRequest->append($SolicitudTransmisionSoapVar);
266 $AtrSoapVar = $this->toSOAP_atributos($IdPeticion, $NumElementos, $TimeStamp, $CodigoCertificado, self::$NAMESPACE_PET);
270 $bodyWSRequest->append($AtrSoapVar);
271 $bodyWSRequest->append(
new SoapVar($SolicitudesWSRequest, SOAP_ENC_OBJECT,null,null,
'Solicitudes', self::$NAMESPACE_PET));
273 return $bodyWSRequest;
286 private function toSOAP_SR($IdPeticion, $TimeStamp, $CodigoCertificado, $NumElementos)
289 $AtrSoapVar = $this->toSOAP_atributos($IdPeticion, $NumElementos, $TimeStamp, $CodigoCertificado, self::$NAMESPACE_SR);
293 $bodyWSRequest->append($AtrSoapVar);
295 return $bodyWSRequest;
peticionSincrona($IdPeticion, $TimeStamp, $CodigoCertificado, $oSolicitud)
solicitudRespuesta($IdPeticion, $TimeStamp, $CodigoCertificado, $NumElementos)
peticionAsincrona($IdPeticion, $TimeStamp, $CodigoCertificado, $vSolicitudes)
__clienteOn($tipo, $trazabilidadPai=true, $opcionesClienteWS=null)