ALIANPOS V9.8.6 - WEBHOOK FISCAL SIN POLLING A HACIENDA

1. Instalar primero la actualización de API incluida con esta entrega.
2. Reemplazar los archivos ALIANPOS incluidos en el ZIP/patch V9.8.6.
3. No se agrega una nueva migración SQL en V9.8.6.
4. Mantener aplicadas las migraciones de V9.8.5, incluida la migración de callback de aplicación en la API y las migraciones 046/047 de ALIANPOS cuando correspondan.
5. No cambiar MH_WEBHOOK_SECRET ni MH_WEBHOOK_BASE_URL. El webhook de Hacienda sigue terminando en la API fiscal.
6. Si se utiliza FE_CALLBACK_URL en ALIANPOS, debe apuntar al dominio de ALIANPOS terminado en /webhook/hacienda. Si no se define, ALIANPOS intenta resolver su URL pública desde la petición actual/configuración de la aplicación.
7. Limpiar caché de navegador o dejar que el nuevo versionado de alian.fiscal.js cargue automáticamente.
8. Mantener los cron como respaldo. Desde V9.8.6 correo-fiscal.php no consulta Hacienda; solo recupera correos de comprobantes que ya figuren aceptados localmente.

PRUEBA RECOMENDADA
- Emitir una FE de un receptor con correo válido.
- Dejar abierta la pantalla.
- Confirmar que el estado cambia sin recargar al llegar el callback.
- Confirmar un único aviso de aceptación.
- Confirmar recepción del correo con clave.pdf, clave.xml y clave_respuesta.xml.
- Volver a /admin/ventas y confirmar que no aparecen alertas históricas.
- Revisar que entrar a la pantalla no incremente consultas a Hacienda.
