antes del reemplazo de archivos
This commit is contained in:
parent
3cddcb548e
commit
8d4580e138
25
CHANGELOG.md
25
CHANGELOG.md
@ -1,5 +1,30 @@
|
||||
# CHANGELOG - SIIP WhatsApp Notifications Plugin
|
||||
|
||||
## VERSIÓN 4.3.0 - 23-02-2026
|
||||
|
||||
### 🔐 Seguridad y Acceso (Login)
|
||||
|
||||
1️⃣ **Sistema de Login Integrado**:
|
||||
_ Implementada pantalla de inicio de sesión "Premium" para acceso externo
|
||||
_ Validación estricta con la API de UISP (endpoint `/user/login`)
|
||||
_ Soporte completo para autenticación de dos factores (2FA / TOTP)
|
||||
_ Control de roles: Acceso restringido exclusivamente a administradores y súper administradores
|
||||
\_ Manejo de estado de sesiones con `sessionStorage` y validación híbrida PHP/JS
|
||||
|
||||
2️⃣ **Protección de Rutas (Proxy de Sesión)**:
|
||||
_ Nuevo sistema PHP para detectar el contexto de la URL (Pública vs Privada CRM)
|
||||
_ Auto-login transparente si existe una sesión válida en el navegador desde el portal UCRM
|
||||
\_ Botón condicional de "Cerrar Sesión" exclusivo para accesos desde URL pública
|
||||
|
||||
### 💎 Rediseño Premium de Interfaz (UI/UX)
|
||||
|
||||
1️⃣ **Autenticación Premium (Stitch Glassmorphism)**:
|
||||
_ Pantalla de login elegante usando tendencias de Glassmorphism (`blur`, transparencias RGBA, bordes sutiles iluminados)
|
||||
_ Partículas flotantes decorativas con efecto desenfoque radial en el fondo oscuro
|
||||
_ Inputs "Glow" reactivos y botones con gradientes vibrantes y sombra perimetral flotante
|
||||
_ Interruptor ('Toggle Switch') animado con física de rebote para alternar entre modo Claro y Oscuro
|
||||
\_ Ocultamiento de textos truncados ("Modo Osc...") en favor de una experiencia más visual y limpia con íconos deslizables
|
||||
|
||||
## VERSIÓN 4.2.2 - 10-02-2026
|
||||
|
||||
### ✨ Nuevas Características (Features)
|
||||
|
||||
88
Datos de la versión para el equipo - WhatsApp.txt
Normal file
88
Datos de la versión para el equipo - WhatsApp.txt
Normal file
@ -0,0 +1,88 @@
|
||||
📢 Buenos días equipo, Mega Actualización del Plugin Notificaciones y Pagos WhatsApp SIIP 🚀 *Versiones 3.0.0 hasta 4.3.0*
|
||||
|
||||
Se ha completado una de las actualizaciones tecnológicas más grandes e importantes en la historia del sistema central de notificaciones y cobranza. Aquí se detallan todos los cambios monumentales:
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
💻 *1. El Nuevo Portal Administrativo SIIP*
|
||||
|
||||
Se integró un portal web completo y dedicado directamente dentro del CRM. Este portal centraliza toda la operación en 4 módulos principales:
|
||||
|
||||
• 👷♂️ *Módulo de Instaladores*: Permite gestionar y vincular a los técnicos e instaladores de la empresa para el enrutamiento de notificaciones.
|
||||
• ✉️ *Módulo de Notificaciones y Comprobantes*: Brinda un historial de los pagos de cada cliente, con la función (altamente solicitada) para **reenviar manualmente los comprobantes de pago** por WhatsApp con un solo clic.
|
||||
• 💳 *Módulo de Cobranza con Tarjetas (Stripe)*: Permite realizar cargos a tarjetas de crédito/débito en tiempo real o generar enlaces de pago, además de visualizar el historial financiero de los clientes.
|
||||
• 🏪 *Módulo de Cobranza en Efectivo (Oxxo)*: Desde aquí se generan referencias de Oxxo Pay al instante para que el cliente pague en tienda, llevando un control exacto de las referencias emitidas.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
🤖 *2. El Nuevo Cerebro de WhatsApp (Callbell)*
|
||||
|
||||
• 📱 *Nuevo Bot de Callbell*: Se migró toda la operación a un nuevo bot construido desde cero. Esto permite un envío de mensajes más estable y con mucha mayor capacidad de respuesta.
|
||||
• ⚡ *Multiservicio*: Soporte ampliado para procesar múltiples servicios simultáneos sin cuellos de botella.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
🧾 *3. La Revolución de Oxxo Pay y Comprobantes*
|
||||
|
||||
• 🛒 *Flujo por Órdenes y Base de Datos*: Se cambió la forma en que el sistema de Oxxo Pay funciona. Ahora trabaja bajo un sistema de órdenes respaldado por base de datos, ¡eliminando por fin los fallos y cobros no reflejados por *timeout*!
|
||||
• 🏭 *Nuevos Microservicios Dedicados*: Se extrajo la carga de trabajo pesada a un nuevo microservicio.
|
||||
→ Ahora este se encarga de generar los vouchers de Oxxo y los comprobantes de pago.
|
||||
→ Realiza el recorte automático (cropping) preciso de las imágenes.
|
||||
→ Inserta dinámicamente el *nombre del cliente* en la imagen ("overlay"), dejándolos listos para enviar.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
☁️ *4. MinIO: La Nueva Nube Privada (Estilo AWS)*
|
||||
|
||||
• 🚀 *Adiós al FTP de WordPress*: Se ha dejado de depender de cargas lentas e inseguras por FTP hacia WordPress.
|
||||
• 📦 *Almacenamiento MinIO*: Se implementó un sistema de almacenamiento de objetos idéntico a Amazon Web Services S3. Ahora todos los vouchers, comprobantes y PDFs se guardan de forma instantánea, segura y generan enlaces públicos a la velocidad de la luz.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
🎨 *5. Interfaz Gráfica y Experiencia (UI/UX)*
|
||||
|
||||
• 💎 *Diseño Premium (Glassmorphism)*: Renovación visual completa usando estética de cristal moderno en el nuevo Portal Administrativo.
|
||||
• 🔐 *Sistema de Login Seguro*: Ya no cualquiera puede entrar; ahora el portal valida la sesión de manera segura directo con el core de UCRM (al igual que el Hub de Herramientas de Pagos).
|
||||
• 👁️ *Vouchers Inline*: Ahora se pueden visualizar los vouchers generados directamente dentro de la interfaz del portal sin tener que descargarlos previamente.
|
||||
• 🌙 *Modo Oscuro*: El portal ahora respeta la vista con un modo oscuro elegante y funcional para todo el equipo.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
📦 *Historial de Versiones Resumido (Desde v2.9.2)*
|
||||
|
||||
*v4.3.0* (Actual)
|
||||
→ Sistema de Login con validación UCRM y Rediseño Premium Glassmorphism UI.
|
||||
|
||||
*v4.1.0*
|
||||
→ Integración de Microservicio PDF y MinIO, Auto-recorte de comprobantes y textos dinámicos sobre imagen.
|
||||
|
||||
*v4.0.0*
|
||||
→ Re-diseño UI con Nuevo Portal, integración Stripe (SPEI/OXXO), visualización inline y Optimización de seguridad FTP/Nube.
|
||||
|
||||
*v3.1.0*
|
||||
→ Módulos Administrativos y Re-envío manual de notificaciones de pago.
|
||||
|
||||
*v3.0.0*
|
||||
→ Soporte multiservicios y optimizaciones pesadas de rendimiento backend.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
🚀 *Cómo Acceder*
|
||||
|
||||
Al igual que siempre, lo encuentran integrado en el CRM en:
|
||||
*Reportes → Portal Administrativo de Pagos de STRIPE y Notificaciones WhatsApp*.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
📝 *Notas Finales*
|
||||
|
||||
Esta no es solo una actualización visual, se cambió por completo el *motor interno* del plugin. Ahora el sistema opera con arquitectura de microservicios, cuenta con un portal administrativo completo y usa nubes privadas (MinIO) de nivel empresarial. Los fallos de timeout al cruzar cobros con Oxxo y las lentitudes de subir archivos por FTP pasaron a la historia.
|
||||
|
||||
Cualquier duda, favor de reportarla de inmediato para revisión.
|
||||
|
||||
*¡A sacarle provecho!* 💪
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
_Desarrollado con ❤️ por SIIP Internet_
|
||||
_Versión 4.3.0 - Marzo 2026_
|
||||
12
README.md
12
README.md
@ -1,12 +1,18 @@
|
||||
# SIIP - WhatsApp Notifications & Integrated Payment Portal
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
Este plugin es una solución integral que transforma tu UCRM en un **Portal Administrativo de Última Generación**. No solo automatiza la comunicación por WhatsApp, sino que integra un Dashboard completo para la gestión de pagos online (Stripe/OXXO), visualización de comprobantes y coordinación de equipos técnicos.
|
||||
|
||||
## 🔐 Novedades v4.3.0 (Security & Premium UI)
|
||||
|
||||
- **🛡️ Sistema de Acceso Seguro**: Implementada validación híbrida (Server + Client). El plugin ahora protege las URLs públicas mediante una pantalla de inicio de sesión que requiere credenciales de Administrador de UCRM o autenticación 2FA.
|
||||
- **💎 Autenticación Premium (Glassmorphism)**: Nueva pantalla de inicio de sesión con una interfaz elegante y de lujo basada en Glassmorphism interactivo (esferas flotantes, desenfoques profundos, switch animado tipo iOS para modo oscuro).
|
||||
- **🚀 Single-Sign-On Ciego**: Si el administrador ya ingresó desde el portal interno UCRM, la capa de seguridad detecta la sesión local y le otorga acceso sin pedir credenciales, optimizando el flujo de trabajo.
|
||||
|
||||
## 🚀 Novedades v4.2.0 (Analytics & Sync)
|
||||
|
||||
- **📊 Visualizador de Pagos Mensuales**: Nueva herramienta de análisis que permite seleccionar cualquier mes y visualizar gráficamente:
|
||||
@ -37,16 +43,19 @@ Este plugin es una solución integral que transforma tu UCRM en un **Portal Admi
|
||||
## ⚡ Funcionalidades Principales
|
||||
|
||||
### 1. Gestión de Cobranza Avanzada
|
||||
|
||||
- **Pagos SPEI**: Instrucciones inmediatas con CLABE personalizada.
|
||||
- **Vouchers OXXO**: Generación instantánea de códigos de barras con vista previa "Split-Screen" (Datos + Imagen).
|
||||
- **Historial en Tiempo Real**: Consulta los últimos 10 pagos de cualquier cliente al instante.
|
||||
|
||||
### 2. Automatización WhatsApp (CallBell)
|
||||
|
||||
- **Notificaciones Dinámicas**: Envío automático de facturas, recordatorios de pago y avisos de corte.
|
||||
- **Re-envío Manual**: Herramienta para disparar notificaciones específicas desde el Dashboard si el proceso automático falla.
|
||||
- **Sincronización Total**: Mantiene los contactos de CallBell siempre actualizados con los datos del CRM.
|
||||
|
||||
### 3. Coordinación Técnica (Jobs/Tasks)
|
||||
|
||||
- **Agenda Inteligente**: Notifica a instaladores sobre nuevas tareas y reprogramaciones.
|
||||
- **Datos para Técnicos**: Envía coordenadas GPS y contraseñas de equipos (formato impresora térmica) directamente al WhatsApp del técnico.
|
||||
|
||||
@ -82,6 +91,7 @@ Para desbloquear todo el potencial, el plugin requiere:
|
||||
El plugin se configura directamente desde el panel de UCRM (`Ajustes -> Plugins -> siip-whatsapp-notifications`).
|
||||
|
||||
### Parámetros Críticos
|
||||
|
||||
- `ipserver`: Tu dominio UCRM.
|
||||
- `tokenstripe`: Tu Secret Key de Stripe.
|
||||
- `tokencallbell`: Tu API Key de CallBell.
|
||||
|
||||
2424
data/plugin.log
2424
data/plugin.log
File diff suppressed because one or more lines are too long
@ -5,13 +5,18 @@
|
||||
"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.2.2",
|
||||
"version": "4.3.0",
|
||||
"unmsVersionCompliancy": {
|
||||
"min": "2.1.0",
|
||||
"max": null
|
||||
},
|
||||
"author": "SIIP INTERNET",
|
||||
"changelog": [
|
||||
{
|
||||
"version": "4.3.0",
|
||||
"date": "2026-02-23",
|
||||
"changes": "Implementación de Sistema de Login Seguro con validación de sesiones UCRM y Rediseño Premium Glassmorphism UI."
|
||||
},
|
||||
{
|
||||
"version": "4.1.0",
|
||||
"date": "2026-01-15",
|
||||
|
||||
74
public.php
74
public.php
@ -1327,6 +1327,38 @@ $installersData = json_decode($config['installersDataWhatsApp'] ?? '{"instalador
|
||||
}
|
||||
}
|
||||
|
||||
.login-theme-btn {
|
||||
position: absolute;
|
||||
top: 24px;
|
||||
right: 24px;
|
||||
z-index: 10000;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 10px;
|
||||
padding: 10px 20px;
|
||||
border-radius: 30px;
|
||||
font-family: inherit;
|
||||
font-size: 0.9rem;
|
||||
font-weight: 600;
|
||||
white-space: nowrap;
|
||||
background: rgba(15, 23, 42, 0.6);
|
||||
color: #f8fafc;
|
||||
border: 1px solid rgba(255, 255, 255, 0.15);
|
||||
backdrop-filter: blur(16px);
|
||||
-webkit-backdrop-filter: blur(16px);
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
|
||||
cursor: pointer;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.login-theme-btn:hover {
|
||||
background: rgba(15, 23, 42, 0.8);
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
|
||||
border-color: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
[data-theme="light"] #loginOverlay {
|
||||
background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 50%, #f8fafc 100%);
|
||||
}
|
||||
@ -1341,6 +1373,27 @@ $installersData = json_decode($config['installersDataWhatsApp'] ?? '{"instalador
|
||||
color: #0f172a;
|
||||
}
|
||||
|
||||
[data-theme="light"] .login-theme-btn {
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
color: #1e293b;
|
||||
border: 1px solid rgba(255, 255, 255, 1);
|
||||
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
[data-theme="light"] .login-theme-btn:hover {
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
border-color: rgba(209, 213, 219, 0.8);
|
||||
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.login-theme-btn .theme-icon,
|
||||
.login-theme-btn .theme-icon-box {
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
[data-theme="light"] .login-subtitle,
|
||||
[data-theme="light"] .login-field label,
|
||||
[data-theme="light"] .login-footer {
|
||||
@ -1372,7 +1425,7 @@ $installersData = json_decode($config['installersDataWhatsApp'] ?? '{"instalador
|
||||
<body>
|
||||
<!-- ━━━ Login Overlay ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -->
|
||||
<div id="loginOverlay">
|
||||
<button class="theme-toggle" onclick="toggleTheme()" style="position: absolute; top: 24px; right: 24px; z-index: 10000; display: flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 20px; font-family: 'Outfit', sans-serif; font-size: 0.95rem; font-weight: 600; background: var(--bg-card); color: var(--text-main); border: 1px solid var(--border); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); cursor: pointer; transition: all 0.2s ease;">
|
||||
<button class="theme-toggle login-theme-btn" onclick="toggleTheme()">
|
||||
<div class="theme-icon-box" style="display: flex; align-items: center; justify-content: center;"></div>
|
||||
<span class="theme-text">Modo Claro</span>
|
||||
</button>
|
||||
@ -1431,8 +1484,7 @@ $installersData = json_decode($config['installersDataWhatsApp'] ?? '{"instalador
|
||||
</svg>
|
||||
Menú Principal
|
||||
</button>
|
||||
<?php if (strpos($_SERVER['REQUEST_URI'], '_plugins') !== false): ?>
|
||||
<button class="btn btn-secondary" style="color: #ef4444; border-color: rgba(239, 68, 68, 0.3); background: rgba(239, 68, 68, 0.05);" onclick="handleLogout()">
|
||||
<button id="logoutBtn" class="btn btn-secondary" style="color: #ef4444; border-color: rgba(239, 68, 68, 0.3); background: rgba(239, 68, 68, 0.05);" onclick="handleLogout()">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="vertical-align:middle; margin-right:6px;">
|
||||
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path>
|
||||
<polyline points="16 17 21 12 16 7"></polyline>
|
||||
@ -1440,7 +1492,6 @@ $installersData = json_decode($config['installersDataWhatsApp'] ?? '{"instalador
|
||||
</svg>
|
||||
Cerrar Sesión
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
<!-- RESTORED THEME BUTTON -->
|
||||
<!-- PREMIUM THEME BUTTON -->
|
||||
<button class="theme-toggle" id="themeBtn" onclick="toggleTheme()">
|
||||
@ -1938,7 +1989,12 @@ $installersData = json_decode($config['installersDataWhatsApp'] ?? '{"instalador
|
||||
window.handleLogout = () => {
|
||||
sessionStorage.removeItem('nms_auth_token');
|
||||
sessionStorage.removeItem('nms_user');
|
||||
|
||||
if (!NEEDS_LOGIN) {
|
||||
window.top.location.href = '/crm/logout';
|
||||
} else {
|
||||
window.location.reload();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -2847,6 +2903,16 @@ $installersData = json_decode($config['installersDataWhatsApp'] ?? '{"instalador
|
||||
});
|
||||
|
||||
// Inicialización: decidir si mostrar login o portal
|
||||
sessionStorage.removeItem('nms_force_local_login'); // Cleanup from previous versions
|
||||
|
||||
// Ocultar botón de Cerrar Sesión si estamos dentro del iframe del CRM
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
if (window.top !== window.self) {
|
||||
const logoutBtn = document.getElementById('logoutBtn');
|
||||
if (logoutBtn) logoutBtn.style.display = 'none';
|
||||
}
|
||||
});
|
||||
|
||||
if (NEEDS_LOGIN) {
|
||||
// No hay sesión UCRM, intentar con token almacenado
|
||||
verifyStoredSession().then(valid => {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user