Skip to main content

GitHub Repository

Guía de configuración y código fuente completos

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 SQL Editor.
  3. Copia todo el contenido de schema.sql y ejecútalo.
  4. Copia tu cadena de conexión desde Connection Details.

4. Configurar las variables de entorno iniciales

Configurarás DODO_PAYMENTS_WEBHOOK_KEY después del deployment, una vez que tengas tu URL de webhook.

5. Inicializar y hacer el deployment

6. Obtener tu URL de webhook

Tu URL de webhook es:

7. 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 tu URL de webhook.
  4. Selecciona estos eventos: subscription.active, subscription.cancelled, subscription.renewed.
  5. Haz clic en Create endpoint y copia el signing secret.

8. Configurar la clave del webhook y volver a hacer el deployment

Qué hace

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

Funciones principales

  • Verificación de firma — Usa el SDK de Dodo Payments para verificar la autenticidad del webhook
  • Idempotencia — Usa el header webhook-id para evitar el procesamiento duplicado
  • Registro de eventos — Almacena todos los eventos en la tabla webhook_events para los registros 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 — Email, nombre e ID del customer de Dodo Payments
  • subscriptions — Estado, importe, próxima fecha de facturación, vinculada a los customers
  • webhook_events — Registro de eventos con el ID del webhook para la idempotencia

Código de implementación

Cómo funciona

El handler del webhook:
  1. Verifica la firma — Usa el SDK de Dodo Payments para verificar la solicitud con HMAC-SHA256
  2. Comprueba si hay duplicados — Usa el header 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 los registros de auditoría
  4. Procesa el evento — Crea o actualiza customers y suscripciones en Neon
  5. Gestiona los errores — Registra los fallos y marca los eventos como no procesados para reintento

Pruebas

Desarrollo local:
Ver los logs en el dashboard de Netlify:
  1. Selecciona tu sitio y ve a Functions.
  2. Haz clic en la función webhook.
  3. Consulta los logs en tiempo real y el historial de invocaciones.
Configurar en el dashboard de Dodo Payments:
  1. Ve a Developer → Webhooks.
  2. Añade un endpoint con la URL de tus Netlify Functions.
  3. Selecciona subscription.active, subscription.cancelled y subscription.renewed.

Problemas comunes

Recursos

Última modificación el 26 de septiembre de 2026