GitHub Repository
Guía de configuración y código fuente completos
Configuración Rápida
1. Requisitos previos
Necesitas:- Una cuenta de Netlify
- Una cuenta de base de datos Neon
- Una clave de API de Dodo Payments de Developer → API Keys en el dashboard
2. Instalar dependencias
3. Configuración de la base de datos
- Regístrate en Neon y crea un proyecto.
- Abre el SQL Editor.
- Copia todo el contenido de
schema.sqly ejecútalo. - 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
- Ve a Developer → Webhooks en el dashboard de Dodo Payments.
- Haz clic en Add endpoint.
- Introduce tu URL de webhook.
- Selecciona estos eventos:
subscription.active,subscription.cancelled,subscription.renewed. - 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ónsubscription.cancelled— Marca la suscripción como canceladasubscription.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-idpara evitar el procesamiento duplicado - Registro de eventos — Almacena todos los eventos en la tabla
webhook_eventspara 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
customers— Email, nombre e ID del customer de Dodo Paymentssubscriptions— Estado, importe, próxima fecha de facturación, vinculada a los customerswebhook_events— Registro de eventos con el ID del webhook para la idempotencia
Código de implementación
Cómo funciona
El handler del webhook:- Verifica la firma — Usa el SDK de Dodo Payments para verificar la solicitud con HMAC-SHA256
- Comprueba si hay duplicados — Usa el header
webhook-idpara evitar procesar el mismo evento dos veces - Registra el evento — Almacena el webhook sin procesar en la tabla
webhook_eventspara los registros de auditoría - Procesa el evento — Crea o actualiza customers y suscripciones en Neon
- Gestiona los errores — Registra los fallos y marca los eventos como no procesados para reintento
Pruebas
Desarrollo local:- Selecciona tu sitio y ve a Functions.
- Haz clic en la función
webhook. - Consulta los logs en tiempo real y el historial de invocaciones.
- Ve a Developer → Webhooks.
- Añade un endpoint con la URL de tus Netlify Functions.
- Selecciona
subscription.active,subscription.cancelledysubscription.renewed.