Skip to main content

GitHub Repository

Código fuente completo y guía de configuración

Configuración Rápida

1. Requisitos previos

Necesitas:

2. Instalar dependencias

3. Configuración de la base de datos

  1. Regístrate en Neon y crea un proyecto.
  2. Abre el editor SQL.
  3. Copia todo el contenido de schema.sql y ejecútalo.
  4. Copia tu cadena de conexión desde Connection Details.

4. Configurar los secretos iniciales

Configurarás DODO_PAYMENTS_WEBHOOK_KEY después del despliegue, cuando tengas la URL de tu webhook.

5. Actualizar wrangler.toml

Edita wrangler.toml y establece el nombre de tu worker:

6. Desplegar

7. Obtener la URL de tu webhook

La URL de tu webhook es:

8. Registrar el webhook en el dashboard de DodoPayments

  1. Ve a Developer → Webhooks en el dashboard de Dodo Payments.
  2. Haz clic en Add endpoint.
  3. Introduce la URL de tu webhook.
  4. Selecciona estos eventos: subscription.active, subscription.cancelled, subscription.renewed.
  5. Haz clic en Create endpoint y copia el secreto de firma.

9. Establecer la clave del webhook y volver a desplegar

Qué hace

El controlador del webhook procesa los eventos de suscripción y los almacena en PostgreSQL:
  • subscription.active — Crea o actualiza los registros de clientes y suscripciones
  • subscription.cancelled — Marca la suscripción como cancelada
  • subscription.renewed — Actualiza la próxima fecha de facturación

Funciones principales

  • Verificación de firma — Utiliza el SDK de Dodo Payments para verificar la autenticidad del webhook
  • Idempotencia — Utiliza el encabezado webhook-id para evitar el procesamiento duplicado
  • Registro de eventos — Almacena todos los eventos en la tabla webhook_events para fines de auditoría
  • Gestión de errores — Registra los fallos y marca los eventos para reintento
Este ejemplo gestiona tres eventos principales de suscripción con un número mínimo de campos. Puedes ampliarlo para admitir tipos de eventos y campos adicionales según tus necesidades.

Archivos de configuración

Esquema de la base de datos

Tablas creadas:
  • customers — Correo electrónico, nombre e ID de cliente de Dodo Payments
  • subscriptions — Estado, importe, próxima fecha de facturación y relación con los clientes
  • webhook_events — Registro de eventos con el ID del webhook para la idempotencia

Código de implementación

Cómo funciona

El controlador del webhook:
  1. Verifica la firma — Utiliza el SDK de Dodo Payments para verificar la solicitud con HMAC-SHA256
  2. Comprueba si hay duplicados — Utiliza el encabezado webhook-id para evitar procesar el mismo evento dos veces
  3. Registra el evento — Almacena el webhook sin procesar en la tabla webhook_events para fines de auditoría
  4. Procesa el evento — Crea o actualiza clientes y suscripciones en la base de datos
  5. Gestiona los errores — Registra los fallos y marca los eventos como no procesados para reintentar

Pruebas

Desarrollo local:
Configurar en el dashboard de Dodo Payments:
  1. Ve a Developer → Webhooks.
  2. Añade un endpoint con la URL de tu Worker.
  3. Selecciona subscription.active, subscription.cancelled y subscription.renewed.

Problemas comunes

Recursos

Última modificación el 26 de septiembre de 2026