Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/08/2010, 10:12
Avatar de xcars
xcars
 
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años, 6 meses
Puntos: 4
Respuesta: APORTE - Consumo de Webservices

En el ejemplo que he puesto, basicamente primero se loguea el usuario, y con este logueo nos devuelven un numero de ticket, y luego con el ticket obtenemos la info del usuario, por eso es que hacemos dos llamadas a 2 funciones diferentes.
Y luego de la parte de request y response, nos detalla las funciones y parametros a utilizar, si nos fijamos bien, yo utilice una llamada "LogonUser" la cual tiene como parametro de salida "LogonUserResponse", ver esta linea

Código PHP:
Ver original
  1. 2 => 'LogonUserResponse LogonUser(LogonUser $parameters)',

Y luego mas abajo nos dice como se envian los parametros y como los recibimos, ver:
Código PHP:
Ver original
  1. 14 => 'struct LogonUser {
  2. string user;
  3. string password;
  4. }',
  5.   15 => 'struct LogonUserResponse {
  6. LogonUserResult LogonUserResult;
  7. }',
  8.   16 => 'struct LogonUserResult {
  9. string Code;
  10. string Message;
  11. string Ticket;

Por lo tanto debemos enviar un array con el parametro "user" y "password" y luego este array se contiene en otro con el nombre "LogonUser", para entender mejor, ver la parte del codigo siguiente:
Código PHP:
Ver original
  1. $this->request=array("user"=>$usuario,"password"=>$password);
  2. $req = $ws->__soapCall('LogonUser',[B]array('LogonUser'=>$this->request))[/B];

Ahora bien, cuando queremos obtener el resultado, este viene como un objeto tambien, en nuestro caso con 3 parametros, y para acceder lo hacemos asi:
Código PHP:
Ver original
  1. $res = $req->LogonUserResult;
  2. $CodigoRespuesta=$res->Code;
  3. $Mensaje=$res->Message;
  4. $Ticket=$res->Ticket;

Ojo, hay que respetar minusculas y mayusculas.
Creo qeu es todo por el momento, si hay algo mas que sienta que se me escapo editare el post, y espero que le sea util a alguien.
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.