Re: [PHP-ES] Uso de SoapClient

[email protected] (Pablo Braulio)
Newsgroups php.general.es
Message-ID <[email protected]>
Tienes toda la razón.

Pensaba que el xml se estaba pasando bien, pero no era así. Hay que 
hacerlo como comentas.

Muchas gracias por la ayuda.

El 03/12/10 18:00, [email protected] escribió:
> En realidad estás haciendo un uso incorrecto de la secuencia de
> instrucciones, Pablo.
>
> La referencia a una variable $xml solo es para tu información, no para
> que la uses como parámetro de paso al WebService.
>
> El código que deberías usar es como sigue (ojo al uso obligatorio de
> WSDL o no, que debe indicártelo tu servidor. En este ejemplo es
> "obligatorio".)
>
> <?php
> try {
> $options = array('soap_version'=>SOAP_1_2,
> 'exceptions'=>true,
> 'trace'=>1,
> 'encoding'=> UTF-8,
> 'cache_wsdl'=>WSDL_CACHE_NONE
> );
> $client = new SoapClient('URL_WEBSERVICE?WSDL', $options); // p.e.
> http://serv.php.net/WebServer?WSDL
> $results = $client->CheckUser(array('user_email'=>'elusuario',
> 'user_password'=>'lapassword'));
> $respuesta = $client->__getLastResponse();
> } catch (Exception $e) {
> echo "<h2>Exception Error!</h2>" . $e->getMessage();
> }
> echo "<br>Respuesta:" . $results->CheckUserResult;
> print_r($respuesta);
> ?>
>
> Mucha atención porque estas dos últimas líneas son excluyentes... o usas
> una o usas la otra. La primera hace referencia a una posible función de
> retorno de los valores del WebService, mientras que la segunda, mostrará
> todo el resultado de la respuesta. La ventaja de la primera sobre la
> segunda es que podrás manejar variables independientes, mientras que en
> el segundo caso, tendrás una salida "lineal" de todo el contenido. Para
> empezar a probar, yo usuaría la segunda (poniendo a comentario la
> primera) y luego irís refinando las respuestas usando la primera (y
> comentando la segunda, claro).
>
> Espero haberte ayudado. Ya nos contarás.
>
> Un saludo.
>
> Fernando Eguílaz
>
> ----- Original Message ----- From: "Pablo Braulio" <[email protected]>
> To: "Lista de PHP en español" <[email protected]>
> Sent: Thursday, December 02, 2010 4:50 PM
> Subject: [PHP-ES] Uso de SoapClient
>
>
>> Hola a todos.
>>
>> Estoy llamando a un webservice con SOAP y siempre obtengo como
>> respuesta 0.
>>
>> El adminstrador del webservice me asegura que funciona perfectamente
>> ya que ha probado con soapUI (herramienta para testear webservices) y
>> responde correctamente.
>>
>> Ya no se si hay algo que no estoy haciendo bien, o que realmente no
>> funciona bien el servidor.
>>
>> Os pongo el código:
>>
>> $xml= '<soapenv:Envelope
>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>> xmlns:ecom="http://URL">
>> <soapenv:Header/>
>> <soapenv:Body>
>> <ecom:checkUser>
>> <!--Optional:-->
>> <user_email>USUARIO</user_email>
>> <!--Optional:-->
>> <user_password>XXXXXX</user_password>
>> </ecom:checkUser>
>> </soapenv:Body>
>> </soapenv:Envelope>';
>>
>> $com= new SoapClient('URL_WEBSERVICE'), array(
>> 'trace'=> 1,
>> 'encoding'=> 'UTF-8'
>> ));
>>
>> $xmlRespuesta= $com->checkUser($xml);
>>
>> $respuesta= $com->__getLastResponse();
>>
>> print_r($respuesta);
>>
>> Y lo que muestra:
>>
>> <?xml version="1.0" ?><S:Envelope
>> xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:checkUserResponse
>> xmlns:ns2="http://ecommerce.deyde.com/"><return>0</return></ns2:checkUserResponse></S:Body></S:Envelope>
>>
>>
>> ¿Alguna idea?.
>> --
>> Saludos cordiales.
>> Pablo.
>>
>> Si lo reenvías, ten la precaución de borrar los datos de procedencia
>> que encabezarían tu reenvío – empezando por mi dirección de correo
>> electrónico - . Coloca siempre las direcciones de tus contactos en el
>> campo <CCO> para que viajen discretas, no en el campo <Para> ni en
>> el<CC>. De esa forma nadie que lo reciba tendrá constancia de las
>> señas de los demás destinatarios a los que también se remite. Todo
>> ello a fin de evitar que nadie se aproveche de todas las direcciones
>> que se van acumulando al pasar de buzón a buzón para el lanzamiento de
>> correo basura y otras indeseadas lindezas. Aparte claro está de
>> garantizar la privacidad.
>>
>>
>>
>> Gracias.
>>
>> --
>> PHP Spanish Localization Talk Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
>


-- 
Saludos cordiales.
Pablo.

Si lo reenvías, ten la precaución de borrar los datos de procedencia que 
encabezarían tu reenvío – empezando por mi dirección de correo 
electrónico - . Coloca siempre las direcciones de tus contactos en el 
campo <CCO> para que viajen discretas, no en el campo <Para> ni en 
el<CC>. De esa forma nadie que lo reciba tendrá constancia de las señas 
de los demás destinatarios a los que también se remite. Todo ello a fin 
de evitar que nadie se aproveche de todas las direcciones que se van 
acumulando al pasar de buzón a buzón para el lanzamiento de correo 
basura y otras indeseadas lindezas. Aparte claro está de garantizar la 
privacidad.



Gracias.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.