Hola foreanos, tengo el siguiente problema, me enviaron dos archivos para consumir como WebServicio, uno es una extensión XSD y la otra WSDL,
archivo.xsd
archivo.wsdl
he intentado de todas formas encapsular el servicio pero no me ha funcionado, también comentar que el servicio tiene prefijos, namespaces, osea la estructura del XML es esta
Código PHP:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fgp="RUTA_NAMESPACES">
<soapenv:Body>
<fgp:inicio>
<fgp:cuerpo>
<fgp:rut>19</fgp:rut>
<fgp:data>ertdddad</fgp:data>
</fgp:cuerpo>
</fgp:inicio>
</soapenv:Body>
</soapenv:Envelope>
Si invoco el archivo .WSDL del SoapUI puedo consumirlo sin problemas, pero cuando realizo en ecapsulamiento me arroja distintos errores, como SSL, NULO, mala estructura, etc etc. pero de todas formas no he podido, la forma tradicional que realizo es esta
He intentado invocando al método
CALL (que siempre realizo) también con
serializeEnvelope y
send y también pasando parámetros por arreglo y string como estructura XML
setCredentials -> invoco este metodo porque tienen seguridad de transporte
Código PHP:
//Defino clase nusoap
$client = new nusoap_client($endPoint,"wsdl");
//paso credenciales
$client->setCredentials($login,$password, 'basic');
//Parametros
$param = array("fgp:cuerpo"=>array("fgp:rut" => "19",
"fgp:data => "ertdddad"));
//Intento invocación al método 1
$respuesta = $client->call("inicio",$param);
//Intento invocación al método 2
$respuesta = $client->call("inicio",$param,"RUTA_NAMESPACES","inicio",false);
Intento 2 Código PHP:
//Defino clase nusoap
$client = new nusoap_client($endPoint,"wsdl");
//paso credenciales
$client->setCredentials($login,$password, 'basic');
//Parametros
$strXml='
<fgp:cuerpo>
<fgp:rut>19</fgp:rut>
<fgp:data>ertdddad</fgp:data>
</fgp:cuerpo>';
//Intento invocación al método 1
$dataXml = $client->serializeEnvelope($strXml,false,array("fgp"=>"RUTA_NAMESPACES"),$style='rpc',$use='encoded',false);
result = $client->send($dataXml ,$endPoint, 100000, 100000);
//Intento invocación al método 2
$dataXml = $client->serializeEnvelope($strXml);
result = $client->send($dataXml ,$endPoint, 100000, 100000);
Ninguno de las formas me ha funcionado, primera vez que consumo un WSDL que los archivos estén en mi maquina, que tengan prefijos obligatorios
He intentado eliminar el WSDL new nusoap_client($endPoint,false) pero no llego fuera de la red, sólo de esta forma funciona
Utilizando
Nusoap v1.64
Php 5.2.9
Gracias si alguien ha realizado esto