Hola, estoy trabajando con WebService en Pilaga Desarrollo (version toba 2.3) y una aplicacion propia en Toba 2.5, al realizar el webservice ejemplo que brindan uds. tengo un error.
En Pilaga cree un nuevo Web Service con el siguiente operacion:
function op__eco(toba_servicio_web_mensaje $mensaje)
{
$array = $mensaje->get_array();
$payload = array("Clave: {$array['clave']}. Valor: {$array['valor']}");
return new toba_servicio_web_mensaje($payload);
}
Cuando entro a …/pilagad/2.1/servicios.php/Prueba ver los servicios lo veo y veo la op.
Del lado de nuestra app. Lo di de alta en Datos Web Service. Seleccionando SOAP, el nombre Prueba y la direccion correcta.
Cree una nueva operacion y el codigo de la misma es (en el CI):
function ini()
{
//--1- Arma el mensaje
$opciones = array('action' => 'eco'); //En action se detalla la operacion a invocarse
$mensaje = new toba_servicio_web_mensaje(array('clave' => 'Clave', 'valor' => 'Valor'), $opciones);
//--2- Arma el servicio
$opciones = array();
$servicio = toba::servicio_web('Prueba', $opciones);
//-- 3 - Muestra la respuesta
$respuesta = $servicio->request($mensaje);
toba::notificacion()->info($respuesta->get_payload());
}
Pero la notificacion es la siguiente: (adj img)
C0MwWGpEurpovdw7PU1q8a2wnS/o62cuXvgjL41Lj/j4GeOdgMIaZUj5azT2RPN2fF8RlCTyI7oX+ReWNEny+UfNvigYg4+f+AqIcN3Ya8Ildc+aLcEkNWpYdUrt0s8oTmMVhnD7GtlD9+ubCUrXt3yl+ddMhB8349Bf7ttC+49ilzTqjPC5CJScHAcPfgHA76+uL3OIOv/uqVTbm1PBZf2CrOflUPvXm0ro6rjZnWQPgtWMm54yeP1pNobiNSaPRQvY/aljsLKC8gmaAY/R55grAMk7mTIGHyXCFBp6+CFyIpbUfCKJIHGVbOPIRbl2BpLdr/YCx2W0K70zL2Uu1EfSanUd2V4Upx4wS6R09dLgFF69MUfzFbNQJYQjBgazgbsrXY/6zdP4d3SluPiVQhsLBYVE02JAV35nUT2Inpc=
es raro que te devuelva el payload encriptado, te hago una consulta… en el lado servidor, tenes configurado correctamente que el servicio no sea firmado y que este activo?.
Por otro lado cuando envio el mensaje para enviarle por ejemplo un dato lo hago de esta manera:
function ini()
{
$dato["continente"] = "EU";
$dato = array( $dato );
$opciones = array('action' => 'datos');
$mensaje = new toba_servicio_web_mensaje($dato, $opciones);
//--2- Arma el servicio
$opciones = array();
$servicio = toba::servicio_web('Prueba', $opciones);
//-- 3 - Muestra la respuesta
$respuesta = $servicio->request($mensaje);
$texto = $respuesta->get_payload();
ei_arbol(array($texto));
}
y del lado del servidor tengo lo siguiente:
function op__datos(toba_servicio_web_mensaje $mensaje)
{
// Obtengo los datos enviados
$datos = $mensaje->get_array();
// Consulta
$sql = "SELECT *
FROM anx_paises as a
WHERE a.continente = ".quote($datos['continente']).";";
$rs = consultar_fuente($sql);
return new toba_servicio_web_mensaje($rs);
}
Pero no me esta devolviendo nada y tengo varios paises cargdos en el continente EU.
lo que te recomiendo es que verifiques bien que le esta llegando al metodo op__datos… y de hecho no estaria mal que loguearas la SQL, para ver si la misma termina mal formada o no, al menos para poder determinar si es un problema del transporte de los datos o si es que la consulta como queda armada, efectivamente no devuelve registros.
Hola Richard, En el toba usuarios de nuestro proyecto al realizar el test de configuracion del Web Service me arroja el siguiente error adjunto.
Las direcciones estan ok y los certificados tambien. QUe puede ser?
Richard, sucede que hace un dia funcionaba y estuvimos agregando operaciones, y volvimos a generar certificados porque teniamos el error que le pasaba a Paola Vidal de No Response y ahora sucede esto, por lo que la libreria si esta correctamente instalada. Adjunto error al querer ejecutar la op. de nuestro proyecto.