Servicio Web SOAP Tipo de Cambio Nicaragua

Servicio gratuito brindado por el Banco Central de Nicaragua para consultar el tipo de cambio de córdoba nicaragüense con respecto al dolar. Tasas de cambio publicadas a partir del 1 de Enero del 2012.


Publicado: Editado: Estado:

Es un servicio público gratuito para utilizar bajo ciertas condiciones que cita como "Al utilizar los Servicios Web del BCN, usted acepta que este acuerdo se podrá modificar a discreción del BCN, así como también acepta los cambios y revisiones a los Servicios aquí prestados.". 

Más adelante dice y deslinda responsabilidades "el Banco Central de Nicaragua tiene la potestad de suspender el acceso a alguna porción o a todos los Servicios Web en cualquier momento ya sea por: mantenimiento calendarizado o inesperado, como resultado de fallas de poder, por problemas o cambios al sistema, en el evento de un ataque de denegación de servicio, si se llegara a determinar que un Servicio ya no estará disponible al público o en algún otro caso no descrito. Por estas razones, no se le dará responsabilidad al BCN por daños, pérdidas (monetarias o de información) o alguna otra consecuencia aquí no descrita en la que se pueda caer por el uso o la imposibilidad de utilizar los Servicios. "

¿Cómo utilizar el servicio?

El servicio puedes utilizarlo en casi todos los lenguajes de programación. Se cuenta con dos maneras de hacer consultas, por mes y por día, especificando que tipo de consulta deseas hacer envías los parámetros a la URL:

$servicio = "https://servicios.bcn.gob.ni/Tc_Servicio/ServicioTC.asmx?WSDL"; 

Los parámetros establecidos por el servicio son:

  1.  Tipo de consulta por mes seguido del mes y el año que quieres consultar
  2.  Tipo de consulta por dia seguido por la fecha Día Mes Año

Las funciones $_REQUEST de ejemplos para programadores en PHP ( Descargar) son:

if ($_REQUEST['Consultar'] == "Mes") {      
    $parametros['Mes'] = $_REQUEST['Month'];
    $parametros['Ano'] = $_REQUEST['Year'];
    $ValorTasaMes = "";
    $client = new SoapClient($servicio, $parametros);
    $result = $client->RecuperaTC_Mes($parametros); 
    $Class = (array) $result->RecuperaTC_MesResult;
    $ValorDelXML = $Class['any'];
    $xml = simplexml_load_string($ValorDelXML);
    $array = (array) $xml;
    foreach ($array as $key => $a) {                  
        foreach ($a as $key2 => $aa) {                      
            foreach ($aa as $key3 => $a3) {                 
                if ($key3 == "Fecha" || $key3 == "Valor")
                    $ValorTasaMes .= ' ' . $key3 . '-' . $a3;;
            }          
            $ValorTasaMes .='';
        }
    }
} else if ($_REQUEST['Consultar'] == "Dia") {      
    $parametros['Dia'] = $_REQUEST['Day'];
    $parametros['Mes'] = $_REQUEST['Month_Day'];
    $parametros['Ano'] = $_REQUEST['Year_Day'];
    $client = new SoapClient($servicio, $parametros);
    $result = $client->RecuperaTC_Dia($parametros);
    $TasaDiaria = ($result->RecuperaTC_DiaResult);
    echo $TasaDiaria;
}

Esta disponible también en ASP ( Descargar) y en Visual Basic ( Descargar) el código es:

Imports TC_Consumo.Servicio
Imports System.Xml

Public Class frmConsumoServicio

    Public Function ObtenerTC_Dia(ByVal Fecha As Date) As Double
        Dim objServ As New Servicio.Tipo_Cambio_BCNSoapClient
        Try
            Return objServ.RecuperaTC_Dia(Year(Fecha), Month(Fecha), DatePart(DateInterval.Day, Fecha))
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Function

    Public Function ObtenerTC_Tabla(ByVal Fecha As Date) As DataTable
        Dim objServ As New Servicio.Tipo_Cambio_BCNSoapClient
        Dim objElement As XmlElement
        Dim xmlNodLista As XmlNodeList
        Dim dt As New DataTable
        Try
            objElement = objServ.RecuperaTC_Mes(Year(Fecha), Month(Fecha))
            xmlNodLista = objElement.GetElementsByTagName("Tc")

            For Each Node As XmlNode In xmlNodLista.Item(0).ChildNodes
                Dim Col As New DataColumn(Node.Name, System.Type.GetType("System.String"))
                dt.Columns.Add(Col)
            Next

            For IntVal As Integer = 0 To xmlNodLista.Count - 1
                Dim dr As DataRow = dt.NewRow
                For Col As Integer = 0 To dt.Columns.Count - 1
                    If Not IsDBNull(xmlNodLista.Item(IntVal).ChildNodes(Col).InnerText) Then
                        dr(Col) = xmlNodLista.Item(IntVal).ChildNodes(Col).InnerText
                    Else
                        dr(Col) = Nothing
                    End If
                Next
                dt.Rows.Add(dr)
            Next
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        Return dt
    End Function

 
    Private Sub cmdServicio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdServicio.Click
        Select Case Me.rbtCSencillo.Checked
            Case True
                Me.txtTc.Text = ObtenerTC_Dia(Me.dtpfecha.Value)
            Case False
                Me.grdtipocambio.DataSource = ObtenerTC_Tabla(Me.dtpfecha.Value)
        End Select
    End Sub

    Private Sub rbtCTabla_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtCTabla.CheckedChanged
        Me.txtTc.Clear()
    End Sub
End Class

Allan Raúl Acuña (www.NicEasySoft.org) hizo su aporte en Microsoft Visual Foxpro SP2, y es oficialmente publicado en el sitio de BCN ( Descargar), esto es una parte del código y la información es cargada en un XML:

Public loSoapClient, loSoapClientUrl, lcResult
 
ldFecha = Date()
*!* Creando web Service
loSoapClient   = Createobject("MSSOAP.SoapClient30")
loSoapClientUrl  = [https://servicios.bcn.gob.ni/Tc_Servicio/ServicioTC.asmx?WSDL]

If Vartype(loSoapClient)=='O'
 loSoapClient.MSSoapInit(loSoapClientUrl)
 lcResult = loSoapClient.RecuperaTC_Mes(Year(ldFecha), Month(ldFecha))

 =Strtofile(lcResult.context.XML, "miArchivo.xml")
 Create Cursor crsTASA (fecha d(8), valor N(10,4))
 =ReadXML(Locfile('miArchivo.xml'))
Endif

Set Date Dmy
Select crsTASA
Browse

Para los que utilizan JAVA no hay una versión oficial en uso, Denis Torres en su Blog publicó una versión en java liberado bajo la licencia de dominio público para utilizarlos en proyectos libre o comerciales. 

  1. Archivo ejecutable .JAR [ Descargar].
  2. Código fuente [ Descargar].
  3. Documentación [ Descargar].
Bibliografía
  1.  http://www.bcn.gob.ni/tc/index.php
  2. http://blog.denisjtorresg.info/2013/06/servicio-web-para-consultar-el-tipo-de.html
Dar puntos de agradecimiento
Reportar esta publicación

Déjanos tu comentario

Comentarios

mariogarcia

(Administrador)

Intereses

música, diseño, programación, electrónica, historia, geografía

Puntos: 146 Votos: 113