Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
Capa de administracin:
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.
Continuacin
Central: Clase que implementa AseClient para
interactuar con Sybase
Mssql: Clase que implementa
interactuar con MS SQL Server
SqlClient
para
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
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.
Sitio administrativo:
Sitio transaccional:
Break
15 minutos
<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>
Break
15 minutos
Interfaz de servicio
Interfaz especial
Atributo
Valor
Cdigo de
transaccin
90003
Nombre de
transaccin
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
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>
<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>
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>
</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>
XML de entrada
XML de salida
XML de entrada
XML de salida
<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
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 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
Procesamiento local
Verificacin de transaccin
Generacin de mensajes
Procesamiento de respuestas
Proceso de bitcora
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
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:
BancaSATPublicoClave:
Cifrar:
CifrarRaspable:
LimpiarMemoria:
XMLIn:
10-15 minutos
Break
15 minutos
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.
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
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
Servidor WSBamnet
Servicios Instalados
Documentos PDF
Estados de cuenta
Imagenes de cheques
Como funciona
Servicio de datos
Configuracin ambiente
Dashboard
Reentrada de transacciones
Continuacin
Cada documento est protegido contra extraccin o
manipulacin de datos por medio de una
contrasea generada aleatoriamente de 128
caracteres.
Seguridad
La transaccin para
generar el token
para estados de
cuenta es la 91050
<Transaccion Codigo="91050"
TipoMensaje="OUT">
<Token>20120913085709</Token>
<CodigoError>0</CodigoError>
<MensajeError />
</Transaccion>
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>
Imgenes de cheques
Continuacin
Seguridad
Al igual que la transaccin de estado de cuenta, se
implement una transaccin para creacin de
token.
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>
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>
10 minutos
Break
20 minutos
Secuencias de transaccin
Fuera de lnea
Estado de producto
Cmo funciona
Continuacin
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
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.
Cmo funciona
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
10 minutos
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
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
Lo que se obtiene
como resultado en
la consulta
utilizando estos
filtros es lo
siguiente
Transaccin origen
Causa origen
Transaccin destino
Causa destino
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.
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
Continuacin
Nmero
Moneda
String.
Combo.
Continuacin
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
Break
15 minutos
Continuacin de carpetas
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
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:
/*
*/
*/
/************************************************************************/
/*
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*/
Continuacin
Por favor tomar en que el archivo que es
incremental, es el App_Web_****.dll, este archivo
lleva un correlativo de compilacin.
15-20 minutos
Desarrollo y mantenimiento
Revisin de gua y documentos de
fuentes
Break
5 minutos
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
WS wspagosenlinea
Cmo se comunican.
Cmo interpretar su informacin
Tipos de Transaccin
Webservices
MQSeries
Sockets
DLL