Post on 16-Nov-2015
description
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 SqlClient para interactuar con MS SQL Server
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
BAMNet 867345607 1 093 127.0.0.1
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
1
DOLAR AMERICANO
7.9200
7.9400
8.1000
2
EURO
1.3300
1.3700
1.4700
0
Break 15 minutos
Interfaz de base de datos Esta interfaz interacta nicamente contra alguna base de
datos que est soportada por el sistema.
Interfaz de servicio 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.
Interfaz especial 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
@i_catalogo=[CodigoCatalogo] @i_modo=[Operacion] @i_valor=[Valor]
Mapeo XML Salida
BAMNet [CODIGO] [VALOR] [ESTADO] @Return
XML Entrada XML Salida
BAMNet tvallejo 1 ::1 0 16 9 T
BAMNet 0 QUETZAL V 1 DOLAR AMERICANO V 2 EURO V 0
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
@t_trn=132 @i_operacion=Q @i_persona=[CodigoCliente]
Mapeo XML Salida [NumeroColumna] [NombreColumna] [ValorColumna] @Return
XML Entrada XML Salida
BAMNet sarodasr 16 1 1 ::1 202301
1 Fecha de Nacimiento 02/04/1952 2 Tipo de Documento CV 3 Nmero Documento O1600030985 0
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
BAMNet 00048096 1 192.16.1.4 0 093
-356 Instituto Belga Guatemalteco 91069 91043 N S N 0 6 Claro Postpago 91039 91042 N N N 0 95000 Claro N S S 0 0
XML Entrada XML Salida
BAMNet 9000040909 1 093 10.99.99.3 0 5
NUMERODETELEFONO 1 Numero de telefono Numero de telefono CLARO prepago 0 S S N S S 8 8 TIEMPODEAIRE 2 Tiempo de aire a comprar Tiempo de aire a comprar 7 N N N N 10,10|25,25|50,50|100,100|200,200 0 5 Efectivo 0 0 0 5 0
XML de entrada XML de salida
BAMNet 9000073077 1 127.0.0.1 0 093 NUMERODETELEFONO 1 Numero de telefono Numero de telefono CLARO prepago 0 S S N S 55111113 S 8 8 TIEMPODEAIRE 2 Tiempo de aire a comprar Tiempo de aire a comprar 7 N N N N 10,10|25,25|50,50|100,100|200,200 0 5 0 0 0 5 0
BAMNet 9000073077 1 127.0.0.1 0 093 NUMERODETELEFONO 1 Numero de telefono Numero de telefono CLARO prepago 0 S S N S 55111113 S 8 8 TIEMPODEAIRE 2 Tiempo de aire a comprar Tiempo de aire a comprar 7 N N N N 10,10|25,25|50,50|100,100|200,200 0 5 0 0 0 5 0
XML de entrada XML de salida
BAMNet 00122430 1 216.230.142.194 0 259 NUMERODETELEFONO 1 Numero de telefono 0 S S N S 59435583 S 8 8 TIEMPODEAIRE 2 Tiempo de aire a comprar 7 N N N N 10,10|11,11|25,25|27,27|50,50|100,100|200,200 0 5 4050253740 4 0 25 0.00 25 5 0
BAMNet 00122430 1 216.230.142.194 0 259 NUMERODETELEFONO 1 Numero de telefono 0 S S N S 59435583 S 8 8 TIEMPODEAIRE 2 Tiempo de aire a comprar 7 N N N N 10,10|11,11|25,25|27,27|50,50|100,100|200,200 0 5 4050253740 4 0 25 0.00 25 5 0 11471880
106
[@NUMERODETELEFONO]
[@NUMERODETELEFONO]
[Montos/Efectivo]
[Montos/Efectivo]
0.00
0.00
0.00
[Montos/Efectivo]
0
[Montos/Saldo]
[var:bamnet.SecuenciaSVCwsPEL,valorpordefecto:0]
[bamnet.ValidacionServicio]
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 = " "1500"
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
9000090075 BAMNet 1 093 190.148.92.104 0 3030555600 3 0 3040133900 3 0
3030555600 3 0 S C 0 3040133900 3 0 S A 0 0
BAMNET 2.0 interfaces - especiales
Revisin cdigo
10-15minutos
Break 15 minutos
BAMNET 2.0 flujo de transaccin Revisin documentacin
20-30minutos
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) Verificacin de estado del sistema (online/offline) Ejecucin de procedimientos almacenados, siempre y cuando se
est en lnea
Procesamiento Branch ATM (COBIS) 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.
BAMNet 2.0 Base de datos Demo vsr-bamnet20
15-20 minutos
wsBAMNet Este es el servicio web que recibe todos los
requerimientos de transacciones, los procesa y devuelve una respuesta.
Mtodos del servicio
BVCheckLogin: 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
BancaSATPublicoClave: 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.
Cifrar: Este mtodo cifra con la librera inetmap.dll de cobis,
pero tomando en cuenta nicamente una cadena de entrada.
CifrarRaspable: Este mtodo recibe dos parmetros de entrada, uno para
usuario y otro con la clave, tambin es tomado de inetmap.dll.
LimpiarMemoria: Este mtodo refresca toda la memoria del servicio
destruyendo la copia que posee en memoria y cargando la configuracin desde la base de datos.
XMLIn: Este mtodo es el que recibe todos los mensajes XML de
las interfaces, es quien procesa todas las transacciones del sistema BAMNet 2.0
BAMNet 2.0 wsbamnet Revisin web.config
10-15 minutos
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
BAMNet 2.0 wsbamnet Revisin instancias
5-10 minutos
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 vsr-rsa1 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.
BAMNet 2.0 Tokens Revisin instalacin cliente
10-15 minutos
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.
http://www.pdfsharp.com/PDFsharp/http://www.pdfsharp.com/PDFsharp/
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
BAMNet 01090948 1 0 172.16.20.140 093
20120913085709 0
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
BAMNet 01090948 1 093 172.16.20.140 20120913085709 0015000095 8 2012
EC2120000197(09-2011).pdf 255044462D312E340A25D3F4CCE10...454F460A 0
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
BAMNet 00832803 1 0 172.16.20.140 093 4901168225 18201588
20120803142023 0
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
BAMNet 01099767 1 093 10.99.99.4 20110318223537 4901533055 85805617
490153305585805617.pdf 255044462D312E340A25D3F4CCE10A...460A 0
Wsbamnet documentos pdf Revisin cdigo
10 minutos
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 de lnea registro de transaccin
Revisin cdigo
10 minutos
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.
http://vsr-bamnet20/Dashboard/Dashboard.aspxhttp://vsr-bamnet20/Dashboard/Dashboard.aspxhttp://vsr-bamnet20/Dashboard/Dashboard.aspx
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.
Fuera de lnea rentrada de transacciones Revisin cdigo
10 minutos
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) Procedimientos almacenados Parametrizacin de servicios/procesos
Desarrollo y mantenimiento 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
Sybase configuracin de servicios Revisin tablas y cdigo relacionado
15-20 minutos
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
'''Proyecto BAMNet2.0
'''
''' Solicitud de Chequeras
'''
''' Nmero de cuenta del cliente
''' Moneda del producto. dominio: [catalogo de cobis..cl_moneda]
''' Tipo de Chequera: {catalogo obtenido por sp_tr_crea_cheq de la tabla cob_cuentas..cc_tchequera}
''' Usuario Autorizante
''' Nmero de Cheques. dominio: {catalogo de cobis..cl_catalogo tabla cc_numcheques}
''' Agencia donde se entregar la chequera. Dominio: [cobis..cl_oficina]
''' Nmero de referencia de la transaccin devuelto por COBIS
''' Regresa: 0=Exitoso 0=Error
'''
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.
Desarrollo y mantenimiento Revisin de gua y documentos de
fuentes
15-20 minutos
Break 5 minutos
Configuracin de un nuevo servidor Revisin de gua y documentos de
fuentes
45 minutos
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