almeira-web/scripts/send_from_vps_container.py

61 lines
3.3 KiB
Python

import paramiko
import json
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('161.97.93.156', username='carlos', password='Innova1978+*?')
# Obtener IP interna del contenedor de Evolution API
stdin, stdout, stderr = ssh.exec_command("docker inspect api-i5mzip2g7cmyvc56n9ewahbb --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'")
evo_ip = stdout.read().decode('utf-8').strip()
print(f"IP interna de Evolution API: {evo_ip}")
message_text = """🚀 *DripZone - Registro Automático de Pedidos WhatsApp & Catálogo Activo*
¡Hola Carlos! Se ha implementado y desplegado de forma 100% autónoma la captura y registro automático de pedidos realizados por WhatsApp:
🛍️ *1. Pedidos del Catálogo Nativo de WhatsApp (Meta Commerce):*
• Cada vez que un cliente envía un pedido desde el catálogo de la tienda en WhatsApp (orderMessage), el webhook lo detecta en tiempo real.
• Extrae automáticamente artículos, precios, cantidades y tallas, resolviendo los productos con el inventario de la app.
• Crea la orden inmediatamente en Appwrite y memoria con prefijo *ORD-WA-CAT-XXXXXX* y *source: 'whatsapp'*.
• Te notifica al instante a tu WhatsApp (+57 316 745 5877) con la foto del calzado, desglose económico y datos de entrega.
• Responde al cliente automáticamente confirmando la recepción y entregándole su enlace de seguimiento en vivo.
💬 *2. Pedidos Directos por WhatsApp desde el Carrito Web:*
• En el carrito de compra (CartDrawer), se habilitó el botón *'💬 Pedir Directo por WhatsApp'*.
• Pre-registra la orden en la base de datos antes de transferir al cliente a WhatsApp, asignándole un ID único (*ORD-WA-XXXXXX*).
• Al llegar el mensaje a la tienda (+57 310 639 0296), el webhook lo asocia automáticamente sin duplicar.
🧠 *3. Solicitudes de Compra en Lenguaje Natural:*
• Si un cliente escribe directamente con intención de compra (ej: *"Quiero pedir las Jordan 4 talla 41 para Cali"*), el parser identifica el calzado, talla y ciudad, pre-registrando la orden en estado pendiente.
📊 *4. Filtros y Visualización en Panel Admin (/admin/pedidos):*
• Nuevo filtro por Canal: *[ Todos ]*, *[ 💬 WhatsApp & Catálogo ]* y *[ 🌐 Tienda Web ]* con conteos en tiempo real.
• Cada tarjeta de pedido muestra su insignia distintiva (*💬 WhatsApp* / *🛍️ Catálogo WA* vs *🌐 Tienda Web*).
📱 *5. Seguimiento del Cliente en /mis-pedidos:*
• Soporta parámetro directo *?phone=...* para que los clientes que abran el enlace desde WhatsApp vean sus pedidos sin escribir su teléfono.
📲 *Descarga Directa del APK:*
👉 https://drip-zone.online/DripZone.apk"""
# Enviar via curl directo desde el host VPS a la IP interna de Evolution API (100% libre de Traefik/DNS)
payload = json.dumps({
"number": "573167455877",
"text": message_text,
"delay": 500
})
# Escribir payload en archivo temporal remoto en el VPS
sftp = ssh.open_sftp()
with sftp.file('/tmp/wa_msg.json', 'w') as f:
f.write(payload)
sftp.close()
curl_cmd = f"curl -s -X POST http://{evo_ip}:8080/message/sendText/AutomataAlmeira -H 'apikey: EE49029EEB85-4568-8F81-C9FDFC6E2943' -H 'Content-Type: application/json' -d @/tmp/wa_msg.json"
stdin, stdout, stderr = ssh.exec_command(curl_cmd)
out = stdout.read().decode('utf-8', errors='replace')
print("Respuesta Evolution API sendText:", out[:300])
ssh.close()