Procesador de pagos, sincronizador de contactos CRM con CallBell y notificaciones por WhatsApp
- Migrated PaymentIntentService with plugin-specific namespacing. - Added AJAX endpoints for client searching and SPEI reference generation. - Implemented global premium header with SIIP Blue gradient. - Optimized sidebar UI: increased logo size to 180px and nav icons/text. - Improved Dark Mode accessibility with high-contrast primary colors. - Added "View in CRM" functionality and automated Stripe admin logic. - Fixed layout nesting issues and polished CSS layering. |
||
|---|---|---|
| .vscode | ||
| comprobantes | ||
| data | ||
| src | ||
| vendor | ||
| .gitignore | ||
| Callbell Public API v1.postman_collection.json | ||
| CHANGELOG.md | ||
| composer-setup.php | ||
| composer.json | ||
| composer.lock | ||
| composer.phar | ||
| credentials.json | ||
| hook_install.php | ||
| html_public.php | ||
| list_attributes.php | ||
| main.php | ||
| manifest.json | ||
| PHP_PermisosArchivos.php | ||
| public.php | ||
| README.md | ||
| StripeWebhook.php | ||
| ucrm.json | ||
| unms-swagger.json | ||
| unms.yaml | ||
| unmscrm.apib | ||
SIIP - WhatsApp Notifications & Stripe Payments for UCRM
Este plugin es una solución integral para automatizar la comunicación con clientes y la gestión de pagos en UISP/UCRM. Actúa como puente entre el CRM, Stripe y la plataforma de mensajería CallBell.
🚀 Funcionalidades Principales
- Notificaciones Dinámicas: Envío automático de mensajes por WhatsApp para facturas, pagos, suspensiones y reactivaciones.
- Gestión de Agenda (Jobs/Tasks): Notificación inteligente a técnicos e instaladores sobre nuevas tareas, reprogramaciones y desasignaciones.
- Pagos con Stripe & OXXO: Generación automatizada de referencias de OXXO con captura de pantalla (Puppeteer) y alojamiento en la nube (WordPress).
- Sincronización CallBell: Mantenimiento de la información del cliente actualizada en la plataforma de chat CallBell.
- Resolución Dinámica: Detección automática de métodos de pago y atributos personalizados para máxima portabilidad.
🏗️ Arquitectura del Sistema
El plugin utiliza un patrón de diseño basado en Facades para desacoplar la lógica de despacho de los servicios externos.
Componentes Clave
- Despachador Central (
Plugin.php): Gestiona tanto los webhooks internos de UCRM como los externos (Stripe). Controla el estado de las notificaciones de tareas mediante prefijos en los títulos ([NOTIFICACION-PENDIENTE]). - Fachada de Mensajería (
AbstractMessageNotifierFacade): Contiene la lógica de negocio para decidir qué notificar, cuándo y a quién. - Interfaz CallBell (
ClientCallBellAPI): Encapsula las llamadas a la API de CallBell, manejando plantillas y mensajes multimedia. - Operaciones OXXO (
AbstractOxxoOperationsFacade): Orquesta el flujo de pago: Stripe (Referencia) -> Puppeteer (Screenshot) -> WordPress (Hosting) -> CallBell (WhatsApp).
🛠️ Requisitos e Integraciones
Para un funcionamiento óptimo, el plugin requiere:
- UISP/UCRM: Versión compatible con el SDK de Ubiquiti.
- Stripe API: Token y Webhooks configurados para transacciones en tiempo real.
- CallBell API: Token de acceso para el envío de mensajes a través de plantillas de WhatsApp.
- Microservicio Puppeteer: Un contenedor Docker con la API de Puppeteer para capturar vouchers.
- Hosting WordPress (FTP): Para alojar temporalmente las imágenes de los vouchers enviadas a los clientes.
🏷️ Configuración de UCRM
Contactos y Etiquetas
El plugin selecciona los números de destino basándose en el Tipo de Contacto definido en UCRM:
WhatsApp: Recibe notificaciones y actualizaciones de datos.WhatsNotifica: Recibe solo notificaciones.WhatsActualiza: Utilizado solo para sincronizar datos con CallBell.
Atributos Personalizados
Es necesario configurar los siguientes atributos en UCRM:
stripeCustomerId: ID del cliente en Stripe.clabeInterbancaria: CLABE personalizada para transferencias.passwordAntenaCliente: Almacena la contraseña del equipo del cliente (sincronizada con la bóveda).
🔄 Flujos de Trabajo Destacados
📅 Gestión de Contraseñas y Visitas Técnicas
Cuando se asigna o reprograma una tarea:
- Detección Multi-Servicio & Etiquetas Inteligentes:
- El plugin identifica todos los servicios del cliente.
- Si hay más de un servicio, utiliza el formato:
Servicio 1: <pass> Servicio 2: .... - Si hay solo un servicio, muestra la contraseña directamente sin etiquetas para mayor claridad.
- Sincronización CallBell Avanzada:
- Los datos técnicos y financieros se sincronizan en una sola petición optimizada.
- Las contraseñas se envían como un objeto JSON estructurado al campo
Password Antena.
- Validación de Provisionamiento: Antes de actuar, verifica en UISP si el sitio tiene dispositivos vinculados (evitando errores en estados "Location Inactive").
- Envía un mensaje al cliente con el nombre del técnico y la fecha (sin hora).
- Envía un mensaje al técnico con la dirección, ubicación en Google Maps y las contraseñas de las antenas optimizadas para lectura en impresoras térmicas (alfanumérico +
@,#).
💳 Registro de Pagos por Transferencia
- Stripe envía un webhook de saldo aplicado (
customer_cash_balance_transaction.created). - El plugin resuelve dinámicamente el ID del método "Transferencia bancaria".
- Registra el pago automáticamente en UCRM vinculado al
clientIden los metadatos.
📝 Registro de Cambios
Para consultar la evolución del proyecto, ver el archivo CHANGELOG.md.