Qué resuelve
El Validador QR consume un código de entrada y solicita al backend la decisión real sobre ese acceso.
Escaneo con cámara
La pantalla solicita cámara tras pulsar Escanear QR y utiliza la cámara trasera con resolución ideal 1280×720.
Cuando el navegador soporta BarcodeDetector, utiliza detección nativa de QR. Existe un fallback mediante canvas/jsQR cuando está disponible.
El escaneo tiene un cooldown de 2 segundos para evitar procesar repetidamente el mismo código.
Ingreso manual
También existe un campo de código y botón Validar. El valor se recorta antes de enviarse. Es útil para operadores sin cámara o como fallback.
Resultado
El backend responde con:
ok;- mensaje;
- evento;
- comprador cuando está disponible.
La UI presenta Acceso válido o Acceso denegado y guarda los últimos 10 resultados de la sesión.
Historial
El historial es local a la sesión de la pantalla. Muestra resultado, comprador/código, evento y hora. No debe interpretarse como un reporte histórico permanente.
Cámara y permisos
Si el navegador rechaza la cámara, la pantalla conserva el ingreso manual. El error de cámara no significa que el QR esté inválido.
Diagnóstico
No abre cámara: revisar permisos del navegador y HTTPS.
QR rechazado: leer el mensaje del backend; puede corresponder a ticket pendiente, cancelado, ya utilizado u otra condición.
Error de conexión: no volver a escanear compulsivamente; comprobar conectividad antes de repetir.
Mismo QR leído dos veces: esperar el cooldown y revisar el resultado anterior antes de intentar nuevamente.