commit 202a263e250755d82e456a2028f3f6649ac1d9a8 Author: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu Jun 4 13:35:23 2026 -0500 feat: bot WhatsApp Business API — Palmas360 inicial diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..9385fe8 --- /dev/null +++ b/.env.example @@ -0,0 +1,24 @@ +# ─── Aplicación ─────────────────────────────────────────────────────────────── +APP_ENV=local +APP_URL=https://app.palmas360.com + +# ─── JWT ─────────────────────────────────────────────────────────────────────── +# Secreto usado para firmar y verificar los tokens Bearer +JWT_SECRET=cambia_esto_por_un_secreto_seguro_minimo_32_chars + +# ─── WhatsApp Business API (Meta) ──────────────────────────────────────────── +# Token de verificación del webhook (lo defines tú en Meta for Developers) +WHATSAPP_VERIFY_TOKEN=mi_token_de_verificacion_secreto + +# App Secret de la aplicación en Meta for Developers +# (Usado para validar la firma HMAC-SHA256 de cada POST entrante) +WHATSAPP_APP_SECRET=app_secret_de_meta_for_developers + +# Token de acceso permanente de WhatsApp Business API +WHATSAPP_ACCESS_TOKEN=EAAxxxxxxxxx... + +# ID del número de teléfono de WhatsApp Business +WHATSAPP_PHONE_NUMBER_ID=1234567890 + +# ID de la cuenta de WhatsApp Business +WHATSAPP_BUSINESS_ACCOUNT_ID=0987654321 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6d7a750 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.env +storage/ +*.log +.DS_Store diff --git a/WhatsApp Image 2026-06-04 at 10.04.54 (2).jpeg b/WhatsApp Image 2026-06-04 at 10.04.54 (2).jpeg new file mode 100644 index 0000000..b868a81 Binary files /dev/null and b/WhatsApp Image 2026-06-04 at 10.04.54 (2).jpeg differ diff --git a/admin/DashboardController.php b/admin/DashboardController.php new file mode 100644 index 0000000..9692bd6 --- /dev/null +++ b/admin/DashboardController.php @@ -0,0 +1,590 @@ + 0, 'msgs' => 0, 'media' => 0, 'statuses' => 0]; + $logs = []; + $total = 0; + } + + $pages = $total > 0 ? (int)ceil($total / self::PER_PAGE) : 1; + self::render(compact('stats', 'logs', 'total', 'page', 'pages', 'filter', 'search', 'date', 'user')); + } + + // ─── GET /admin/live ──────────────────────────────────────────────────── + + public static function live(): void + { + SessionAuth::require(); + $user = SessionAuth::user(); + $userName = htmlspecialchars($user['name'] ?? 'Admin', ENT_QUOTES, 'UTF-8'); + + http_response_code(200); + header('Content-Type: text/html; charset=utf-8'); + echo << + +
+ + +Esperando eventos en tiempo real...
Cargando...
| ID | +Hora | +Número | +Nombre | +Tipo | +Preview | ++ |
|---|
Cargando...+

Panel de administración — Somos19D
+Somos19D — Empresa jurídicamente constituida en Colombia
Vigente desde el 1 de enero de 2025
Somos19D, empresa jurídicamente constituida en Colombia, con NIT 901677603-5, es responsable de la prestación de los servicios descritos en estas condiciones. Nuestros canales de atención incluyen WhatsApp y plataformas digitales.
+Al usar nuestros servicios —ya sea a través de WhatsApp, nuestro sitio web u otros canales— aceptas íntegramente estas condiciones. Si no estás de acuerdo, debes abstenerte de utilizar el servicio.
+Somos19D utiliza la WhatsApp Business Platform de Meta Platforms, Inc. para prestar servicios de atención y comunicación. Al usar este canal:
+Somos19D ofrece servicios digitales y de información a través de múltiples canales incluyendo WhatsApp Business, sitio web y otros medios digitales. Los detalles específicos de cada servicio serán informados al usuario antes de su contratación, incluyendo tarifas, plazos y condiciones particulares.
+Los precios del servicio serán comunicados de forma clara antes de cada transacción. Somos19D se reserva el derecho de modificar sus tarifas, notificando al usuario con antelación razonable. Los pagos realizados no son reembolsables salvo disposición expresa contraria.
+Todo el contenido, diseño, marca, textos y elementos digitales de Somos19D son propiedad exclusiva de la empresa. Está prohibida su reproducción, distribución o uso sin autorización escrita previa.
+Somos19D no será responsable por:
+Somos19D podrá suspender o terminar el servicio a un usuario si este incumple estas condiciones, proporciona información falsa o realiza actividades que perjudiquen a la empresa o a otros usuarios. Se notificará al usuario antes de la suspensión cuando sea posible.
+Estas condiciones se rigen por las leyes de la República de Colombia. Cualquier controversia se resolverá conforme a la normativa colombiana vigente. Para consumidores aplican los mecanismos de protección al consumidor establecidos en la Ley 1480 de 2011.
+Podemos actualizar estas condiciones en cualquier momento. Los cambios se comunicarán por WhatsApp u otros canales oficiales con al menos 5 días de anticipación. El uso continuo del servicio implica la aceptación de las nuevas condiciones.
+Para dudas, reclamaciones o ejercicio de derechos, comunícate con Somos19D a través de nuestros canales oficiales de WhatsApp o correo electrónico.
+Somos19D — Tu privacidad es un derecho.
Ejercelo de forma sencilla y sin costo.
La Ley 1581 de 2012 (Colombia) y el Habeas Data te otorgan el derecho de solicitar la supresión de tus datos personales cuando ya no son necesarios, cuando retiras tu consentimiento o cuando el tratamiento infringe la ley. Somos19D (NIT 901677603-5) está obligada a respetar y tramitar esta solicitud.
+Existen casos en los que no podemos eliminar algunos datos de forma inmediata:
+En estos casos, te informaremos el motivo y el plazo estimado de conservación.
+ ⚠️ Siempre te informaremos antes de denegar una solicitud +Si interactuaste con Somos19D a través de WhatsApp Business API, ten en cuenta que:
+Si en 15 días hábiles no has recibido respuesta, puedes radicar una queja ante la Superintendencia de Industria y Comercio (SIC) de Colombia en www.sic.gov.co.
+Somos19D — Empresa jurídica legalmente constituida en Colombia
Vigente a partir del 1 de enero de 2025
Somos19D es una empresa jurídicamente constituida en Colombia, identificada con NIT 901677603-5. Operamos servicios digitales y de comunicación, incluyendo atención a través de WhatsApp y canales en línea.
+Para prestar nuestros servicios, podemos recopilar:
+Implementamos medidas técnicas y administrativas para proteger tus datos frente a acceso no autorizado, pérdida o divulgación. El acceso a tu información está limitado al personal estrictamente necesario.
+Como titular de tus datos tienes derecho a:
+Somos19D utiliza la WhatsApp Business Platform operada por Meta Platforms, Inc. para comunicarse contigo. Al interactuar con nosotros por WhatsApp, aceptas que:
+Opt-in (consentimiento): Al escribirnos por WhatsApp o facilitar tu número para recibir comunicaciones, otorgas tu consentimiento expreso para recibir mensajes de Somos19D por este canal.
+Opt-out (cancelar suscripción): Puedes dejar de recibir mensajes en cualquier momento respondiendo "STOP", "DETENER" o "NO DESEO RECIBIR MENSAJES". Procesaremos tu solicitud en máximo 24 horas.
+ ✅ Nunca recibirás mensajes sin tu consentimiento previo +Somos19D puede compartir datos con proveedores de servicios que actúan en nuestro nombre (pasarelas de pago, plataformas de mensajería como Meta/WhatsApp), bajo estrictos acuerdos de confidencialidad y solo para los fines autorizados.
+Nuestro sitio web puede usar cookies para mejorar la experiencia del usuario. Puedes configurar tu navegador para rechazarlas, aunque algunas funcionalidades pueden verse afectadas.
+Podemos actualizar esta política en cualquier momento. Te notificaremos los cambios relevantes a través de nuestros canales oficiales, incluyendo WhatsApp.
+Para ejercer tus derechos o resolver dudas sobre esta política, comunícate con nosotros a través de los canales oficiales de Somos19D.
+