ALIANPOS V9.8.5 · QA CORREO FISCAL POR EVENTO MH

[OK] Revisión del flujo de emisión FE/NC/ND -> API -> Hacienda -> retorno a ALIANPOS.
[OK] Eliminada la compuerta runtime que omitía el correo cuando fe_enviar_correo=0.
[OK] Configuración fiscal fuerza correo automático y la UI ya no ofrece desactivarlo.
[OK] Migración 047 cambia fe_enviar_correo a DEFAULT 1 y corrige filas existentes.
[OK] TE excluido del correo automático al cliente.
[OK] FE/NC/ND requieren aceptación final de Hacienda antes del envío.
[OK] PDF + XML firmado + XML respuesta requeridos antes de SMTP.
[OK] Nombres de adjuntos: clave.pdf, clave.xml, clave_respuesta.xml.
[OK] NC/ND conservan información de referencia en el newsletter.
[OK] API persiste callback URL/token para documentos.
[OK] API entrega callback al recibir estado final de Hacienda.
[OK] Callback reintentable cuando ALIANPOS todavía no puede completar el correo.
[OK] Consulta final de API reintenta callback de aplicación pendiente.
[OK] Webhook duplicado de Hacienda vuelve a intentar callback de aplicación pendiente.
[OK] Mensaje receptor retorna a ALIANPOS y notifica proveedor al ser aceptado por MH.
[OK] Device hash reutiliza el valor ya ligado a la llave y deja de depender del navegador/CLI.
[OK] Device hash nuevo es estable por empresa/sucursal/terminal.
[OK] AJAX continúa hasta completar estado fiscal y, en aceptados, el correo.
[OK] Cron fiscal consulta pendientes y reintenta aceptados sin depender de un máximo de 5 intentos.
[OK] Mutex de cron reporta errores de base y dispone de bloqueo de archivo como respaldo.
[OK] Cron imprime PHP_VERSION, PHP_BINARY, ruta y resumen de ejecución.
[OK] php -l: 265 archivos PHP ALIANPOS sin errores.
[OK] php -l: 98 archivos PHP API sin errores.
[OK] node --check alian.fiscal.js sin errores.
[OK] API: ruta POST api/v1/webhook/mh registrada.
[INFO] PHPUnit del contenedor no pudo ejecutarse por faltar extensiones dom, mbstring, xml y xmlwriter del PHP CLI disponible en el entorno de validación.
[INFO] No se afirma ejecución del cron en el servidor cPanel; debe confirmarse con los logs generados por el binario del servidor.
