Initial commit: SKEEN Derma Experts - Sistema Integral de Gestión Clínica
- Frontend React (SKEEN Brand) con Vite, TypeScript, Tailwind - Frontend Homenest (versión alternativa) - Módulos Odoo 17 custom (citas, pacientes, monedero, pagos, ventas, inventario, whatsapp) - WACRM fork (Next.js 16 + Supabase) - Hermes + Bridge + Skills (Qwen3.6 via Nan Builders) - Scripts de migración y operación - Documentación extensiva en docs/
This commit is contained in:
63
scripts/simular_meta_webhook.py
Normal file
63
scripts/simular_meta_webhook.py
Normal file
@@ -0,0 +1,63 @@
|
||||
import hmac
|
||||
import hashlib
|
||||
import json
|
||||
import time
|
||||
import requests
|
||||
import sys
|
||||
|
||||
META_APP_SECRET = "skeen_meta_app_secret_2026_demo"
|
||||
PHONE_NUMBER_ID = "PENDING_PHONE_ID"
|
||||
WABA_ID = "PENDING_WABA_ID"
|
||||
|
||||
payload = {
|
||||
"object": "whatsapp_business_account",
|
||||
"entry": [
|
||||
{
|
||||
"id": WABA_ID,
|
||||
"changes": [
|
||||
{
|
||||
"value": {
|
||||
"messaging_product": "whatsapp",
|
||||
"metadata": {
|
||||
"display_phone_number": "1234567890",
|
||||
"phone_number_id": PHONE_NUMBER_ID,
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"profile": {"name": "Paciente Test"},
|
||||
"wa_id": "526641234568",
|
||||
}
|
||||
],
|
||||
"messages": [
|
||||
{
|
||||
"from": "526641234568",
|
||||
"id": f"wamid.test_{int(time.time())}",
|
||||
"timestamp": str(int(time.time())),
|
||||
"text": {"body": "Hola Sofia, que servicios tienen?"},
|
||||
"type": "text",
|
||||
}
|
||||
],
|
||||
},
|
||||
"field": "messages",
|
||||
}
|
||||
],
|
||||
}
|
||||
],
|
||||
}
|
||||
|
||||
raw_body = json.dumps(payload, separators=(",", ":"))
|
||||
signature = "sha256=" + hmac.new(
|
||||
META_APP_SECRET.encode(), raw_body.encode(), hashlib.sha256
|
||||
).hexdigest()
|
||||
|
||||
url = "http://localhost:3000/api/whatsapp/webhook"
|
||||
headers = {
|
||||
"Content-Type": "application/json",
|
||||
"x-hub-signature-256": signature,
|
||||
}
|
||||
|
||||
print("Enviando webhook simulado a", url)
|
||||
print("Body:", raw_body[:200], "...")
|
||||
response = requests.post(url, data=raw_body, headers=headers)
|
||||
print("Status:", response.status_code)
|
||||
print("Response:", response.text[:500])
|
||||
Reference in New Issue
Block a user