Descripción: Se ha realizado una refactorización mayor del sistema de notificaciones y generación de comprobantes para eliminar dependencias legacy (Imagick/FTP) y modernizar la arquitectura. 🚀 Nuevas Características (Features) Microservicio PDF (pdf-cropper): Nuevo servicio en Python (FastAPI + Poppler) desplegado en Docker (Puerto 8050) para la conversión de PDF a Imagen. Reemplaza la librería Imagick de PHP, aislando el procesamiento pesado fuera del plugin. Modo Full: Garantiza la conversión del PDF completo respetando su relación de aspecto original (sin recortes ni "square crop"). Overlay de Texto: Capacidad nativa en el backend para sobreescribir texto dinámicamente (ej. cambiar "Tarjeta de crédito Stripe" por "OXXO Pay") basado en parámetros. Integración S3 / MinIO: Implementación de MinioStorageService . Los comprobantes (JPG) y Vouchers OXXO se suben automáticamente a MinIO en lugar de usar FTP. Generación de URLs públicas seguras. 🧹 Mantenimiento y Limpieza (Chores/Refactor) Limpieza Automática (Cleanup): Se implementó lógica para eliminar archivos temporales locales (PDFs descargados, JPGs generados) inmediatamente después de una subida exitosa a MinIO. Aplica tanto para comprobantes de pago como para Vouchers OXXO. Refactor ClientCallBellAPI : Eliminación de código muerto relacionado con FTP de WordPress. Implementación de cliente HTTP Guzzle para comunicación con pdf-cropper. Cache Busting: Se añade Timestamp al nombre de archivo (_time()) para evitar caché agresivo en WhatsApp/Navegadores. Detección de Método: Lógica preliminar para detectar "OXXO" o "Transferencia" en notas de pago y aplicar Overlay. Docker Infraestructura: Actualización de docker-compose.yml para incluir pdf-cropper. Instalación de fuentes (fonts-dejavu-core) para renderizado correcto de texto. 🐛 Correcciones (Bug Fixes) Fix Recorte de Imagen: Se eliminó la restricción de relación de aspecto 1:1 (cuadrado) que cortaba headers y footers en documentos rectangulares. Standardización de Notas: Actualización de AbstractStripeOperationsFacade para incluir explícitamente "OXXO" o "Transferencia" en las notas de pago de UCRM (preparación para lógica de plantillas).
265 lines
11 KiB
JSON
Executable File
265 lines
11 KiB
JSON
Executable File
{
|
|
"version": "1",
|
|
"information": {
|
|
"name": "siip-whatsapp-notifications",
|
|
"displayName": "SIIP - Procesador de Pagos en línea con Stripe, Oxxo y Transferencia, Sincronizador de CallBell y Envío de Notificaciones y comprobantes vía WhatsApp",
|
|
"description": "Este plugin sincroniza los clientes del sistema UISP CRM con los contactos de WhatsApp en CallBell, además procesa pagos de Stripe como las trasferencias bancarias y genera referencias de pago vía OXXO, además envía comprobantes de pago en formato imagen PNG o texto vía Whatsapp a los clientes",
|
|
"url": "https://siip.mx/",
|
|
"version": "4.1.0",
|
|
"unmsVersionCompliancy": {
|
|
"min": "2.1.0",
|
|
"max": null
|
|
},
|
|
"author": "SIIP INTERNET",
|
|
"changelog": [
|
|
{
|
|
"version": "4.1.0",
|
|
"date": "2026-01-15",
|
|
"changes": "Implementación de Microservicio PDF, Integración MinIO, Fix Recorte y Soporte overlay textos."
|
|
},
|
|
{
|
|
"version": "4.0.0",
|
|
"date": "2026-01-10",
|
|
"changes": "Re-diseño completo de UI, integración total de Stripe (SPEI/OXXO), visualización inline de vouchers, optimización de seguridad FTP y modo oscuro."
|
|
},
|
|
{
|
|
"version": "3.1.0",
|
|
"date": "2026-01-07",
|
|
"changes": "Añadida funcionalidad de re-envío manual de notificaciones de pago."
|
|
},
|
|
{
|
|
"version": "3.0.0",
|
|
"date": "2026-01-02",
|
|
"changes": "Soporte multi-servicio y optimizaciones de rendimiento."
|
|
}
|
|
]
|
|
},
|
|
"configuration": [
|
|
{
|
|
"key": "ipserver",
|
|
"label": "Dirección IP o dominio del servidor",
|
|
"description": "La dirección IP del servidor o dominio donde se ejecuta el sistema UISP CRM. Ejemplo: 192.168.1.120 o sistema.empresa.com",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "apitoken",
|
|
"label": "Token de la API UCRM",
|
|
"description": "Token de autenticación necesario para el uso de la API del sistema UISP UCRM, se utiliza para gestionar cualquier información de los clientes. Contiene 64 caracteres y se genera desde el módulo de Ajustes del UISP CRM en la opción de 'Seguridad' y en la sección de 'Claves app'.",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "unmsApiToken",
|
|
"label": "Token de la API UNMS",
|
|
"description": "Token de autenticación necesario para el uso de la API del sistema UISP UNMS, se utiliza para gestionar información de antenas u otros dispositivos de red. Contiene 34 caracteres y se genera desde el módulo de Ajustes del UISP Network en la opción de 'Usuarios' y en apartado de 'API tokens'.",
|
|
"required": 0,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "tokencallbell",
|
|
"label": "Token de la API de CallBell",
|
|
"description": "Token de autenticación para el uso de la API de CallBell que maneja las funciones realacionadas con WhatsApp. El token es de tipo 'Bearer' y contiene 97 caracteres, ejemplo: g9thcZkXGd3xBj2g2TtYNYFMH1fuesbJ.b6a947ea7d78cf6c8e42f067a21c8daf91e9fa2a9e310bfd0c7c7c4d7fa36f68",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "tokenstripe",
|
|
"label": "Token de la API de Stripe",
|
|
"description": "Token de autenticación para el uso de la API de Stripe que maneja las funciones realacionadas con los pagos en línea (Transferencia y OXXO PAGO). ",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "hostServerFTP",
|
|
"label": "IP o dominio del servidor FTP",
|
|
"description": "Dirección IP o dominio del sitio del servidor FTP para la carga de comprobantes de pago del sistema y su posterior envío",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "usernameServerFTP",
|
|
"label": "Usuario FTP",
|
|
"description": "Nombre de usuario para inicio de sesión el servidor FTP, necesario para la carga de comprobantes de pago del sistema y su posterior envío",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "passServerFTP",
|
|
"label": "Password FTP",
|
|
"description": "Contraseña para inicio de sesión en el servidor FTP, necesario para la carga de comprobantes de pago del sistema y su posterior envío",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "ipPuppeteer",
|
|
"label": "Dirección IP del servicio de Puppeteer",
|
|
"description": "Dirección IP del contenedor docker que ejecuta el servicio de Puppeteer para la generación de comprobantes de pago en formato imagen PNG",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "portPuppeteer",
|
|
"label": "Puerto del servicio de Puppeteer",
|
|
"description": "Puerto del contenedor docker que ejecuta el servicio de Puppeteer, por defecto es el 3000",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "idPaymentAdminCRM",
|
|
"label": "ID del usuario para pagos en línea",
|
|
"description": "ID del usuario administrador del CRM asigando para realizar pagos en línea con Stripe. Todos los pagos que llegan desde Stripe se asignan a este usuario. Se recomienda crear un usuario exclusivo para este fin.",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "cashPaymentMethodId",
|
|
"label": "Envío de Comprobante por pago en efectivo",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es en efectivo",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "courtesyPaymentMethodId",
|
|
"label": "Envío de Comprobante por pago de cortesía",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es por crédito de cortesía",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "bankTransferPaymentMethodId",
|
|
"label": "Envío de Comprobante por pago con Transferencia Bancaria",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es por Transferencia Bancaria",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "paypalPaymentMethodId",
|
|
"label": "Envío de Comprobante por pago con PayPal",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es por PayPal",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "creditCardPaypalPaymentMethodId",
|
|
"label": "Envío de Comprobante por pago de Tarjeta de Crédito o Débito con PayPal",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es con Tarjeta de Credito o Débito con PayPal",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "creditCardStripePaymentMethodId",
|
|
"label": "Envío de Comprobante por pago de Tarjeta de Crédito o Débito por medio de Stripe",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es con Tarjeta de Crédito o Débito por medio de Stripe",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "stripeSubscriptionCreditCardPaymentMethodId",
|
|
"label": "Envío de Comprobante por pago con una Suscripción de Stripe (tarjeta de crédito)",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es por una Suscripción de Stripe (tarjeta de crédito)",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "paypalSubscriptionPaymentMethodId",
|
|
"label": "Envío de Comprobante por pago con Suscripción de PayPal",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es por Suscripción de PayPal",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "mercadopagoPaymentMethodId",
|
|
"label": "Envío de Comprobante por pago de MercadoPago",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es por MercadoPago",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "checkPaymentMethodId",
|
|
"label": "Envío de Comprobante por pago de Cheque",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es por Cheque",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "customPaymentMethodId",
|
|
"label": "Envío de Comprobante por pago Personalizado",
|
|
"description": "Habilita el envío de comprobantes en formato de imagen por WhatsApp cuando el método de pago es Personalizado",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "notificationTypeText",
|
|
"label": "Envío de Comprobante por medio de plantilla de texto",
|
|
"description": "Habilita el envío de comprobantes en formato TEXTO por WhatsApp, si está deshabilitado se utiliza el formato de imagen.",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "installersDataWhatsApp",
|
|
"label": "Datos de los instaladores en formato JSON",
|
|
"description": "El número identificador (id) del instalador se obtiene desde la API del CRM en su ednpoint \"/api/v1.0/user\" y se debe de obtener el campo 'id' de cada instalador para agregarlo en este campo en formato JSON",
|
|
"required": 1,
|
|
"type": "textarea"
|
|
},
|
|
{
|
|
"key": "debugMode",
|
|
"label": "Debug Mode?",
|
|
"description": "More detailed log info - Informacion de log mas detallada",
|
|
"required": 0,
|
|
"type": "checkbox"
|
|
},
|
|
{
|
|
"key": "minioEndpoint",
|
|
"label": "MinIO Endpoint (Internal)",
|
|
"description": "URL interna para subir archivos (ej: http://localhost:9002)",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "minioPublicUrl",
|
|
"label": "MinIO Public URL (External)",
|
|
"description": "URL externa para generar enlaces públicos (ej: https://aws-venus.siip.mx)",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "minioAccessKey",
|
|
"label": "MinIO Access Key",
|
|
"description": "Clave de acceso de MinIO",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "minioSecretKey",
|
|
"label": "MinIO Secret Key",
|
|
"description": "Clave secreta de MinIO",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "minioBucket",
|
|
"label": "MinIO Bucket",
|
|
"description": "Nombre del bucket (ej: vouchers-oxxo)",
|
|
"required": 1,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "logging_level",
|
|
"label": "enable debug logs",
|
|
"description": "Make the plugin more verbose.",
|
|
"type": "checkbox",
|
|
"required": 0
|
|
}
|
|
],
|
|
"menu": [
|
|
{
|
|
"key": "Reports",
|
|
"label": "Administrar Notificaciones por WhatsApp",
|
|
"type": "admin",
|
|
"target": "iframe"
|
|
}
|
|
],
|
|
"supportsWebhookEvents": true
|
|
} |