Procesador de pagos, sincronizador de contactos CRM con CallBell y notificaciones por WhatsApp
Go to file
DANYDHSV f851ea6d7d feat: soporte multi-servicio, optimización lazy loading y sincronización avanzada con CallBell
- Implementación de gestión multi-servicio para contraseñas de antena con etiquetas condicionales.
- Optimización de rendimiento mediante lazy loading para evitar llamadas redundantes a la API de UISP.
- Mejora de sincronización con CallBell: contraseñas en formato JSON, unificación de peticiones PATCH y corrección de comparación de saldo.
- Generación de contraseñas printer-friendly (alfanuméricas + @, #) sin caracteres ambiguos.
- Validación granular de provisionamiento para evitar errores en sitios inactivos.
- Actualización de CHANGELOG.md y README.md.
2026-01-03 11:07:29 -06:00
.vscode Versión 2.6.1 ajuste de la hora, negritas en el folio y el envio correcto de desasignacion de servicio 2025-01-25 16:36:47 +00:00
comprobantes Se agrega nuevo campo en los ajustes del plugin para agregar la API KEY del UNMS con el ID 'unmsApiToken' 2025-10-20 15:13:21 -06:00
data feat: soporte multi-servicio, optimización lazy loading y sincronización avanzada con CallBell 2026-01-03 11:07:29 -06:00
src feat: soporte multi-servicio, optimización lazy loading y sincronización avanzada con CallBell 2026-01-03 11:07:29 -06:00
vendor feat(stripe-sync): implementar resolución dinámica de métodos de pago y corregir validación API 2025-12-23 14:50:57 -06:00
.gitignore Modificaciones para enviar referencias de OXXO PAGO por medio de imagen 2025-06-10 02:46:31 -06:00
Callbell Public API v1.postman_collection.json feat: Dashboard administrativo, integración con API UCRM y optimización de Stripe 2025-12-27 23:15:32 -06:00
CHANGELOG.md feat: soporte multi-servicio, optimización lazy loading y sincronización avanzada con CallBell 2026-01-03 11:07:29 -06:00
composer-setup.php Initial commit 2024-12-31 09:48:29 +00:00
composer.json Initial commit 2024-12-31 09:48:29 +00:00
composer.lock Rework para clientes pontenciales nuevos, eliminacion del tiempo de espera para intentos de creacion de referencias de oxxo 2025-01-14 09:10:39 +00:00
composer.phar Initial commit 2024-12-31 09:48:29 +00:00
credentials.json Initial commit 2024-12-31 09:48:29 +00:00
hook_install.php Initial commit 2024-12-31 09:48:29 +00:00
html_public.php Initial commit 2024-12-31 09:48:29 +00:00
main.php Rework para clientes pontenciales nuevos, eliminacion del tiempo de espera para intentos de creacion de referencias de oxxo 2025-01-14 09:10:39 +00:00
manifest.json feat(stripe-sync): implementar resolución dinámica de métodos de pago y corregir validación API 2025-12-23 14:50:57 -06:00
PHP_PermisosArchivos.php Initial commit 2024-12-31 09:48:29 +00:00
public.php feat: soporte multi-servicio, optimización de recursos y refinamiento de contraseñas 2026-01-02 22:41:54 -06:00
README.md feat: soporte multi-servicio, optimización lazy loading y sincronización avanzada con CallBell 2026-01-03 11:07:29 -06:00
StripeWebhook.php Initial commit 2024-12-31 09:48:29 +00:00
ucrm.json Se agrega nuevo campo en los ajustes del plugin para agregar la API KEY del UNMS con el ID 'unmsApiToken' 2025-10-20 15:13:21 -06:00
unms-swagger.json feat: soporte multi-servicio, optimización de recursos y refinamiento de contraseñas 2026-01-02 22:41:54 -06:00
unms.yaml feat: soporte multi-servicio, optimización de recursos y refinamiento de contraseñas 2026-01-02 22:41:54 -06:00
unmscrm.apib feat: soporte multi-servicio, optimización de recursos y refinamiento de contraseñas 2026-01-02 22:41:54 -06:00

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:

  1. UISP/UCRM: Versión compatible con el SDK de Ubiquiti.
  2. Stripe API: Token y Webhooks configurados para transacciones en tiempo real.
  3. CallBell API: Token de acceso para el envío de mensajes a través de plantillas de WhatsApp.
  4. Microservicio Puppeteer: Un contenedor Docker con la API de Puppeteer para capturar vouchers.
  5. 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:

  1. 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.
  2. 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.
  3. 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

  1. Stripe envía un webhook de saldo aplicado (customer_cash_balance_transaction.created).
  2. El plugin resuelve dinámicamente el ID del método "Transferencia bancaria".
  3. Registra el pago automáticamente en UCRM vinculado al clientId en los metadatos.

📝 Registro de Cambios

Para consultar la evolución del proyecto, ver el archivo CHANGELOG.md.