Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/01/2011, 00:05
mitto_33
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta Consumir WebService del Banco de México para obtener el tipo de cambio con PHP

Hola a todos, soy novato en el tema de los servicios Web, he leido un poco y hecho unos cuantos ejemplos sencillos que me he encontrado por la Web, la inquietud nace de la necesidad de leer de un servicio web el tipo de cambio de la divisa norteamericana y el euro a manera de consulta desde mi sistema de facturación en linea.

Necesito consumir el servicio Web de Banxico que se proporciona en la siguiente liga:
[URL="http://www.banxico.org.mx/DgieWSWeb/DgieWS?operation.invoke=tiposDeCambioBanxico"]http://www.banxico.org.mx/DgieWSWeb/DgieWS?operation.invoke=tiposDeCambioBanxico[/URL]

y su descripción WSDL aqui:
[URL="http://www.banxico.org.mx/DgieWSWeb/DgieWS?WSDL"]http://www.banxico.org.mx/DgieWSWeb/DgieWS?WSDL[/URL]

no he podido consumir este web service, utilizo nuSOAP como libreria en PHP. Les dejo el código que estoy tratando de hacer para imprimir los valores del tipo de cambio, pero todavia no funciona y no sé bien como hacer que funcione.


Código PHP:
<?php
    
require_once('lib/nusoap.php');
    
    
$oSoapClient = new nusoap_client('http://www.banxico.org.mx:80/DgieWSWeb/DgieWS?WSDL','wsdl');
        
    if (
$sError $oSoapClient->getError()) {
        echo 
"No se pudo realizar la operación [" $sError "]";
        die();
    }
    
//$aParametros = array("TITULO" => $titulo,"IDSERIE"=> $serie,"BANXICO_FREQ"=>$frec, "BANXICO_UNIT_TYPE"=> $tipo);
    //$aParametros = "";
    
$respuesta $oSoapClient->call("tiposDeCambioBanxico", array(),"http://ws.dgie.banxico.org.mx","","","","rpc","http://schemas.xmlsoap.org/soap/encoding/","encoded");
    
    
// Existe alguna falla en el servicio? 
    
if ($oSoapClient->fault) { // Si
        
echo 'No se pudo completar la operación';
        die();
    }else { 
// No
        
$sError $oSoapClient->getError();
        
// Hay algun error ?
        
if ($sError) { // Si
            
echo 'Error:' $sError;
            die();
        }
        echo 
"Funciono correctamente<br/>";
        echo 
"<pre>";print_r($respuesta,false); echo "</pre>";
        echo 
$respuesta["OBS_VALUE"];        
    } 
?>
Al consumir el web service me arroja esto:

TIPOSDECAMBIO
false
false
Tipos de Cambio
2011-01-10 23:38:32.838

Banco de México

Subgerencia de Desarrollo de Sistemas
(01 55)52372678


Update
2011-01-10 23:38:32.838

cuando deberia de arrojar eso mismo más el tipo de cambio como se muestra en la página de prueba de este servicio Web que proporciona Banxico:

[URL="http://www.banxico.org.mx/DgieWSWeb/DgieWS?operation.invoke=tiposDeCambioBanxico"]http://www.banxico.org.mx/DgieWSWeb/DgieWS?operation.invoke=tiposDeCambioBanxico[/URL]

Espero alguien pueda ayudarme, no he encontrado a nadie que lo haya resuelto y posteado con php.

Saludos.