Modo consola
El modo consola corre sin pantalla: sirve para el primer contacto con un switch nuevo, para dejar un visor de trazas escuchando y para ejecutar proyectos de certificación en integración continua.
# macOS o Linux, desde la carpeta del simulador
./ejecutar-simulador.sh cli --help
# Windows
ejecutar-simulador.bat cli --help
En los ejemplos, switch.example.net y el puerto 9502 representan tu switch o autorizador de pruebas.
1. Probar la conexión con un mensaje de red
cli echo envía un 0800. Valida el framing y la codificación sin tocar tarjetas: es el primer disparo recomendado contra un switch nuevo.
./ejecutar-simulador.sh cli echo --host switch.example.net --port 9502
2. Enviar una transacción y verificar el resultado
./ejecutar-simulador.sh cli send --host switch.example.net --port 9502 \
--pan "$PAN_PRUEBA" --expiry 2812 \
--amount 10.00 --currency 928 \
--terminal TERM0042 --merchant 000000000012345 \
--expect-rc 00 --json-out evidencia/compra.json
$PAN_PRUEBA es una tarjeta de pruebas de tu emisor (por ejemplo 990500******0015); nunca uses tarjetas reales.
| Opción | Por defecto | Uso |
|---|---|---|
--host, --port | 127.0.0.1, 9502 | Destino TCP. |
--timeout | 15000 | Milisegundos de espera de la respuesta. |
--header-length | 2 | Bytes binarios (big-endian) del prefijo de longitud. |
--charset | Cp1047 (EBCDIC) | Usa US-ASCII si el host lo pide. |
--ascii-bitmap | — | Bitmap en texto en lugar de binario. |
--no-hex-length | — | Longitudes LLVAR/LLLVAR en texto, no BCD. |
--mti | 0200 | Por ejemplo 0800 o 0400. |
--template | 0200_FINANCIAL | Plantilla de partida. |
--processing-code | — | 6 dígitos (DE 3). |
--stan, --rrn | — | Fijar DE 11 y DE 37. |
--de NUMERO=VALOR | — | Sobrescribe cualquier data element; repetible. |
--expect-rc | — | Código esperado en el DE 39; define el código de salida. |
--json-out | — | Guarda la evidencia (petición y respuesta) en JSON. |
Código de salida: 0 si la respuesta llegó y coincide con --expect-rc; 1 si no.
3. Capturar las tramas de tu punto de venta
cli listen abre un puerto y muestra cada trama que llega, decodificada, con respuesta automática.
# Aprobar todo y guardar la sesión en CSV al salir con Ctrl+C
./ejecutar-simulador.sh cli listen --port 9600 --respond aprobar --out trazas.csv
# Host EBCDIC que declina con 51
./ejecutar-simulador.sh cli listen --port 9600 --dialect ebcdic --respond declinar:51
# Solo escuchar, sin responder (para probar los tiempos de espera del punto de venta)
./ejecutar-simulador.sh cli listen --port 9600 --respond ninguna
| Opción | Por defecto | Uso |
|---|---|---|
--port | 9600 | Puerto de escucha. |
--prefix | 2 | Bytes del prefijo de longitud: 0, 2 o 4. |
--respond | aprobar | aprobar, ninguna o declinar:NN. |
--dialect | ascii | ascii, ebcdic o ascii-bitmap-texto. |
--out | — | CSV con la sesión, escrito al salir. |
--no-hex | — | No imprimir el hexadecimal de cada trama. |
4. Ejecutar un proyecto de certificación
cli run ejecuta un proyecto completo (creado en la interfaz gráfica) y termina con código 0 solo si todos los casos pasan. Es el modo pensado para integración continua.
./ejecutar-simulador.sh cli run --project MI-PROYECTO --report informe.html
| Opción | Uso |
|---|---|
--project ID | Proyecto a ejecutar (obligatorio). |
--script ID | Ejecuta un solo guion en lugar de todos. |
--report RUTA | Informe en .txt, .csv o .html. |
--quiet | Sin avance paso a paso. |
Una invocación sin --project o con opciones desconocidas termina con código distinto de cero.