Hola a todos... tengo que acceder a un servicio WEB que me presenta el siguiente wsdl:
POST /Envio.asmx HTTP/1.1
Host: prueba.es
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.prueba.es/TransmEnvio"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<AuthInfo xmlns="http://www.prueba.es/">
<Codigo1>string</Codigo1>
<Codigo2>string</Codigo2>
<Codigo3>string</Codigo3>
<Codigo4>string</Codigo4>
<Codigo5>string</Codigo5>
</AuthInfo>
</soap:Header>
<soap:Body>
<TransmEnvio xmlns="http://www.prueba.es/">
<request>
<DatosRecogida>
<Direccion>
<CodigoDireccion>string</CodigoDireccion>
(...)
(He cambiado alguna cosa para evitar identificar el servicio web real)
Para acceder a este servicio utilizo este código:
<?php
$parametros_cabecera = array('Codigo1' => '01400','Codigo2'=>'005000','Codigo3'=>'','Codigo4 '=>'09990S5555','Codigo5'=>'01400453121');
$cliente = new SoapClient("http://prueba.es/Envio.asmx?WSDL");
$header = new SoapHeader('www.prueba.es','AuthInfo',$parametros_ cabecera);
$cliente->__setSoapHeaders($header);
$respuesta = $cliente->__soapCall('TransmEnvio',$parametros_cabecera);
var_dump($respuesta);
?>
Al servicio llego sin problema porque me responde:
object(stdClass)[3]
public 'TransmEnvioResult' =>
object(stdClass)[4]
public 'Estado' => string '0' (length=1)
public 'Mensaje' => string '1) La información del usuario es incompleta.' (length=45)
public 'NumeroSolicitud' => string '' (length=0)
public 'NumeroEnvio' => string '' (length=0)
public 'Url' => string '' (length=0)
El tema es que no se si estoy mandando bien la información...
¿Alguien sabe si estoy haciendo algo mal?... no tengo claro si tengo que mandar la información Header de esa forma? Hay forma de saber que envío.... para capturar el envío y ver el formato...?
Muchas gracias a todos.