Integración WhatsApp API con MySQL

Заказчик: AI | Опубликовано: 04.10.2025
Бюджет: 250 $

### Objetivo Desarrollar un sistema automatizado que consulte una base de datos MySQL (tabla `clientes`) y envíe mensajes por WhatsApp según el estado de vencimiento del servicio de cada cliente. El sistema deberá enviar recordatorios y avisos de vencimiento de forma programada, así como responder automáticamente cuando el cliente envíe una foto del comprobante de pago. --- ### Requerimientos técnicos * Lenguaje preferido: **PHP (7.4 o superior, no orientado a objetos)** o **Node.js** (se aceptan propuestas con justificación técnica). * Base de datos: **MySQL**. * Integración con **API de WhatsApp** (puede ser Twilio, Chat-API, UltraMsg, 360Dialog u otra API oficial o no oficial). * Se valorará que el código sea **modular, documentado y parametrizable** (para modificar fechas o mensajes sin editar código). --- ### Estructura de datos (tabla `clientes`) Campos mínimos necesarios: * `id` (INT, PK) * `nombre` (VARCHAR) * `celular` (VARCHAR) * `vencimiento` (DATE) * `estado` (ENUM: activo, vencido, suspendido, temporal) * `ultimo_mensaje` (DATE opcional) * Otros campos relevantes (opcional) --- ### Lógica del envío de mensajes 1. **Consulta a la base de datos** El sistema debe verificar diariamente los clientes con estado **vencido** según la fecha de vencimiento (`vencimiento < CURDATE()`). 2. **Fechas de envío programadas (parametrizables):** * **Día 1 y 4 de cada mes:** Enviar mensaje recordando que su servicio está vencido. * **Día 10:** Enviar aviso solo a los que siguen vencidos. * **Día 20:** Enviar mensaje final indicando que el servicio será eliminado. *(Las fechas y textos deben poder modificarse desde un archivo de configuración o tabla de parámetros.)* 3. **Mensajes automáticos:** * Al detectar que un cliente envía una **foto del comprobante de transferencia**, el sistema debe: * Enviar mensaje de confirmación: “Su servicio fue habilitado de forma temporal hasta que se verifique el pago.” * Cambiar automáticamente su estado a **temporal**. * Una vez verificado el pago (manualmente o mediante un proceso automático), el sistema debe: * Extender el campo `vencimiento` **+1 mes** desde la fecha actual. * Cambiar el estado a **activo**. * Enviar mensaje confirmando la reactivación del servicio. --- ### Funcionalidades adicionales (opcional) * Log o registro de mensajes enviados (tabla `mensajes_log` con fecha, número, estado de envío, etc.). * Panel básico o script PHP para probar el envío manualmente a un cliente. * Configuración centralizada de textos de los mensajes (por ejemplo, en JSON o en una tabla `mensajes`). --- ### Entregables * Código fuente completo. * Script SQL con estructura de tablas. * Archivo de configuración (parametrización de fechas, textos, API keys). * Instrucciones para instalación y uso (README). * Ejemplo de cron o scheduler para ejecución automática. --- ### Ejemplo de flujo 1. Día 1 → cliente vencido recibe mensaje de aviso. 2. Día 10 → si sigue vencido, nuevo mensaje de advertencia. 3. Día 20 → mensaje final indicando suspensión. 4. Cliente envía comprobante → se habilita temporalmente. 5. Verificado el pago → se renueva vencimiento +30 días.