Simulador de Host usando JPOS
Para realizar pruebas de aplicaciones financieras embebidas en dispositivos POS, siempre es muy útil tener un Simulador de Host que nos permita verificar la correcta programación de las mismas. Por lo tanto, ya hace algún tiempo, me dediqué a realizar un Simulador de Host básico, escrito en Java y utilizando la versátil biblioteca JPOS.
Este simulador recibe transacciones ISO-8583 respetando un formato descrito por un archivo xml (ver JPOS) y envía la misma transacción original 0200 agregándole el Bit39 con el valor 00 (aprobado) en la respuesta 0210.
Pantalla inicial del Simulador de Host
Las opciones de configuración son las siguientes:
- Puerto: Indica el número de puerto donde el simulador estará recibiendo las transacciones ISO-8583
- Empaquetador: Es la especificación de la mensajería a ser utilizada. Esta opción aprovecha la clase generic-packager de JPOS, lo que permite en tiempo de ejecución elegir el formato del mensaje ISO-8583a enviar (inyección de dependencia)
- Recibe TPDU: Se marca este check-box si se espera que el simulador reciba TPDU
Ejecución del programa:
Log generado por la aplicación:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 <log realm="server.session/10.1.16.108" at="Thu Nov 13 17:40:25 VET 2014.689"> <session-start/></log><log realm="channel/10.1.16.108:50543" at="Thu Nov 13 17:40:25 VET 2014.692" lifespan="3ms"> <receive> <isomsg direction="incoming"> <!-- org.jpos.iso.packager.GenericPackager[./cfg/iso-packager.xml] --> <field id="0" value="0200"/> <field id="2" value="600000000000"/> <field id="3" value="012000"/> <field id="4" value="000000060000"/> <field id="5" value="000000060000"/> <field id="7" value="1018201021"/> <field id="11" value="000001"/> <field id="12" value="154018"/> <field id="13" value="0814"/> <field id="14" value="1511"/> <field id="15" value="0814"/> <field id="18" value="6011"/> <field id="19" value="862"/> <field id="22" value="0510"/> <field id="25" value="00"/> <field id="29" value="000000000"/> <field id="31" value="000000000"/> <field id="32" value="601288"/> <field id="35" value="600000000000=15112200000000015350"/> <field id="37" value="229218619090"/> <field id="41" value="1029 "/> <field id="43" value="BELLA VISTA II B-AT-0086-ZU "/> <field id="49" value="937"/> <field id="50" value="937"/> <field id="53" value="2001040100000000"/> <field id="61" value="00000002005"/> <field id="102" value="01010101010101010101"/> <field id="123" value="PD0200000035"/> <field id="127" value="220000000000000000060000"/> </isomsg> </receive></log><log realm="channel/10.1.16.108:50543" at="Thu Nov 13 17:40:25 VET 2014.694"> <send> <isomsg direction="outgoing"> <!-- org.jpos.iso.packager.GenericPackager[./cfg/iso-packager.xml] --> <field id="0" value="0210"/> <field id="2" value="6000000000000000"/> <field id="3" value="012000"/> <field id="4" value="000000060000"/> <field id="5" value="000000060000"/> <field id="7" value="1018201021"/> <field id="11" value="000001"/> <field id="12" value="154018"/> <field id="13" value="0814"/> <field id="14" value="1511"/> <field id="15" value="0814"/> <field id="18" value="6011"/> <field id="19" value="862"/> <field id="22" value="0510"/> <field id="25" value="00"/> <field id="29" value="000000000"/> <field id="31" value="000000000"/> <field id="32" value="601288"/> <field id="35" value="6000000000000000=15112200000000015350"/> <field id="37" value="229218619090"/> <field id="39" value="00"/> <field id="41" value="1029 "/> <field id="43" value="BELLA VISTA II B-AT-0086-ZU "/> <field id="49" value="937"/> <field id="50" value="937"/> <field id="53" value="2001040100000000"/> <field id="102" value="01010101010101010101"/> <field id="123" value="PD0200000035"/> <field id="127" value="220000000000000000060000"/> </isomsg> </send></log>
A continuación les dejo el enlace donde podrán encontrar código fuente de este proyecto: Simulador ISO8583
Por favor si tienen algún comentario o sugerencia no duden en escribirme.


Comentarios