Bitácora · Money-path

GatewayQR — 21 de septiembre

Endurecimiento y release de GatewayQR: observabilidad de tráfico, configuración externalizada, fixes de seguridad revisados con doble juez, y un E2E completo con el beneficio aplicado de punta a punta.

Release v20260921 Judgment Day ✓ pasó E2E ✓ verde Spring Boot 1.5 · Java 8

Resumen

RELEASE

GatewayQR v20260921

War (E2E-validado) + templates de config externa, publicado en GitHub. Cambios de consola/gateway, sin cambios que rompan el pago.

RELEASE PREVIO

GatewayQR v20260916

Fix trx.mensaje_varios: un autorizador inalcanzable ya no aborta el guardado del trx (recorte a 500).

1 traffic.log — trazabilidad JSON

Un log dedicado que registra cada JSON que cruza un límite de integración, con origen → destino, una línea por evento.

2 Log de configuración al arranque

Ahora se puede verificar la config efectiva en cada boot — justo lo que faltaba cuando el emulador quedó mal configurado.

3 Configuración 100% externa

!
Ojo con el comando de prod: los -D van antes de -jar. Si van después del war, Boot 1.5 los ignora y usa la config interna (era un bug latente del comando de deploy).
java -Dspring.profiles.active=prod \
     -Dspring.config.location=file:<ruta>/application-prod.yml \
     -jar gatewayqr-20260921.war

4 Seguridad · revisado con Judgment Day

Doble juez ciego + fix + re-juicio. Los 7 hallazgos de Ronda 1, resueltos y re-verificados.

!
Deuda pendiente (tu acción): rotar el apikey de Tecso y el jwt secret — estuvieron en texto plano en el historial de git (releases viejos, .yo-rc.json). El scrub los saca hacia adelante, no del pasado.

5 E2E completo — beneficio aplicado

Se levantaron los dos sistemas y se disparó un pago QR real. El traffic.log capturó todo el ida y vuelta:

POS GatewayQRintención de pago
GatewayQR BeneficiosCenterresolver · branchId "1"
BeneficiosCenter GatewayQRbeneficio 10% · $1000 · code 999
GatewayQR Autorizador:TECSOintención + benefits_methods_data
Autorizador GatewayQRapproved (emulador)
Emulador GatewayQRwebhook-pago (callback async)
GatewayQR BeneficiosCenterresultado (Flujo 2) → encolado
Resultado del pago con descuento: payment_method_id 999 · importe 10000 → importe_final 9000 · importe_recdesc −1000. El 10% se resolvió Y se aplicó. Externalización, log de arranque, enmascarado y traffic.log — todo validado en vivo.

6 Base de datos + prod yml