Sei sulla pagina 1di 140

BAMNet 2.

0
Servidor de pago de servicios
BancaSAT

BAMNet 2.0

Descripcin general
Como funciona
Esquema de comunicacin
Interfaces
Para qu son
Para qu sirven
Tipos de interfaces
De base de datos
De servicios

BAMNet 2.0 surge como una solucin para satisfacer la


necesidad de un cambio de plataforma tecnolgica de
banca por internet para los clientes de BAM.
Esta nueva aplicacin deba integrar todas las opciones
que posea actualmente BAMNet (anteriormente conocido
como ViaNet) as como nuevos servicios y sobre todo que
fuera escalable.
BAMNet 2.0 busca de alguna manera implementar un bus
de servicios que permita que varias plataformas BAM
confluyan en un mismo servicio. Muestra de esto es la
implementacin de BAMCel 2.0 y pago fcil que utilizan la
plataforma web de BAMNet 2.0 para realizar estas
operaciones como canales registrados dentro del servicio.

BAMNet 2.0 est planteado como un esquema de


mltiples capas que se encuentran bien distinguidas:
Capa de presentacin

Este se refiere a todas la vistas con las que los clientes


interactan con el sistema.

Capa de administracin:

Esta capa tiene como objetivo primordial guardar informacin


sobre control de accesos, lmites y otra administracin que
pueda ser aplicada tanto a los clientes como a los productos
que tienen asociados.

Capa de lgica de negocio

Esta capa indica la forma en que se estar operando la


transaccin previo a ser ejecutada ya sea en el sistema central
como orquestndolo con los otros servicios adyacentes.

Continuacin
Capa de datos
Esta capa es en donde tiene lugar el registro de la
transaccin y queda asentada firmemente para los
clientes. Esta capa tiene varios sub servicios, tales como
consulta de datos y transaccin de transferencias.

Capa de servicios
Esta capa es un motor adicional que funciona
exclusivamente para comunicarse con proveedores de
servicios desde la banca virtual. Tiene su propio esquema
de procesamiento y BAMNet 2.0 es un cliente mas como
cualquier otra agencia BAM.

El formato para intercambio de informacin dentro


del sistema es por medio de XML que viajan en
protocolo HTTP por medio de formatos SOAP
Los datos binarios que se transmiten por medio del
sistema se encuentran convertidos a hexadecimal de
dos caracteres para que sea estndar.
No se transmiten imagenes directamente sino que
que se encuentran incluidas siempre dentro de un
archivo PDF protegido con contrasea y que no
permite realizar copias para mayor seguridad.

El servicio wsBamnet est constituido por


varias clases que permite repartir la
funcionalidad esperada:
Datos: Esta clase implementa una tabla Hash que
almacena informacin de la aplicacin y que est a
nivel de contexto del proceso como tal.
CasheSps: Esta clase sirve para obtener informacin
acerca de los procedimientos almacenados en
cualquiera de las bases de datos

Continuacin
Central: Clase que implementa AseClient para
interactuar con Sybase
Mssql: Clase que implementa
interactuar con MS SQL Server

SqlClient

para

StartupConfigs: Esta clase es la encargada de


obtener informacin para grabarla en el cache de la
aplicacin, as mismo tiene una funcionalidad para
refresar este cache bajo demanda

Continuacin
Utilities: Esta clase posee funciones compartidas
que abstraen funcionalidad que puede ser utilizada
en todo el sistema.
XMLEngine: Esta clase realiza una implementacin
del namespace System.Xml y provee caractersticas
tales como copiar elementos, clonarlos, copiarlos,
etc. De esta clase depende mucho de la
funcionalidad de wsBamnet.

Continuacin

classCuenta: Esta clase realiza operaciones sobre


una cuenta especfica, tales como bloqueo y
desbloqueo de fondos, ejecutar SP de pago de un
servicio normal o por medio de tarjeta de crdito.

classLogger: Esta clase realiza todas las funciones


de bitcora en disco duro.
classNotifier: Esta clase realiza funciones para
notificaciones configuradas al ejecutarse cierta
transaccin.

Continuacin
classOperacionesVarias: Esta clase concentra toda
la funcionalidad de una operacin especial. Esta
clase recibe el control del proceso cuando es
invocada y tiene una copia de las variables globales
del sistema para su ejecucin.
classServicios: Esta clase implementa la
funcionalidad para realizar llamadas al servicio de
pago de servicios que est hospedado en otro
servidor.

Continuacin
Bamnet:
Esta clase es la clase principal de este servicio, esta es
la que recibe y clasifica los requerimientos entrantes.
Realiza validaciones con base a los siguientes
parmetros:
Cdigo de transaccin.
Estado de ejecucin.

Posee un manejador de errores para asegurar la


continuidad en el funcionamiento del sistema.

Estratgicamente BAM decidi dividir el


desarrollo de este producto en dos, una parte
por medio de Outsourcing y otra por
desarrollo interno. El desarrollo Outsourcing
est a cargo de la empresa Transformacin
Empresarial, S.A.
Transformacin Empresarial tiene a su cargo
lo siguiente:

Sitio administrativo:

Administracin de perfiles y permisos


Administracin de usuarios
Administracin de productos
Administracin de servicios
Contingencias de operaciones en nombre del
usuario.

Sitio transaccional:

Diseo y creacin de pantallas


Control de la sesin
Doble autorizacin

Break
15 minutos

A cada mensaje configurado dentro del sistema


BAMNet 2.0 se le denomina interfaces.
Interfaz segn Wikipedia se refiere a: la
conexin entre dos ordenadores o mquinas de
cualquier tipo dando una comunicacin entre
distintos niveles.
Las interfaces son representaciones en tiempo de
ejecucin derivado de un patrn configurado
previamente en el sistema para que responda con
cierto comportamiento y resuelva el resultado
esperado.

Las interfaces sirven para que todos los


involucrados en el funcionamiento del
sistema hablen el mismo idioma.
Las interfaces tambin deben poder
interelacionar con otros sistemas que no
hablen el mismo idioma, es decir, funciona
como un traductor entre interfacesde otros
sistemas.

Cada transaccin (interface) posee una


configuracin XML de entrada y otra de salida
XML.
Cada una de estas sirve para verificar que el
esquema enviado concuerde con lo que esta
transaccin espera.

Todas las interfaces en su


modelo de entrada poseen un
encabezado comn que permite
sean utilizadas en distintos
contextos:

Canal: Este identifica desde qu


plataforma fue invocada esta
interface. Actualmente existe
BAMNet, BAMCel, CNL-IVR,
PAGORECURREN
Filial: Indica la empresa a la que
debe contabilizar, por defecto es
uno (1)
Usuario: El usuario que est
realizando el requerimiento
RemotoIP: Ip desde donde se est
iniciando la transaccin del cliente.
El sistema luego calcula del equipo
en donde se est conectando.
Agencia: Lugar donde se ejecuta la
transaccin.
Rol: Con qu nivel de autorizacin
se est ejecutando la transaccin

<Transaccion Codigo="91000"
TipoMensaje="IN">
<Canal>BAMNet</Canal>
<Usuario>867345607</Usuario>
<Filial>1</Filial>
<Agencia>093</Agencia>
<RemoteIP>127.0.0.1</RemoteIP>
<Rol />
</Transaccion>

De igual forma, todas las interfaces poseen un


encabezado comn de salida:

CodigoError: Indica si existi un error cuando su


valor es diferente de cero (0)
MensajeError: Se devuelve un texto representativo
del cdigo asociado

<Transaccion Codigo="91000" TipoMensaje="OUT">


<TiposCambio>
<TipoCambio>
<CodigoMoneda>1</CodigoMoneda>
<Descripcion>DOLAR AMERICANO</Descripcion>
<Compra>7.9200</Compra>
<CompraDocumento>7.9400</CompraDocumento>
<Venta>8.1000</Venta>
</TipoCambio>
<TipoCambio>
<CodigoMoneda>2</CodigoMoneda>
<Descripcion>EURO</Descripcion>
<Compra>1.3300</Compra>
<CompraDocumento>1.3700</CompraDocumento>
<Venta>1.4700</Venta>
</TipoCambio>
</TiposCambio>
<CodigoError>0</CodigoError>
<MensajeError />
</Transaccion>

Break
15 minutos

Interfaz de base de datos

Interfaz de servicio

Interfaz especial

Esta interfaz interacta nicamente contra alguna base de


datos que est soportada por el sistema.
Esta interfaz interacta con el procesador de pagos de
servicios por medio de una transformacin intermedia para
adecuar el mensaje a lo que entiende este servidor.
Esta interfaz busca satisfacer ciertos requisitos que pueden
involucrar uno o mas servicios de datos y servicios. Para
este efecto se debe modificar la estructura del servicio para
agregar mas clases auxiliares que ayuden al
funcionamiento del mismo.

Las interfaces de base de datos tienen los siguientes


atributos:
Nombre SP: Nombre del procedimiento que se ejecutar
Tipo de base de datos: Esto para utilizar el controlador
correcto.

Servidor: Token en donde se encuentra la configuracin del


servidor destino
Tipo de ejecucin: Si ser obtencin de datos o ejecucin
para referencia
Transpone datos de salida: Hay algunos datos que requiere
realizar transformacin y transponer filas a columnas.

Atributo

Valor

Cdigo de
transaccin

90003

Nombre de
transaccin

Consulta completa de las entradas de un


catlogo

Nombre SP

sp_bn_consulta_catalogo

Tipo de servidor

Ase

Servidor

aseCentral

Tipo de ejecucin

QUERY

Atributo

Valor

Mapeo
XML
Entrada

<Transaccion>
<AgregarMapeo>@i_catalogo=[CodigoCatalogo]</AgregarMapeo>
<AgregarMapeo Dominio="{validaModoConsultaCatalogo}"
ErrorDeValidacion="Tipo de busqueda de catalogo enviada: {valor}, es
incorrecta">@i_modo=[Operacion]</AgregarMapeo>
<AgregarMapeo>@i_valor=[Valor]</AgregarMapeo>
</Transaccion>

Mapeo
XML Salida

<Transaccion>
<Canal>BAMNet</Canal>
<Datos>
<Dato>
<Codigo>[CODIGO]</Codigo>
<Valor>[VALOR]</Valor>
<Estado>[ESTADO]</Estado>
</Dato>
</Datos>
<CodigoError>@Return</CodigoError>
<MensajeError />
</Transaccion>

XML Entrada

XML Salida

<Transaccion Codigo="90003"
TipoMensaje="IN">
<Canal>BAMNet</Canal>
<Usuario>tvallejo</Usuario>
<Filial>1</Filial>
<RemoteIP>::1</RemoteIP>
<Rol>0</Rol>
<Agencia>16</Agencia>
<CodigoCatalogo>9</CodigoCatalogo>
<Operacion>T</Operacion>
<Valor />
</Transaccion>

<Transaccion Codigo="90003"
TipoMensaje="OUT">
<Canal>BAMNet</Canal>
<Datos>
<Dato>
<Codigo>0</Codigo>
<Valor>QUETZAL</Valor>
<Estado>V</Estado>
</Dato>
<Dato>
<Codigo>1</Codigo>
<Valor>DOLAR AMERICANO</Valor>
<Estado>V</Estado>
</Dato>
<Dato>
<Codigo>2</Codigo>
<Valor>EURO</Valor>
<Estado>V</Estado>
</Dato>
</Datos>
<CodigoError>0</CodigoError>
<MensajeError />
</Transaccion>

Atributo

Valor

Cdigo de transaccin

90006

Nombre de transaccin Consulta cliente cobis


Nombre SP

cobis..sp_persona_cons

Tipo de servidor

Ase

Servidor

aseCentral

Tipo de ejecucin

QUERY

Transpone filas a
columnas

Si

Atributo

Valor

Mapeo XML
Entrada

<Transaccion>
<AgregarValor>@t_trn=132</AgregarValor>
<AgregarValor>@i_operacion=Q</AgregarValor>
<AgregarMapeo>@i_persona=[CodigoCliente]</AgregarMapeo>
</Transaccion>

Mapeo XML Salida

<Transaccion>
<Datos>
<Dato>
<OrdenDato>[NumeroColumna]</OrdenDato>
<Titulo>[NombreColumna]</Titulo>
<Valor formato="{0:n2}">[ValorColumna]</Valor>
</Dato>
</Datos>
<CodigoError>@Return</CodigoError>
<MensajeError />
</Transaccion>

XML Entrada

XML Salida

<Transaccion Codigo="90006"
TipoMensaje="IN">
<Canal>BAMNet</Canal>
<Usuario>sarodasr</Usuario>
<Agencia>16</Agencia>
<Filial>1</Filial>
<Rol>1</Rol>
<RemoteIP>::1</RemoteIP>

<Transaccion Codigo="90006"
TipoMensaje="OUT">
<Datos>
<Dato>
<OrdenDato>1</OrdenDato>
<Titulo>Fecha de Nacimiento</Titulo>
<Valor
formato="{0:n2}">02/04/1952</Valor>
</Dato>
<Dato>
<OrdenDato>2</OrdenDato>
<Titulo>Tipo de Documento</Titulo>
<Valor formato="{0:n2}">CV</Valor>
</Dato>
<Dato>
<OrdenDato>3</OrdenDato>
<Titulo>Nmero Documento</Titulo>
<Valor
formato="{0:n2}">O1600030985</Valor>
</Dato>

</Datos>
<CodigoError>0</CodigoError>
<MensajeError />

<CodigoCliente>202301</CodigoCliente>
</Transaccion>

Las interfaces de servicios poseen los siguientes atributos:


Consulta de servicio: Si la accin es para realizar consulta de
servicio

Pago de servicio: Si la accin es para realizar pago de servicio.

Cada servicio posee una especificacin de transformacin


hace un mensaje que sea entendible por el servidor de
servicios, el cual tambin est descrito en formato XML.
El servidor de servicios realiza las operaciones necesarias y
devuelve informacin para que wsBAMNet proceda con la
transformacin final que se devolver como producto de
dicha solicitud.

Actualmente existen cinco transacciones


principales que habilitan esta la consulta o pago
de un servicio:

90016: Listado de servicios


91039: Consulta previa para pago de servicios
91040: Consulta configuracin de campos para pago de
servicios.
91042: Pago de servicio
91043: Pago de cobro por cuenta ajena

Es necesario hacer notar que existen


transacciones auxiliares para el caso de cobros
por cuenta ajena que posean consulta previa.

Entrada

Salida

<Transaccion Codigo="90016"
TipoMensaje="IN">
<Canal> BAMNet</Canal>
<Usuario> 00048096</Usuario>
<Filial> 1</Filial>
<RemoteIP> 192.16.1.4</RemoteIP>
<Rol>0</Rol>
<Agencia>093</Agencia>
</Transaccion>

<Transaccion Codigo="90016" TipoMensaje="OUT">


<Servicios>
<Servicio>
<CodigoServicio>-356</CodigoServicio>
<Descripcion>Instituto Belga Guatemalteco</Descripcion>
<TranConsulta>91069</TranConsulta>
<TranPago>91043</TranPago>
<MontoLibre>N</MontoLibre>
<Visible>S</Visible>
<EsMenu>N</EsMenu>
<Moneda>0</Moneda>
</Servicio>
<Servicio>
<CodigoServicio>6</CodigoServicio>
<Descripcion>Claro Postpago</Descripcion>
<TranConsulta>91039</TranConsulta>
<TranPago>91042</TranPago>
<MontoLibre>N</MontoLibre>
<Visible>N</Visible>
<EsMenu>N</EsMenu>
<Moneda>0</Moneda>
</Servicio>
<Servicio>
<CodigoServicio>95000</CodigoServicio>
<Descripcion>Claro</Descripcion>
<TranConsulta />
<TranPago />
<MontoLibre>N</MontoLibre>
<Visible>S</Visible>
<EsMenu>S</EsMenu>
<Moneda>0</Moneda>
</Servicio>

</Servicios>
<CodigoError>0</CodigoError>
<MensajeError />
</Transaccion>

XML Entrada

XML Salida

<Transaccion Codigo="91040"
TipoMensaje="IN">
<Canal>BAMNet</Canal>
<Usuario>9000040909</Usuario>
<Filial>1</Filial>
<Agencia>093</Agencia>
<RemoteIP>10.99.99.3</RemoteIP>
<Rol>0</Rol>
<CodigoServicio>5</CodigoServicio>
</Transaccion>

<Transaccion Codigo="91040" TipoMensaje="OUT">


<Campos>
<Campo>
<IdCampo>NUMERODETELEFONO</IdCampo>
<NoCampo>1</NoCampo>
<Titulo>Numero de telefono</Titulo>
<HelpText>Numero de telefono CLARO prepago</HelpText>
<TipoDato>0</TipoDato>
<Requerido>S</Requerido>
<IngresoDeDatos>S</IngresoDeDatos>
<SalidaDeDatos>N</SalidaDeDatos>
<Visible>S</Visible>
<Valor />
<ReferenciaEstadoCuenta>S</ReferenciaEstadoCuenta>
<LongitudMin>8</LongitudMin>
<LongitudMax>8</LongitudMax>
<ValorDestino />
<FormatoEspecial> </FormatoEspecial>
</Campo>
<Campo>
<IdCampo>TIEMPODEAIRE</IdCampo>
<NoCampo>2</NoCampo>
<Titulo>Tiempo de aire a comprar</Titulo>
<HelpText>Tiempo de aire a comprar</HelpText>
<TipoDato>7</TipoDato>
<Requerido>N</Requerido>
<IngresoDeDatos>N</IngresoDeDatos>
<SalidaDeDatos>N</SalidaDeDatos>
<Visible>N</Visible>
<Valor>10,10|25,25|50,50|100,100|200,200</Valor>
<ReferenciaEstadoCuenta />
<LongitudMin>0</LongitudMin>
<LongitudMax>5</LongitudMax>
<ValorDestino>Efectivo</ValorDestino>
<FormatoEspecial> </FormatoEspecial>
</Campo>
</Campos>
<Cuenta />
<Producto />
<Moneda />
<Montos>
<Efectivo visible="true">0</Efectivo>
<Saldo visible="true">0</Saldo>
<Total visible="false" totalizar="true">0</Total>
</Montos>
<CodigoServicio>5</CodigoServicio>
<CodigoError>0</CodigoError>
<MensajeError />
<NoRef />
</Transaccion>

XML de entrada

XML de salida

<Transaccion Codigo="91039" TipoMensaje="IN">


<Canal>BAMNet</Canal>
<Usuario>9000073077</Usuario>
<Filial>1</Filial>
<RemoteIP>127.0.0.1</RemoteIP>
<Rol>0</Rol>
<Agencia>093</Agencia>
<Campos>
<Campo>
<IdCampo>NUMERODETELEFONO</IdCampo>
<NoCampo>1</NoCampo>
<Titulo>Numero de telefono</Titulo>
<HelpText>Numero de telefono CLARO prepago</HelpText>
<TipoDato>0</TipoDato>
<Requerido>S</Requerido>
<IngresoDeDatos>S</IngresoDeDatos>
<SalidaDeDatos>N</SalidaDeDatos>
<Visible>S</Visible>
<Valor>55111113</Valor>
<ReferenciaEstadoCuenta>S</ReferenciaEstadoCuenta>
<LongitudMin>8</LongitudMin>
<LongitudMax>8</LongitudMax>
<FormatoEspecial />
</Campo>
<Campo>
<IdCampo>TIEMPODEAIRE</IdCampo>
<NoCampo>2</NoCampo>
<Titulo>Tiempo de aire a comprar</Titulo>
<HelpText>Tiempo de aire a comprar</HelpText>
<TipoDato>7</TipoDato>
<Requerido>N</Requerido>
<IngresoDeDatos>N</IngresoDeDatos>
<SalidaDeDatos>N</SalidaDeDatos>
<Visible>N</Visible>
<Valor>10,10|25,25|50,50|100,100|200,200</Valor>
<ReferenciaEstadoCuenta />
<LongitudMin>0</LongitudMin>
<LongitudMax>5</LongitudMax>
<FormatoEspecial />
</Campo>
</Campos>
<Cuenta />
<Producto />
<Moneda />
<Montos>
<Efectivo visible="true">0</Efectivo>
<Saldo visible="true">0</Saldo>
<Total visible="false" totalizar="true">0</Total>
</Montos>
<CodigoServicio>5</CodigoServicio>
<CodigoError>0</CodigoError>
<MensajeError />
<NoRef />
</Transaccion>

<Transaccion Codigo="91039" TipoMensaje="OUT">


<Canal>BAMNet</Canal>
<Usuario>9000073077</Usuario>
<Filial>1</Filial>
<RemoteIP>127.0.0.1</RemoteIP>
<Rol>0</Rol>
<Agencia>093</Agencia>
<Campos>
<Campo>
<IdCampo>NUMERODETELEFONO</IdCampo>
<NoCampo>1</NoCampo>
<Titulo>Numero de telefono</Titulo>
<HelpText>Numero de telefono CLARO prepago</HelpText>
<TipoDato>0</TipoDato>
<Requerido>S</Requerido>
<IngresoDeDatos>S</IngresoDeDatos>
<SalidaDeDatos>N</SalidaDeDatos>
<Visible>S</Visible>
<Valor>55111113</Valor>
<ReferenciaEstadoCuenta>S</ReferenciaEstadoCuenta>
<LongitudMin>8</LongitudMin>
<LongitudMax>8</LongitudMax>
<FormatoEspecial />
</Campo>
<Campo>
<IdCampo>TIEMPODEAIRE</IdCampo>
<NoCampo>2</NoCampo>
<Titulo>Tiempo de aire a comprar</Titulo>
<HelpText>Tiempo de aire a comprar</HelpText>
<TipoDato>7</TipoDato>
<Requerido>N</Requerido>
<IngresoDeDatos>N</IngresoDeDatos>
<SalidaDeDatos>N</SalidaDeDatos>
<Visible>N</Visible>
<Valor>10,10|25,25|50,50|100,100|200,200</Valor>
<ReferenciaEstadoCuenta />
<LongitudMin>0</LongitudMin>
<LongitudMax>5</LongitudMax>
<FormatoEspecial />
</Campo>
</Campos>
<Cuenta />
<Producto />
<Moneda />
<Montos>
<Efectivo visible="true">0</Efectivo>
<Saldo visible="true">0</Saldo>
<Total visible="false" totalizar="true">0</Total>
</Montos>
<CodigoServicio>5</CodigoServicio>
<CodigoError>0</CodigoError>
<MensajeError />
<NoRef />
</Transaccion>

XML de entrada

XML de salida

<Transaccion Codigo="91042" TipoMensaje="IN">


<Canal>BAMNet</Canal>
<Usuario>00122430</Usuario>
<Filial>1</Filial>
<RemoteIP>216.230.142.194</RemoteIP>
<Rol>0</Rol>
<Agencia>259</Agencia>
<Campos>
<Campo>
<IdCampo>NUMERODETELEFONO</IdCampo>
<NoCampo>1</NoCampo>
<Titulo>Numero de telefono</Titulo>
<HelpText />
<TipoDato>0</TipoDato>
<Requerido>S</Requerido>
<IngresoDeDatos>S</IngresoDeDatos>
<SalidaDeDatos>N</SalidaDeDatos>
<Visible>S</Visible>
<Valor>59435583</Valor>
<ReferenciaEstadoCuenta>S</ReferenciaEstadoCuenta>
<LongitudMin>8</LongitudMin>
<LongitudMax>8</LongitudMax>
<FormatoEspecial />
</Campo>
<Campo>
<IdCampo>TIEMPODEAIRE</IdCampo>
<NoCampo>2</NoCampo>
<Titulo>Tiempo de aire a comprar</Titulo>
<HelpText />
<TipoDato>7</TipoDato>
<Requerido>N</Requerido>
<IngresoDeDatos>N</IngresoDeDatos>
<SalidaDeDatos>N</SalidaDeDatos>
<Visible>N</Visible>
<Valor>10,10|11,11|25,25|27,27|50,50|100,100|200,200</Valor>
<ReferenciaEstadoCuenta />
<LongitudMin>0</LongitudMin>
<LongitudMax>5</LongitudMax>
<FormatoEspecial />
</Campo>
</Campos>
<Cuenta>4050253740</Cuenta>
<Producto>4</Producto>
<Moneda>0</Moneda>
<Montos>
<Efectivo visible="true">25</Efectivo>
<Saldo visible="true">0.00</Saldo>
<Total visible="false" totalizar="true">25</Total>
</Montos>
<CodigoServicio>5</CodigoServicio>
<CodigoError>0</CodigoError>
<MensajeError />
<NoRef />
</Transaccion>

<Transaccion Codigo="91042" TipoMensaje="OUT">


<Canal>BAMNet</Canal>
<Usuario>00122430</Usuario>
<Filial>1</Filial>
<RemoteIP>216.230.142.194</RemoteIP>
<Rol>0</Rol>
<Agencia>259</Agencia>
<Campos>
<Campo>
<IdCampo>NUMERODETELEFONO</IdCampo>
<NoCampo>1</NoCampo>
<Titulo>Numero de telefono</Titulo>
<HelpText />
<TipoDato>0</TipoDato>
<Requerido>S</Requerido>
<IngresoDeDatos>S</IngresoDeDatos>
<SalidaDeDatos>N</SalidaDeDatos>
<Visible>S</Visible>
<Valor>59435583</Valor>
<ReferenciaEstadoCuenta>S</ReferenciaEstadoCuenta>
<LongitudMin>8</LongitudMin>
<LongitudMax>8</LongitudMax>
<FormatoEspecial />
</Campo>
<Campo>
<IdCampo>TIEMPODEAIRE</IdCampo>
<NoCampo>2</NoCampo>
<Titulo>Tiempo de aire a comprar</Titulo>
<HelpText />
<TipoDato>7</TipoDato>
<Requerido>N</Requerido>
<IngresoDeDatos>N</IngresoDeDatos>
<SalidaDeDatos>N</SalidaDeDatos>
<Visible>N</Visible>
<Valor>10,10|11,11|25,25|27,27|50,50|100,100|200,200</Valor>
<ReferenciaEstadoCuenta />
<LongitudMin>0</LongitudMin>
<LongitudMax>5</LongitudMax>
<FormatoEspecial />
</Campo>
</Campos>
<Cuenta>4050253740</Cuenta>
<Producto>4</Producto>
<Moneda>0</Moneda>
<Montos>
<Efectivo visible="true">25</Efectivo>
<Saldo visible="true">0.00</Saldo>
<Total visible="false" totalizar="true">25</Total>
</Montos>
<CodigoServicio>5</CodigoServicio>
<CodigoError>0</CodigoError>
<MensajeError />
<NoRef>11471880</NoRef>
</Transaccion>

<?xml version="1.0" encoding="iso-8859-1"?>


<transaction agencia='%bamnet.svcAgencia%' cajero='%bamnet.svcCajero%' code="820"
date='%bamnet.svcDate%' secuencia='0' time='%bamnet.svcTime%' time-senwsbco="10:53:32" timerecwsbco="08:44:39">

<TIPO-PAGO>106</TIPO-PAGO>
<QN08-NO.-DE-TELEFONO>[@NUMERODETELEFONO]</QN08-NO.-DE-TELEFONO>
<QN08-CONFIRMACION-NO.-TELEFONO>[@NUMERODETELEFONO]</QN08-CONFIRMACION-NO.-TELEFONO>
<TIEMPO-DE-AIRE>[Montos/Efectivo]</TIEMPO-DE-AIRE>
<EFECTIVO>[Montos/Efectivo]</EFECTIVO>
<CHEQUE-PROPIO>0.00</CHEQUE-PROPIO>
<CHEQUES-O-BANCOS>0.00</CHEQUES-O-BANCOS>

<CHEQUES-DEL-EXTERIOR>0.00</CHEQUES-DEL-EXTERIOR>
<QN10-VALOR>[Montos/Efectivo]</QN10-VALOR>
<NO-CHEQUE>0</NO-CHEQUE>
<QN10-FACTURA></QN10-FACTURA>
<SALDO>[Montos/Saldo]</SALDO>
<SECUENCIA>[var:bamnet.SecuenciaSVCwsPEL,valorpordefecto:0]</SECUENCIA>
<VALIDACION>[bamnet.ValidacionServicio]</VALIDACION>
<Dialogo></Dialogo>
</transaction>

Interfaces

Tipos de interfaces
Especiales

Flujo de la transaccin
Distribucin de la aplicacin

Procesamiento local
Procesamiento Sybase (COBIS) online
Procesamiento ATM (COBIS) - offline

Servidor WSBAMNet

Base de datos
Servicios instalados

WSBamnet
Tokens
Instancias de servicios

Por qu sirven.
Que hace cada una de ellas

Las interfaces especiales tienen los siguientes atributos:

Es operacin especial: Indica si opera como especial


Operacin Especial: Token que indica qu funcin debe llamar dentro de
la programacin. Este campo es sensible al contexto.

La programacin involucrada se debe realizar muy


cuidadosamente ya que puede llegar a corromper los datos de la
aplicacin ya que el sub servicio puede manipular datos que los
otros tipos de interfaces no pueden realizar.
En el cdigo involucrado se pueden realizar las siguientes
operaciones:

Clculos locales,
Llamadas a webservices adicionales, tal como es el caso de documentos
PDF.
Invocar a interfaces del sistema
Mezclar cualquiera de las anteriores.

Case "ChequeDeclarado"
Dim wstrxmlsalida As String = ""
Try
With idtVariablesBAMNet
wstrxmlsalida = CuentasChqDeclarado(.LeerDato("XMLIn"))
End With
Catch ex As Exception
wstrxmlsalida = "<Transaccion Codigo=""91104"" TipoMensaje=""OUT"">
"<CodigoError>1500</CodigoError><MensajeError><![CDATA[" &_
ex.Message & "--" & ex.StackTrace & "]]></MensajeError></Transaccion>"
Throw New Exception("Error en consulta cuentas cobro recurrente: " & ex.Message & ":::" &
ex.StackTrace)
End Try
odtDatosSalida.AgregarDato("XMLDeSalida", wstrxmlsalida)
wblReturn = True

XML de entrada

XML de salida

<Transaccion xmlns="" Codigo="91104"


TipoMensaje="IN">
<Usuario>9000090075</Usuario>
<Canal>BAMNet</Canal>
<Filial>1</Filial>
<Agencia>093</Agencia>

<Transaccion Codigo="91104"
TipoMensaje="OUT">
<Cuentas>
<Cuenta>

<RemoteIP>190.148.92.104</RemoteIP
>
<Rol>0</Rol>
<Cuentas>
<Cuenta>
<NoCuenta>3030555600</NoCuenta>
<Producto>3</Producto>
<Moneda>0</Moneda>
</Cuenta>
</Cuentas>
<Cuentas>
<Cuenta>
<NoCuenta>3040133900</NoCuenta>
<Producto>3</Producto>
<Moneda>0</Moneda>
</Cuenta>
</Cuentas>

<NoCuenta>3030555600</NoCuenta>
<Producto>3</Producto>
<Moneda>0</Moneda>
<Declarado>S</Declarado>
<Estado>C</Estado>
<CodigoError>0</CodigoError>
<MensajeError />
</Cuenta>
<Cuenta>
<NoCuenta>3040133900</NoCuenta>
<Producto>3</Producto>
<Moneda>0</Moneda>
<Declarado>S</Declarado>
<Estado>A</Estado>
<CodigoError>0</CodigoError>
<MensajeError />
</Cuenta>
</Cuentas>
<CodigoError>0</CodigoError>
<MensajeError />

BAMNET
2.0 interfaces 10-15minutos
especiales

Revisin cdigo

Break
15 minutos

20-30minutos

BAMNET 2.0 flujo de transaccin


Revisin documentacin

Procesamiento local

En este lugar se realizan las siguientes tareas

Verificacin de transaccin
Generacin de mensajes
Procesamiento de respuestas
Proceso de bitcora

Procesamiento Sybase (COBIS)

Procesamiento Branch ATM (COBIS)

Verificacin de estado del sistema (online/offline)


Ejecucin de procedimientos almacenados, siempre y cuando se
est en lnea
Generacin de secuenciales
Ejecucin de procedimientos almacenados tanto para
funcionamiento en lnea como para fuera de lnea.

Sistema operativo
Windows server 2008 R2 64 bits
Frameworks instalados 2.0, 3.5 y 4.0

Base de datos
SQL server 2008 SP 2 64 bits
CLR activado

IIS
Versin 7

La base de datos posee habilitadas tablas con tipos de datos XML que
permiten realizar bsquedas dentro de sus datos utilizando Xpath.
Existen dos bases de datos
Bamnet: En esta se guarda la bitcora
bamnetPreProd: En esta est la configuracin de transacciones y la
bitcora del da

Las tablas principales son las siguientes:


bamnet_config_transaccion: En esta tabla se encuentra la configuracin
de la transaccin.
Bamnet_log: Se guarda la bitcora de la ejecucin.
bamnet_log_servicio: Se guarda informacin adicional sobre la
ejecucin de un pago/consulta de servicio.
Bamnet_config_tran_offline: En esta tabla se encuentra la definicin
alternativa para cuando una transaccin se procese fuera de lnea.

15-20 minutos

BAMNet 2.0 Base de datos


Demo vsr-bamnet20

wsBAMNet
Este es el servicio web que recibe todos los
requerimientos de transacciones, los procesa y
devuelve una respuesta.
Mtodos del servicio

BVCheckLogin:

BancaSATPublicoClave:

Cifrar:

Este mtodo se utiliz durante la migracin de usuarios.


El propsito del mismo era que dado un usuario y una
contrasea ya cifrada, se verificara contra lo almacenado
en BAMNet 1.0
Este mtodo se utiliz durante la migracin de usuarios
de BancaSAT pblico hacia la nueva versin. El cifrado es
diferente a el algoritmo de cifrado COBIS.
Este mtodo cifra con la librera inetmap.dll de cobis,
pero tomando en cuenta nicamente una cadena de
entrada.

CifrarRaspable:

LimpiarMemoria:

XMLIn:

Este mtodo recibe dos parmetros de entrada, uno para


usuario y otro con la clave, tambin es tomado de
inetmap.dll.
Este mtodo refresca toda la memoria del servicio
destruyendo la copia que posee en memoria y cargando
la configuracin desde la base de datos.
Este mtodo es el que recibe todos los mensajes XML de
las interfaces, es quien procesa todas las transacciones
del sistema BAMNet 2.0

10-15 minutos

BAMNet 2.0 wsbamnet


Revisin web.config

Break
15 minutos

El servicio wsBamnet posee dos instancias en


produccin, una sirve especficamente para
transacciones que involucran pagos masivos,
esto para separar del canal transaccional este
tipo de transacciones que en algunos casos
son programadas.
La otra instancia sirve a todas las dems
transacciones del sistema.

El filtro de transacciones que pueden ser


procesadas por cada instancia se configura
en el archivo web.config del servicio en la
llave denominada sysTranHabilitadas, cuando
este se encuentra vaco puede procesar todas
las transacciones

<!-- Configuraciones de habilitacion de transacciones, si esta vacio todas estan


habilitadas -->
<add key="sysTransHabilitadas" value=""/>

5-10 minutos

BAMNet 2.0 wsbamnet


Revisin instancias

Tokens
Este servicio es utilizado para realizar verificacin
del token RSA ingresado por el usuario y que
necesita ser enviado hacia un servidor
especializado.

El token es un mtodo de seguridad de doble factor


que es utilizado en BAMNet 2.0 para algunas
transacciones tales como: Ingreso al sistema, pagos
masivos, ACH, transferencias a terceros.

Se apoya en una
instalacin cliente de
RSA llamada
WebAgent versin
5.3 para IIS

Este equipo es un
cliente de los
servidores
principales que se
llaman vsr-rsa1 y
vsr-rsa2

Los servidores vsrrsa1 y vsr-rsa2


estn configurados
por el proveedor
(SISAP) para que
funcionen en un
esquema de alta
disponibilidad.

La responsabilidad de
informtica BAM es
nicamente la de
monitorear el estado del
servidor, el proveedor
realiza todas las
actualizaciones
necesarias y debe
proveer la solucin a
cualquier problema que
presente esta plataforma.
nicamente el rea de
BAMNet posee usuarios
para interactuar con la
interface grfica de
ambos servidores.

10-15 minutos

BAMNet 2.0 Tokens


Revisin instalacin cliente

Servidor WSBamnet
Servicios Instalados
Documentos PDF
Estados de cuenta
Imagenes de cheques

Servidor Branch ATM (fuera de lnea)


Servicios de secuencia.
Fuera de lnea

Como funciona
Servicio de datos
Configuracin ambiente
Dashboard
Reentrada de transacciones

Para la creacin de documentos PDF se utiliz


la librera Open Source pdfsharp, esta se
encuentra disponible en este sitio:
http://www.pdfsharp.com/PDFsharp/
Esta librera permite realizar todas las
operaciones necesarias para crear
documentos PDF tal y como BAMNet los
necesita.

Estado de cuenta de monetarios

Los estados de cuenta para el producto monetarios


se crea completamente en formato PDF el cual es
serializado en datos hexadecimales para ser
transmitidos al cliente por medio de wsBamnet

El servicio puede crear estados de cuenta tanto de


BAM como de Mercom Bank cada uno son su logo y
mensajes predefinidos.

Continuacin
Cada documento est protegido contra extraccin o
manipulacin de datos por medio de una
contrasea generada aleatoriamente de 128
caracteres.

La interface de salida tambin provee el nombre


que se debe de dar al archivo al momento que sea
descargado o visualizado por el cliente.

Seguridad

Para asegurarnos que este servicio fuera accesible nica


y exclusivamente desde wsBamnet y que el
requerimiento fuera nico, se utiliza como mecanismo
de autorizacin una transaccin de token (no confundir
con RSA) la cual genera un nmero nico y que posee un
tiempo de vida de 5 minutos.

Si el Token es enviado mas de una vez o si se enva


despus de los 5 minutos que tiene vigencia, el sistema
devolver un mensaje indicando que el token enviado no
es vlido o ya fue utilizado anteriormente.

La transaccin para
generar el token
para estados de
cuenta es la 91050

Formatos de entrada y salida


<Transaccion Codigo="91050"
TipoMensaje="IN">
<Canal>BAMNet</Canal>
<Usuario>01090948</Usuario>
<Filial>1</Filial>
<Rol>0</Rol>
<RemoteIP>172.16.20.140</RemoteIP>
<Agencia>093</Agencia>
</Transaccion>

<Transaccion Codigo="91050"
TipoMensaje="OUT">
<Token>20120913085709</Token>
<CodigoError>0</CodigoError>
<MensajeError />
</Transaccion>

La transaccin designada para obtener un


estado de cuenta en formato PDF es la
91051.
Se realizan las siguiente validaciones:
Token vlido o vigente
Token corresponde al cliente.

A continuacin se muestra un ejemplo con


una porcin del XML retornado

XML Entrada

XML Salida

<Transaccion Codigo="91051"
TipoMensaje="IN">
<Canal>BAMNet</Canal>
<Usuario>01090948</Usuario>
<Filial>1</Filial>
<Rol />
<Agencia>093</Agencia>
<RemoteIP>172.16.20.140</RemoteIP>
<Token>20120913085709</Token>
<NoCuenta>0015000095</NoCuenta>
<Mes>8</Mes>
<Anio>2012</Anio>
</Transaccion>

<Transaccion Codigo="91050" TipoMensaje="OUT">


<Archivo>EC2120000197(09-2011).pdf</Archivo>
<PDF>255044462D312E340A25D3F4CCE10...454F460
A</PDF>
<CodigoError>0</CodigoError>
<MensajeError />
</Transaccion>

Imgenes de cheques

Las imgenes de cheques sufrieron un cambio de la


versin 1.0 hacia la 2.0; anteriormente nicamente
se mostraba una pgina html con el anverso y el
reverso del cheque sin brindar mayor informacin.

En esta nueva versin lo que se hizo fue que ambas


caras del cheque se colocaron dentro de una pgina
en un documento PDF.

Continuacin

Las medidas de seguridad son las mismas que para un


estado de cuenta de monetarios.
El proceso para realizar este documento es el siguiente:

Ingreso de nmero y cheque a una base de datos.


Se busca el ndice de esa imagen.
Se busca dentro de un archivo comprimido DBF
Se extrae y se guarda en un directorio temporal.
Se agrega a la pgina PDF
Se elimina el archivo del directorio temporal.

Seguridad
Al igual que la transaccin de estado de cuenta, se
implement una transaccin para creacin de
token.

A continuacin se encuentra un ejemplo del


XML

XML Entrada

XML Salida

<Transaccion Codigo="91055"
TipoMensaje="IN">
<Canal>BAMNet</Canal>
<Usuario>00832803</Usuario>
<Filial>1</Filial>
<Rol>0</Rol>
<RemoteIP>172.16.20.140</RemoteIP>
<Agencia>093</Agencia>
<NoCuenta>4901168225</NoCuenta>
<NoCheque>18201588</NoCheque>
</Transaccion>

<Transaccion Codigo="91055"
TipoMensaje="OUT">
<Token>20120803142023</Token>
<CodigoError>0</CodigoError>
<MensajeError />
</Transaccion>

La transaccin para obtener imgenes de


cheques es la nmero 91056
Se realizan las siguiente validaciones:

Token vlido o vigente


Token corresponde al cliente.
Token, cuenta y nmero de cheque correspondan
mutuamente.

A continuacin se muestra un ejemplo con una


porcin del XML retornado

XML Entrada

XML Salida

<Transaccion Codigo="91056"
TipoMensaje="IN">
<Canal>BAMNet</Canal>
<Usuario>01099767</Usuario>
<Filial>1</Filial>
<Rol />
<Agencia>093</Agencia>
<RemoteIP>10.99.99.4</RemoteIP>
<Token>20110318223537</Token>
<NoCuenta>4901533055</NoCuenta>
<NoCheque>85805617</NoCheque>
</Transaccion>

<Transaccion Codigo="91056" TipoMensaje="OUT">


<Archivo>490153305585805617.pdf</Archivo>
<PDF>255044462D312E340A25D3F4CCE10A...460A<
/PDF>
<CodigoError>0</CodigoError>
<MensajeError />
</Transaccion>

10 minutos

Wsbamnet documentos pdf


Revisin cdigo

Break
20 minutos

El servidor Branch ATM realiza varias funciones:


Da nmeros de secuencia para transacciones en BAMNet
(ssn branch)
Tiene informacin de cuentas durante el cierre (fuera de
lnea) tanto para cajeros como para BAMNet 2.0
Gestiona transacciones ATM o POS para tarjetas de
dbito BAM

Secuencias de transaccin

Esto se realiza a travs de un procedimiento


almacenado en la base de datos Cobis cuyo nombre
es spbn_getSsn.
Recibe dos parmetros, uno es la tabla que
generar el secuencial y el otro es una variable de
salida para el siguiente nmero.
El contador de la secuencia se encuenta en la tabla
cobis..cl_seqnos

Fuera de lnea

Este comportamiento de BAMNet se da durante el


momento del cierre diario de COBIS.
La intencin de la misma es brindar el servicio 24 x 7, o
al menos dar esa apariencia.

En esta modalidad, las transacciones son almacenadas


localmente para luego ser reenviadas hacia el servidor
central para que sean operadas inmediatamente.

Estado de producto

Esto se verifica al ejecutar el procedimiento


almacenado llamado
cobis..bv_valida_estado_producto_ws en Sybase.
Actualmente el fuera de lnea inicia entre 00:00 y
00:15 todos los das y se extiende en promedio 3.5
horas. Los das de fin de mes, semestre o ao se
puede tardar hasta 6 7 horas.
Se adjunta una muestra de cierres cuando se inici
el trabajo de BAMNet 2.0

Cmo funciona

Previo a realizar el cierre diario, el operador de turno realiza una


actividad desde el kernel branch de ATM para trasladar una copia
de las cuentas de ahorros y monetarios con sus saldos hacia el
servidor Branch.
Luego se coloca el estado de los productos a deshabilitados.
Cuando ingresa una transaccin se est verificando el estado del
servicio.
Cuando el estado del servicio est habilitado, entonces la
transaccin se enva directamente hacia Cobis central.

Continuacin

Cuando est fuera de lnea, el wsBamnet


verifica si la transaccin se puede efectuar
fuera de lnea, de ser negativo, se muestra
un mensaje indicando esto al cliente y le
pide que intente mas tarde.

Si la transaccin se puede realizar fuera de lnea,


entonces se carga la configuracin de la transaccin
para el ambiente fuera de lnea, esto se puede verificar
en la tabla bamnet_config_tran_offline.

Continuacin
La transaccin se ejecuta localmente y wsBamnet
crea un registro de reentrada para esta operacin.
Se muestra al cliente un comprobante de la
operacin que la respalda.
Este funcionamiento es similar al de un cajero en
horario de cierre de operaciones diario.

Fuera
deminutos
lnea registro de
10
transaccin

Revisin cdigo

El dashboard nos ayuda a controlar el estado de


ejecucin del sistema durante el horario hbil ya
que desde las 7 AM hasta que se coloca fuera de
lnea con la primera transaccin que lo detecte, el
sistema opera en lnea.
En el horario desde fuera de lnea hasta las 7 AM,
el sistema est preguntando constantemente al
servidor central el estado de ejecucin y la fecha
de proceso que debe aplicar.

Las operaciones
que se pueden
realizar desde esta
herramienta son las
siguientes:
Habilitar
Deshabilitar
Fuera de lnea/en
lnea
Rentrada

Deshabilitar
Cuando se selecciona
la opcin deshabilitar
se puede seleccionar
un motivo, estos
motivo son
configurables desde
el web.config

Habilitar
Cuando se selecciona
esta opcin el
Dashboard intenter
habilitar nuevamente
el servicio sin
importar la razn que
sea, as mismo,
consulta nuevamente
el estado de los
productos para
sugerir un offline

Offline
En esta opcin se
presenta con qu
fechas estar
trabajando el
servicio.
Estas fechas no se
pueden modificar por
ningn motivo.

Reentry
Esta opcin es la que
opera la rentrada de
transacciones.
Hay que tomar en
cuenta que se puede
procesar una
rentrada de fechas
anteriores.

Reentrada de transacciones
El trmino Reentry o rentrada de transacciones
es la operacin de obtener las transacciones que
pudieron realizar durante el fuera de lnea y que es
necesario asentarlo en el servidor central.

Estas transacciones quedan con histrico de fecha


original y fecha de aplicacin en el sistema
wsBamnet

Cmo funciona

Existe un Dashboard en el sitio wsBamnet, se encuentra


en http://vsr-bamnet20/Dashboard/Dashboard.aspx,
en esta pgina se puede ver informacin del estado del
servicio, se puede colocar fuera de lnea
momentneamente y ejecutar la operacin de rentrada.

Se inicia con la verificacin del estado del sistema


central, si no est disponible se aborta el proceso por
completo.

Continuacin
Se invoca la ejecucin de un procedimiento
almacenado que recolecta la informacin de qu
transacciones son susceptibles a reentrada.
Si no hay transacciones por rentrar se aborta el
proceso.

Break
10 minutos

Continuacin

Luego, por cada registro que se encuentre se realiza lo


siguiente:

Se genera un nuevo id de transaccin, el original se guarda en


un Tag indicndolo.
Se hace una carga del XML original para verificar la integridad
del mismo cuando se recuper la transaccin.
Se realiza una llamada al servicio wsBamnet con el XML
generado.
Se verifica la respuesta de la ejecucin.
Se marca el registro con el resultado de la operacin tanto de la
transaccin nueva como los datos de la rentrada.

10 minutos

Fuera de lnea rentrada de transacciones


Revisin cdigo

Para realizar pruebas finales y certificar es


necesario realizar lo siguiente:
1. Inhabilitar el producto 18

2. Cambiar la fecha del servidor para que sea la una de la


maana.
3. Realizar transacciones y verificar que queden en
estado de reentrada.
4. Verificar que el saldo del nt-bvprod haya sido
rebajado.

Continuacin
5. Habilitar producto 18 nuevamente.
6. Ejecutar la reentrada desde el Dashboard.
7. Verificar los movimientos de las cuentas de las
pruebas.
8. Ejecutar procedimientos en la base de datos para
verificar que no existan nuevos registros para
realizar las rentradas.
9. Informar los resultados al rea de BAMNet

Servidor central Sybase (COBIS)

Desarrollo y mantenimiento

Procedimientos almacenados
Parametrizacin de servicios/procesos

Ubicacin de fuentes
Nomencladura de fuentes
Esquema de distribucin de fuentes
Distribucin binarios para desarrollo y produccin

Configuracin de nuevo servidor


Base de datos
Componentes
Servicios

Toda la comunicacin entre wsBamnet y el servidor


Central Sybase ASE 15 se realiza por medio de
procedimientos almacenados. Las consultas ad-hoc
no estn soportadas para evitar XSS.
Por regla los procedimientos residen en la base de
datos denominada cob_bamnet, esta base de datos
funciona como pivote para realizar llamadas a las
otras bases de datos, pero si est permitido el uso
directo de un procedimiento que resida en otra base
de datos.

Configuracin de transacciones (causas)

Las transacciones que involucran transferencias entre


cuentas o notas de dbito/crdito involucran causas.
Las causas indican la razn por la cual se realiz la
transaccin, as como tambin el perfil contable en
donde se asentar la partida.

Las interfaces desconocen las causas de la transaccin,


es decir, para el sistema nicamente es de su
conocimiento que debe realizar una transferencia, pero
desconoce las causas.

La configuracin de las causas para transacciones


de transferencias o notas de dbito/crdito se
almacenan en la tabla bv_causas_transferencias
Esta tabla permite configurar para un mismo
cdigo de transaccin diferentes causas
dependiendo de:
Canal
Producto
Moneda

Lo que se obtiene
como resultado en
la consulta
utilizando estos
filtros es lo
siguiente

Transaccin origen
Causa origen
Transaccin destino
Causa destino

Hay que tomar en


cuenta que la
decisin de utilizar
origen o destino
depende del
contexto de la
cuenta en la
operacin.

Transaccin 91044 Transferencia


cuentas propias
Canal

BAMNet

Producto

3 (monetario)

Moneda

0 (quetzales)

Transaccin origen 50
Causa origen

160

Transaccin
destino

48

Causa destino

155

Configuracin de servicios
Dentro de la implementacin de BAMNet 2.0 se tom la
decisin de que la configuracin de los servicios no sera
esttica sino que deba responder a una parametrizacin
que residiera en el sistema central para mayor
comodidad y acoplamiento de nuevos servicios.
Todos los servicios, incluyendo cobros por cuenta ajena
poseen una parametrizacin de campos y tipos de
campos.

Lo primero que debemos hacer es registrar el


servicio en la tabla bv_servicios con la siguiente
informacin

Cdigo.
Nombre.
Estado.
Si permite pago con tarjeta de crdito
Si permite pago con diferente moneda.
Si permite monto libre
Cul es su moneda por defecto
Si es men

Posterior a esto procedemos a configurar los


campos que tiene el servicio en la tabla
bv_servicios_campos_gen:
Si es para ingreso de datos
Si es salida de datos
Si es mandatorio
Si es visible

Continuacin

Si ser referencia en el estado de cuenta


El valor del campo
El tipo de dato que posee

Nmero
Moneda
String.
Combo.

Si posee algn formato especial

Continuacin

Descripcin del campo


Texto de ayuda que debe mostrar
Longitud mnima y mxima

El orden del campo.


Token para ser buscado ms fcil por la clase
datos.

Canales habilitados para el servicio


Se debe configurar en la tabla bv_servicios_canal el
servicio recien configurado e indicar si realiza
consulta previa, as como el estado en el que el
servicio est en ese canal.

Causas y cuenta transitoria del servicio

Cada servicio posee una cuenta transitoria en


donde se alimentan los crditos. Esta operacin
tambin tiene una causa asignada.
Cada servicio en cada canal posee como mnimo
dos registros de cuenta origen, una para
monetarios y otra para ahorros. Se puede
configurar tambin la causa de la transaccin
cuando el producto origen es una tarjeta de crdito.

Configuracin para transaccin de consulta y


pago

Por ltimo, debemos configurar el comportamiento del


servicio en BAMNet, esto quiere decir que el servicio
posee una transaccin de consulta y otra para realizar el
pago.
Por ejemplo, claro prepago utiliza para consulta la
transaccin 91039 y para el pago la 91042, mientras
que Movistar utiliza para consultar la transaccin 91065
y para el pago la 91042.

Pago de tarjeta de crdito

De igual forma, se puede parametrizar las causas


tanto de crdito como de dbito para el pago de
tarjeta de crdito.
Esta divisin se puede realizar bajo los siguientes
filtros

BIN
Producto
Moneda
Medio de pago

Pago de tarjeta de
crdito
La configuracin se
guarda en la tabla
bv_causas_pago_tc.

Atributo

Valor

BIN

421837

Medio de
pago

BAMNet

Producto

3 (Monetarios)

Moneda

0 (Quetzales)

Causa dbito

211

Causa crdito

136

15-20 minutos

Sybase configuracin de servicios


Revisin tablas y cdigo relacionado

Break
15 minutos

Ubicacin de los fuentes

Todos los fuentes estn versionados y protegidos dentro


del servidor de SourceSafe llamado vsr-vss
Todo el cdigo de BAMNet 2.0 se encuentra en la
carpeta $/BAMNET 2.0

Dentro de esta carpeta se encuentran los


siguientes directorios:

Documentos: Directorio para colocar documentos


importantes del proyecto.

Continuacin de carpetas

Configuracin: Mantiene informacin acerca de la configuracin del


producto.
Fuentes: Este es el directorio raz del cdigo fuente, tiene tres subcarpetas

BackEnd: En este directorio se almacenan todos los procedimientos


almacenados y scripts necesarios para interactuar con la base de datos. As
mismo posee otras sub carpetas

Tablas: Ac se encuentran todas las tablas

SP: Se almacenan todos los procedimientos almacenados.

Scripts: Se tienen los scripts asociados a operaciones de BAMNet 2.0

Todas las carpetas poseen las siguientes sub divisiones

Central: Todo para el servidor Sybas


Administrativo: Para la parte administrativa
Transaccional: Todas las transacciones asociadas

SQL: Todo para servidores SQL ya sean de BAMNet 2.0 o Branch


Administrativo
Transaccional

Nomenclatura de fuentes
Se tom la decisin de que se utilizara como
nomenclatura una estructura muy parecida a la de
cobis para:
Extensiones de archivos
Documentacin interna

Se agreg un encabezado de documentacin en


caso el procedimiento lo requiriera y la
documentacin base no fuera tan legible.

Manejo de errores

Para el manejo de errores se coloc como estndar utilizar siempre y en todos los
casos de retorno invlido la ejecucin del procedimiento almacenado
cobis..sp_cerror

if @@error != 0
begin
/* Error en creacion de transaccion de servicio */
exec cobis..sp_cerror
@t_debug = @t_debug,
@t_file = @t_file,
@t_from = @w_sp_name,
@i_num = 203005
return 1
End
--------------------------------------------if( @@rowcount != 1 )--no existe el medidor
begin
exec cobis..sp_cerror
@t_debug = 'N',
@t_from = @w_name_sp,
@i_num = 205039,
@i_msg = 'No existe el medidor ingresado'
return 205039
end

Archivo

Extensin

Procedimiento almacenado

.sp

Prefijo de procedimientos

sp_bn

Tabla

*.txt

Script

*.sc

/************************************************************************/
/*

Archivo:

bn_solchq.sp

*/

/*

Stored procedure:

sp_bn_solicitud_chequeras

*/

/*

Base de datos:

cob_bamnet

*/

/*

Producto:

BAMNet20

*/

/*

Disenado por:

Luis Valle Lainfiesta

/*

Fecha de escritura: 01-Mar-2010

*/
*/

/************************************************************************/
/*

PROPOSITO
Solicitud de chequeras

*/

/************************************************************************/
/*

MODIFICACIONES
FECHA

AUTOR

RAZON

*/

/************************************************************************/
/*Documentacion
'''<BAMNet2.0>Proyecto BAMNet2.0</BAMNet2.0>
''' <summary>
''' Solicitud de Chequeras
''' </summary>
''' <param name="@i_cta">Nmero de cuenta del cliente</param>
''' <param name="@i_mon">Moneda del producto. dominio: [catalogo de cobis..cl_moneda]</param>
''' <param name="@i_tchq">Tipo de Chequera: {catalogo obtenido por sp_tr_crea_cheq de la tabla cob_cuentas..cc_tchequera}</param>
''' <param name="@i_aut">Usuario Autorizante</param>
''' <param name="@i_nchqs">Nmero de Cheques. dominio: {catalogo de cobis..cl_catalogo tabla cc_numcheques}</param>
''' <param name="@i_ofientr">Agencia donde se entregar la chequera. Dominio: [cobis..cl_oficina]</param>
''' <param name="@o_referencia">Nmero de referencia de la transaccin devuelto por COBIS</param>
''' <returns>Regresa: 0=Exitoso <>0=Error</returns>
''' <remarks></remarks>
fin documentacion*/

Actualizacin de cdigo interno sin nuevas


referencias
En la carpeta Bin de la instancia wsBamnet se debe
crear una carpeta llamada Bkyyyymmdd y se debe
colocar los 7 archivos mas recientes colocados ah.

De la carpeta en donde se realiz la publicacin


local se debe tomar los 7 archivos siguientes

Continuacin
Por favor tomar en que el archivo que es
incremental, es el App_Web_****.dll, este archivo
lleva un correlativo de compilacin.

Actualizacin de cdigo interno sin nuevas


referencias
Se debe realizar lo mismo que el caso anterior.
Adems se debe editar el archivo Web.config con la
nueva llave ingresada.

15-20 minutos

Desarrollo y mantenimiento
Revisin de gua y documentos de
fuentes

Break
5 minutos

45 minutos

Configuracin de un nuevo servidor


Revisin de gua y documentos de
fuentes

Configuracin de interfaces
Interfaces de base de datos
Resultados en matriz.
Resultados en transpuesta

Interfaces de servicios
EEGSA
Cobro por cuenta ajena

Interfaces especiales
Consulta de servicio de cheques declarados

Servidor de pago de servicios

WS wspagosenlinea
Cmo se comunican.
Cmo interpretar su informacin
Tipos de Transaccin

Webservices
MQSeries
Sockets
DLL

Potrebbero piacerti anche