Web service sobre el TRM del dolar

Creo que eso podría colocar problema con el cross site.

Lo mejor es un cron, descargar el archivo plano y aplicar el json local.

Www.colombiagamer.com

No me parece buena idea estar descargando a diario un archivo plano, si se puede consumir directamente el WebService, y con respecto al Cross Origin, hasta ahora no he tenido problemas con el Script de PHP, generalmente los problemas de Cross Origin ocurren cuando se hacen peticiones por Ajax.
 
  • Me gusta
Reacciones: dcure
Interesante el tema, con esto me pregunto si de pronto alguien aquí sabe si existe un servicio web, pero para el mercado de acciones, así como se ve en la pagina de la bvc, casi en tiempo real (15 minutos de retraso).

ojala fuera de la forma como lo presento @Cristiam Diaz

esta muy bueno el foro,
 
Última edición:
Laneros Estimados

retomo este tema.

en el sitio web de la empresa estaba funcionando el obtener la TRM desde el Web Service de la superfinanciera "lo mas de bien"
creo que una actualización (no deseada pero obligatoria) de PHP lo rompió.

actualmente me arroja el siguiente error
"Could not connect to host"

PHP:
<?php
$fecha = date("Y-m-d");
try {
    $soap = new soapclient("https://www.superfinanciera.gov.co/SuperfinancieraWebServiceTRM/TCRMServicesWebService/TCRMServicesWebService?WSDL",
    array(
        'soap_version'   => SOAP_1_1,
        'trace' => 1,
        "location" => "http://www.superfinanciera.gov.co/SuperfinancieraWebServiceTRM/TCRMServicesWebService/TCRMServicesWebService",
    ));
    $respuesta = $soap->queryTCRM(array('tcrmQueryAssociatedDate' => $fecha));
    $respuesta = $respuesta->return;
    if($respuesta->success){
        $TRM = $respuesta->value;
        $TRM_dia = $TRM;
    }
} catch(Exception $e){
     echo $e->getMessage();
    
?>

pensaba que el Web Service no estaba disponible,
pero al menos este link, carga el xml del Web Service



disculpen si digo alguna barbaridad, la última clase de php que tomé fué cuando iba en la versión 3 (juas!)
 
Laneros Estimados

retomo este tema.

en el sitio web de la empresa estaba funcionando el obtener la TRM desde el Web Service de la superfinanciera "lo mas de bien"
creo que una actualización (no deseada pero obligatoria) de PHP lo rompió.

actualmente me arroja el siguiente error
"Could not connect to host"

PHP:
<?php
$fecha = date("Y-m-d");
try {
    $soap = new soapclient("https://www.superfinanciera.gov.co/SuperfinancieraWebServiceTRM/TCRMServicesWebService/TCRMServicesWebService?WSDL",
    array(
        'soap_version'   => SOAP_1_1,
        'trace' => 1,
        "location" => "http://www.superfinanciera.gov.co/SuperfinancieraWebServiceTRM/TCRMServicesWebService/TCRMServicesWebService",
    ));
    $respuesta = $soap->queryTCRM(array('tcrmQueryAssociatedDate' => $fecha));
    $respuesta = $respuesta->return;
    if($respuesta->success){
        $TRM = $respuesta->value;
        $TRM_dia = $TRM;
    }
} catch(Exception $e){
     echo $e->getMessage();
   
?>

pensaba que el Web Service no estaba disponible,
pero al menos este link, carga el xml del Web Service



disculpen si digo alguna barbaridad, la última clase de php que tomé fué cuando iba en la versión 3 (juas!)
Pero ese could not connect to host parece que es un problema de red. Revisa si desde la IP de tu servidor puedes acceder al URL
 
  • Me gusta
Reacciones: DINERODIGITALIP
Laneros Estimados

retomo este tema.

en el sitio web de la empresa estaba funcionando el obtener la TRM desde el Web Service de la superfinanciera "lo mas de bien"
creo que una actualización (no deseada pero obligatoria) de PHP lo rompió.

actualmente me arroja el siguiente error
"Could not connect to host"

PHP:
<?php
$fecha = date("Y-m-d");
try {
    $soap = new soapclient("https://www.superfinanciera.gov.co/SuperfinancieraWebServiceTRM/TCRMServicesWebService/TCRMServicesWebService?WSDL",
    array(
        'soap_version'   => SOAP_1_1,
        'trace' => 1,
        "location" => "http://www.superfinanciera.gov.co/SuperfinancieraWebServiceTRM/TCRMServicesWebService/TCRMServicesWebService",
    ));
    $respuesta = $soap->queryTCRM(array('tcrmQueryAssociatedDate' => $fecha));
    $respuesta = $respuesta->return;
    if($respuesta->success){
        $TRM = $respuesta->value;
        $TRM_dia = $TRM;
    }
} catch(Exception $e){
     echo $e->getMessage();
   
?>

pensaba que el Web Service no estaba disponible,
pero al menos este link, carga el xml del Web Service



disculpen si digo alguna barbaridad, la última clase de php que tomé fué cuando iba en la versión 3 (juas!)

Primero: el banco de la republica es el encargado de entregar el valor de la TRM así que le sugiero cambiar la URL.
Segundo: le recomiendo un scraping para leer el valor del HTML.

Muchos exitos
 
pueden ser problemas de firewall, su nueva version de PHP no tiene reglas de paso 'libre' por este

podria tomar los datos desde (tipo JSON): https://www.datos.gov.co/api/id/32sa-8pi3.json?$query=select *, :id order by `vigenciadesde` desc limit 001
Estimados Laneros, a manera de agradecimiento, y si en algo puedo ayudar voy a pegar el código que logré hacer funcionar, a riesgo de que parezca sucio o ineficiente.

me cayó bien, pero muy bien el sitio https://www.datos.gov.co

PHP:
<?php
// VERSION 2021


// -- INICIO PARTE COMUN OBTENCION TRM
// GATHER
$url = 'https://www.datos.gov.co/resource/32sa-8pi3.json?$limit=1&$order=vigenciahasta%20DESC';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);


if(curl_error($ch)) {
echo 'error:' . curl_error($ch);
};
curl_close($ch);
$data = json_decode($json,true);


//TRM limpia - la obtiene como un numero sin necesidad de mas conversiones de tipo de datos.
$eurekatrm=$data["0"]["valor"];


// -- FINAL PARTE COMUN OBTENCION TRM    $eurekatrm
?>
 
  • Me gusta
Reacciones: Mulder

Los últimos temas