Commit Graph
7 Commits
Author SHA1 Message Date
Lizandro GuarnizoandClaude Opus 5 5bc1ec14ca feat(whatsapp): mismo motor, menú y configuración que Telegram y el chat web
WhatsApp dejaba de usar su bot propio (árbol de menús sin login ni compras) y
pasa al motor compartido, así los tres canales quedan iguales.

- TelegramBotService recibe el canal por constructor; flujos, menús, Gemini,
  OCR, validación de pagos y datos bancarios salen de ChatConfig sin duplicar
- WhatsApp no tiene teclados inline: las opciones se envían numeradas y la
  respuesta numérica se traduce al callback equivalente
- estado en caché con prefijo por canal (Telegram conserva el suyo para no
  cerrar las sesiones abiertas)
- descarga de comprobantes y audios por la Graph API de Meta
- respuesta manual del asesor y aviso de vencimiento salen también por WhatsApp
- la pantalla de WhatsApp queda sólo con credenciales; el resto se administra
  en Chat / Bot

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 23:24:21 -05:00
Lizandro GuarnizoandClaude Opus 5 e3ad0a423a feat(whatsapp): validar firma de Meta en el webhook y restaurar el menú del módulo
- POST /webhooks exige X-Hub-Signature-256 (HMAC-SHA256 del cuerpo crudo);
  falla cerrado si app_secret no está configurado
- nueva clave app_secret en whatsapp_system_config, editable desde Configuración Bot
- menú lateral de WhatsApp visible de nuevo (Correo/IMAP sigue en Chat/Bot)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 23:02:39 -05:00
Lizandro Guarnizo 0e5ff957eb up 2026-04-25 15:04:50 -05:00
Lizandro Guarnizo fa1f4bc581 up 2026-04-25 14:55:11 -05:00
Lizandro Guarnizo 2228818c85 up 2026-04-25 14:54:19 -05:00
Lizandro Guarnizo bbf34d08d0 correo 2026-04-25 14:47:20 -05:00
Lizandro Guarnizo 148fa6b9f9 up 2026-04-24 21:40:10 -05:00