Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/12/2015, 00:10
Avatar de mazingerz
mazingerz
 
Fecha de Ingreso: febrero-2003
Ubicación: Sarasota FL
Mensajes: 147
Antigüedad: 21 años, 2 meses
Puntos: 0
consumo WebService Nusoap

Hola a todos, tengo un problema al consumir un WebService, que esta echo por una tercera parte, y es con datacomplex, y no se llama por url si no que hay que instanciar el archivo local.wsdl. en fin no me han dado nada de informacion, si alguien me puede echar una mano con esto por favor o si hay un tool para snifear ws para php y nusoap. bueno este es el ws sacado de soapUI, ellos me enviaron el projecto para soapui

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:inp="http://www.tibco.com/schemas/TemplateWsSASPA/Schemas/servicesTemplate/InputXML.xsd">\r
<soapenv:Header/>\r
<soapenv:Body>\r
<inp:InputXML>\r
<!--Optional:-->\r
<inp:head>\r
<!--Optional:-->\r
<inp:service>\r
<inp:code>001</inp:code>\r
<!--Optional:-->\r
<inp:name>getInformation</inp:name>\r
</inp:service>\r
<!--Optional:-->\r
<inp:consumer>\r
<inp:code>002</inp:code>\r
<!--Optional:-->\r
<inp:name>portalWeb</inp:name>\r
</inp:consumer>\r
<!--Optional:-->\r
<inp:user>\r
<inp:id>IDUSER</inp:id>\r
<inp:name>CASAMATRIZ</inp:name>\r
</inp:user>\r
</inp:head>\r
<!--Optional:-->\r
<inp:body>\r
<inp:single>\r
<!--Zero or more repetitions:-->\r
<inp:parameters>\r
<inp:name>identification</inp:name>\r
<inp:value>12345678</inp:value>\r
</inp:parameters>\r
</inp:single>\r
</inp:body>\r
</inp:InputXML>\r
</soapenv:Body>\r
</soapenv:Envelope>


He consumido datacomplex antes, pero no como este....
aca voy.

<?php

require "../_LIB/nusoap.php";

//valores para el ws getInformation, se enviara via POST
$byval=array( "001","getInformation","002","portalWeb","IDUSER", "CASAMATRIZ","identification","12345678");

$url_servicio="/wsdl/getInformation.wsdl";

$client = new nusoap_client($url_servicio,TRUE);
$err=$client->getError();

if ($err){
echo '<h2>Constructor error</h2><pre>'.$err.'</pre>';
}
else
{

$parametro = array('head' => array('service' => array('code'=>urldecode($byval[0]),
'name'=>urldecode($byval[1])),
'consumer' => array('code'=>urldecode($byval[2]),
'name'=>urldecode($byval[3])),
'user' => array('code'=>urldecode($byval[4]),
'name'=>urldecode($byval[5]))),
'body' => array('parameters' => array('name'=>urldecode($byval[6]),
'value'=>urldecode($byval[7]))));

// veamos el parametro Data Complex a enviar
echo "<h2>Parametros del metodo getInformationOP </h2><BR>";
//var_dump($parametro);
print_r($parametro);
echo "<BR>";

$client->useHTTPPersistentConnection();
$client->use_curl = TRUE;
$proxy = $client->getProxy();
/** Llamar metodo del WS */
$result = $proxy->getInformationOP($parametro);
//$result = $client->call('getInformationOP', $parametro);
if ($client->fault) {
echo 'Error en llamado al metodo: ';
print_r($result);
} else {
// check result
$err_msg = $client->getError();
if ($err_msg) {
// Print error msg
echo 'Error : '.$err_msg;
} else {
// Print result
echo "<h2>Result del webservice:</h2><BR>";
var_dump($result);
echo "<BR>";
}
}

}//end else`
?>


Se agradece la PaZciencia....