jueves, 25 de diciembre de 2008

Consumir Web Services de Indicadores con PHP

En publicaciones anteriores, hemos visto diversas formas de conectarnos a un Web Services que nos entregaba los indicadores económicos de Chile. Hoy realizaremos la conexión al mismo servicio, pero desde PHP con la ayuda de NuSOAP que es un kit de herramientas (ToolKit) para desarrollar Web Services. NuSOAP esta compuesto por una serie de clases que nos harán mucho más fácil el desarrollo de clientes, es decir, aquellas aplicaciones que consumen los Web Services. También podemos crear servidores, ósea, aquellos que los proveen, pero eso no lo veremos hoy.


El código para consultar los indicadores financieros es bastante simple y no necesitará mayores comentarios:


<?php
require_once('lib/nusoap.php');
$proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : '';
$proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : '';
$proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : '';
$proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : '';

$client = new nusoap_client('http://www.desachile.com/webservice.asmx?WSDL', 'wsdl',
                        $proxyhost, $proxyport, $proxyusername, $proxypassword);
$err = $client->getError();
if ($err) {
    echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
}

$param = array('Fecha' => '20081010');
$result = $client->call('Indicadores', $param, '', '', false, true);

if ($client->fault) {
    echo '<h2>Fault</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>';
    }
}

$indicadores = $result['IndicadoresResult']['diffgram']['NewDataSet']['indicadores'];

echo 'UTM = '.$indicadores['utm'].'<br>';
echo 'UF = '.$indicadores['uf'].'<br>';
echo 'USD = '.$indicadores['usd'].'<br>';
echo 'EURO = '.$indicadores['euro'].'<br>';
?>

Espero les sea de utilidad.

Toby

2 comentarios:

Entradas populares