26 private static $NAMESPACE_ESP =
'http://intermediacion.redsara.es/scsp/esquemas/datosespecificos';
27 private static $NAMESPACE_PET =
'http://intermediacion.redsara.es/scsp/esquemas/V3/peticion';
28 private static $NAMESPACE_SR =
'http://intermediacion.redsara.es/scsp/esquemas/V3/solicitudRespuesta';
37 private function crearCliente() {
38 $opcionesClienteWS = array (
39 'soap_version' => SOAP_1_1,
40 'user_agent' =>
'WSSoapClient',
42 'cache_wsdl' => self::$MYSOAPOP_WSDL_CACHE,
43 'trace' => self::$MYSOAPOP_TRACE
46 $this->
__clienteOn(self::KEYCLIENTE_DGT_CONDUCTORVEHICULOS,
true, $opcionesClienteWS);
47 $clienteWS = $this->
__getClient(self::KEYCLIENTE_DGT_CONDUCTORVEHICULOS);
63 public function peticionSincrona($IdPeticion, $TimeStamp, $CodigoCertificado, $oSolicitud)
68 $clienteWS = $this->crearCliente();
71 $bodyWSRequest = $this->toSOAP_petSinc($IdPeticion, $TimeStamp, $CodigoCertificado, $oSolicitud);
74 $miSoapRQ =
new SoapVar($bodyWSRequest, SOAP_ENC_OBJECT,null,null,
'Peticion', self::$NAMESPACE_PET);
75 $respuesta = $clienteWS->peticionSincrona($miSoapRQ);
80 $vRespuesta = array();
81 if (is_object($respuesta))
85 'respuesta' => $respuesta
92 $this->tratarExcepcionEstandar($e, $clienteWS);
112 $clienteWS = $this->crearCliente();
115 $bodyWSRequest = $this->toSOAP_petAsinc($IdPeticion, $TimeStamp, $CodigoCertificado, $vSolicitudes);
118 $miSoapRQ =
new SoapVar($bodyWSRequest, SOAP_ENC_OBJECT,null,null,
'Peticion', self::$NAMESPACE_PET);
119 $respuesta = $clienteWS->peticionAsincrona($miSoapRQ);
124 $vRespuesta = array();
125 if (is_object($respuesta))
129 'respuesta' => $respuesta
136 $this->tratarExcepcionEstandar($e, $clienteWS);
156 $clienteWS = $this->crearCliente();
159 $bodyWSRequest = $this->toSOAP_SR($IdPeticion, $TimeStamp, $CodigoCertificado, $NumElementos);
162 $miSoapRQ =
new SoapVar($bodyWSRequest, SOAP_ENC_OBJECT,null,null,
'SolicitudRespuesta', self::$NAMESPACE_SR);
163 $respuesta = $clienteWS->solicitudRespuesta($miSoapRQ);
168 $vRespuesta = array();
169 if (is_object($respuesta))
173 'respuesta' => $respuesta
180 $this->tratarExcepcionEstandar($e, $clienteWS);
196 private function toSOAP_atributos($idPeticion, $numElementos, $timestamp, $codigoCertificado, $ns) {
199 $AtrWSLvl->append(
new SoapVar($idPeticion, XSD_STRING, null, null,
'IdPeticion', $ns));
200 $AtrWSLvl->append(
new SoapVar($numElementos, XSD_INTEGER , null, null,
'NumElementos', $ns));
201 $AtrWSLvl->append(
new SoapVar($timestamp->format(DateTime::ATOM), XSD_STRING, null, null,
'TimeStamp', $ns));
202 $AtrWSLvl->append(
new SoapVar($codigoCertificado, XSD_STRING, null, null,
'CodigoCertificado', $ns));
204 return new SoapVar($AtrWSLvl, SOAP_ENC_OBJECT, null, null,
'Atributos', $ns);
217 private function toSOAP_petSinc($IdPeticion, $TimeStamp, $CodigoCertificado, $oSolicitud)
220 $AtrSoapVar = $this->toSOAP_atributos($IdPeticion, 1, $TimeStamp, $CodigoCertificado, self::$NAMESPACE_PET);
223 $SolicitudTransmisionSoapVar = $oSolicitud->toSoap($IdPeticion, $CodigoCertificado, null);
227 $SolicitudesWSRequest->append($SolicitudTransmisionSoapVar);
231 $bodyWSRequest->append($AtrSoapVar);
232 $bodyWSRequest->append(
new SoapVar($SolicitudesWSRequest, SOAP_ENC_OBJECT, null, null,
'Solicitudes', self::$NAMESPACE_PET));
234 return $bodyWSRequest;
248 private function toSOAP_petAsinc($IdPeticion, $TimeStamp, $CodigoCertificado, $vSolicitudes)
251 $NumElementos = count($vSolicitudes);
256 for ($iPet=0; $iPet < $NumElementos; $iPet++) {
257 $oSolicitud = $vSolicitudes[$iPet];
260 $SolicitudTransmisionSoapVar = $oSolicitud->toSoap($IdPeticion, $CodigoCertificado, $iPet);
263 $SolicitudesWSRequest->append($SolicitudTransmisionSoapVar);
267 $AtrSoapVar = $this->toSOAP_atributos($IdPeticion, $NumElementos, $TimeStamp, $CodigoCertificado, self::$NAMESPACE_PET);
271 $bodyWSRequest->append($AtrSoapVar);
272 $bodyWSRequest->append(
new SoapVar($SolicitudesWSRequest, SOAP_ENC_OBJECT,null,null,
'Solicitudes', self::$NAMESPACE_PET));
274 return $bodyWSRequest;
287 private function toSOAP_SR($IdPeticion, $TimeStamp, $CodigoCertificado, $NumElementos)
290 $AtrSoapVar = $this->toSOAP_atributos($IdPeticion, $NumElementos, $TimeStamp, $CodigoCertificado, self::$NAMESPACE_SR);
294 $bodyWSRequest->append($AtrSoapVar);
296 return $bodyWSRequest;
peticionSincrona($IdPeticion, $TimeStamp, $CodigoCertificado, $oSolicitud)
__clienteOn($tipo, $trazabilidadPai=true, $opcionesClienteWS=null)
peticionAsincrona($IdPeticion, $TimeStamp, $CodigoCertificado, $vSolicitudes)
solicitudRespuesta($IdPeticion, $TimeStamp, $CodigoCertificado, $NumElementos)