A ver si alguien me puede ayudar.
Tengo que conectar con un webservice de un cliente que me indicará si los productos tienen stock...
El formato de la llamada es el siguiente:
Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ConsultaInformacionProductos xmlns="URLCONECTOR">
<Peticion>
<Producto>
<CodigoProveedor>string</CodigoProveedor>
<CodigoProducto>string</CodigoProducto>
<UnidadesSolicitadas>int</UnidadesSolicitadas>
<PVPSolicitado>double</PVPSolicitado>
</Producto>
<Producto>
<CodigoProveedor>string</CodigoProveedor>
<CodigoProducto>string</CodigoProducto>
<UnidadesSolicitadas>int</UnidadesSolicitadas>
<PVPSolicitado>double</PVPSolicitado>
</Producto>
</Peticion>
</ConsultaInformacionProductos>
</soap:Body>
</soap:Envelope>
Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<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>
<ns7464:ConsultaInformacionProductos xmlns:ns7464="URLCONECTOR">
<Peticion>
<Producto>
<CodigoProveedor xsi:type="xsd:string">PROVEEDOR</CodigoProveedor>
<CodigoProducto xsi:type="xsd:string">CODPROD</CodigoProducto>
<UnidadesSolicitadas xsi:type="xsd:int">1</UnidadesSolicitadas>
<PVPSolicitado xsi:type="xsd:float">368.89</PVPSolicitado>
</Producto>
</Peticion>
</ns7464:ConsultaInformacionProductos>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Código PHP:
$client = new nusoap_client($soaphost);
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
exit();
}
$client->setUseCurl($useCURL);
$client->soap_defencoding = 'UTF-8';
// This is an archaic parameter list
$params = array(
'Peticion' => array(
'Producto' =>
array(
'CodigoProveedor' => 'COPROV',
'CodigoProducto' => 'CODPROD',
'UnidadesSolicitadas' =>1,
'PVPSolicitado' => 368.89
),
)
);
$result = $client->call('ConsultaInformacionProductos', $params, $soapnamespace, $soapaction);
if ($client->fault) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>'; print_r($result); echo '</pre>';
} else {
$err = $client->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
echo '<h2>Result</h2><pre>'; print_r($result); echo '</pre>';
}
}
echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
Código PHP:
<ConsultaInformacionProductos xmlns="URLCONECTOR">
// Que se convierte en al pasarlo por NuSOAP en
<ns7464:ConsultaInformacionProductos xmlns:ns7464="URLCONECTOR">
Y otra consulta como puedo modificar este array para contener más de un producto en la misma consulta?
Código PHP:
$params = array(
'Peticion' => array(
'Producto' =>
array(
'CodigoProveedor' => 'COPROV',
'CodigoProducto' => 'CODPROD',
'UnidadesSolicitadas' =>1,
'PVPSolicitado' => 368.89
),
)
);