ACCESOS QR - PARCHE PHP DE WHATSAPP Fecha: 2026-09-10 OBJETIVO Integrar al panel del administrador la conexión de WhatsApp por QR usando el servicio Node.js ya instalado en: https://whatsapp.codeplus.com.mx Este parche NO contiene Node.js y NO modifica pagos, residentes, viviendas, finanzas ni accesos. ARCHIVOS QUE AGREGA/ACTUALIZA - admin/whatsapp.php - api/whatsapp.php - admin/dashboard.php - lib/header.php - backend/config/whatsapp.local.example.php - database/020_whatsapp_multisitio.sql IMPORTANTE ANTES DE EXTRAER Haz respaldo de estos archivos si ya existen: - admin/dashboard.php - lib/header.php - api/whatsapp.php - admin/whatsapp.php INSTALACION 1) Sube este ZIP a la RAIZ del proyecto PHP de Accesos QR, por ejemplo: /home/wwwcodepluscom/apiqr.codeplus.com.mx/ 2) Extrae el ZIP conservando la estructura de carpetas. 3) En: backend/config/ copia: whatsapp.local.example.php como: whatsapp.local.php 4) Edita backend/config/whatsapp.local.php y deja: define('WHATSAPP_SERVICE_URL', 'https://whatsapp.codeplus.com.mx'); define('WHATSAPP_SERVICE_SECRET', 'AQUI_EL_MISMO_INTERNAL_SECRET_DE_NODE'); El secreto debe ser EXACTAMENTE el mismo INTERNAL_SECRET configurado en cPanel > Node.js > whatsapp.codeplus.com.mx. No compartas ese valor. 5) Base de datos: El servicio Node ya puede crear estas tablas automáticamente. Aun así, puedes ejecutar de forma segura: database/020_whatsapp_multisitio.sql Es una migración no destructiva con CREATE TABLE IF NOT EXISTS. 6) Cierra sesión de Accesos QR y vuelve a entrar como Administrador del fraccionamiento. 7) Ve a: Comunicación > WhatsApp o usa la acción rápida WhatsApp del dashboard. 8) Pulsa: Conectar WhatsApp 9) El panel consultará el estado cada 3 segundos. Cuando Chromium/WhatsApp Web genere el QR, aparecerá dentro del panel. 10) En el teléfono: WhatsApp > Dispositivos vinculados > Vincular un dispositivo y escanea el QR. RESULTADO ESPERADO - Estado: Conectado - Número vinculado visible en el panel - Sesión independiente por fraccionamiento - Respuestas automáticas configurables - Prueba de envío disponible SEGURIDAD - El navegador nunca recibe INTERNAL_SECRET. - El fraccionamiento se valida del lado del servidor a partir del usuario autenticado. - Cada sesión WhatsApp utiliza un clientId separado: fracc-{ID}. - No se implementan botones de venta directa a WhatsApp; este módulo es de comunicación operativa. SI APARECE ERROR No reinstales npm ni modifiques el .htaccess de whatsapp.codeplus.com.mx. Toma captura solamente del mensaje de estado dentro de Comunicación > WhatsApp.