Hola
Disculpen si esta consulta ya estaba, pero no he podido encontrarla, y les aseguro que la he buscado arto.
Resulta que hice un pequeño ws con nusoap (no tengo experiencia desarrollando web services con php, y todos los ejemplos en php me salían con nusoap).
El código es súper simple:
Código PHP:
<?php
date_default_timezone_set('America/Los_Angeles');
require_once ('lib/nusoap.php');
$server = new soap_server();
$server->configureWSDL('Validador', 'tns:Validador');
$server->register('validaNumeroSerie', array('globalemitida' => 'xsd:string','keyEnk' => 'xsd:string'), array('return' => 'xsd:string'), 'tns:Validador', 'tns:Validador#validaNumeroSerie', 'rpc', 'encoded', 'Valido el numero ingresado');
function validaNumeroSerie($globalemitida,$keyEnk)
{
if($globalemitida != "" && $keyEnk != "")
{
$respuesta = 1;
}
else
{
$respuesta = 0;
}
return $respuesta;
}
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
la consulta seria la siguiente:
Código PHP:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="tns:Validador">
<soapenv:Header/>
<soapenv:Body>
<tns:validaNumeroSerie soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<globalemitida xsi:type="xsd:string">a</globalemitida>
<keyEnk xsi:type="xsd:string">a</keyEnk>
</tns:validaNumeroSerie>
</soapenv:Body>
</soapenv:Envelope>
Y debiese de devolver esto
Código PHP:
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:validaNumeroSerieResponse xmlns:ns1="tns:Validador">
<return xsi:type="xsd:string">1</return>
</ns1:validaNumeroSerieResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Lo único que necesito es que me devuelva un 0 o un 1, lo cual conseguí. Tengo un servidor montado en mi equipo con Windows, un appserv, y funciona de maravilla, pero cuando lo subo al servidor (hostgator), de 10 intentos, solo uno lo devuelve bien, el resto del tiempo devuelve unos caracteres extraños. Probé cambiando la codificación de la página (pensando que podía ser eso, pero nada).
Si a alguien le ha pasado algo similar, por favor, cualquier ayuda será muy agradecida.
Saludos a todos