GitHub Repository
Código-fonte completo e guia de configuração
Configuração Rápida
1. Pré-requisitos
Você precisa de:- Uma conta da Netlify
- Uma conta do banco de dados Neon
- Uma chave de API do Dodo Payments em Developer → API Keys no dashboard
2. Instalar dependências
3. Configuração do banco de dados
- Cadastre-se no Neon e crie um projeto.
- Abra o SQL Editor.
- Copie todo o conteúdo de
schema.sqle execute-o. - Copie sua connection string em Connection Details.
4. Definir as variáveis de ambiente iniciais
Você definirá
DODO_PAYMENTS_WEBHOOK_KEY após a implantação, quando tiver a URL do webhook.5. Inicializar e implantar
6. Obter a URL do webhook
Sua URL do webhook é:7. Registrar o webhook no dashboard do Dodo Payments
- Acesse Developer → Webhooks no dashboard do Dodo Payments.
- Clique em Add endpoint.
- Insira sua URL do webhook.
- Selecione estes eventos:
subscription.active,subscription.cancelled,subscription.renewed. - Clique em Create endpoint e copie o signing secret.
8. Definir a chave do webhook e reimplantar
O que ele faz
O webhook handler processa eventos de assinatura e os armazena no PostgreSQL:subscription.active— Cria ou atualiza registros de clientes e assinaturassubscription.cancelled— Marca a assinatura como canceladasubscription.renewed— Atualiza a próxima data de cobrança
Principais recursos
- Verificação de assinatura — Usa o SDK do Dodo Payments para verificar a autenticidade do webhook
- Idempotência — Usa o header
webhook-idpara impedir o processamento duplicado - Registro de eventos — Armazena todos os eventos na tabela
webhook_eventspara fins de auditoria - Tratamento de erros — Registra falhas e marca eventos para nova tentativa
Este exemplo trata três eventos principais de assinatura com o mínimo de campos. Você pode estendê-lo para oferecer suporte a tipos de eventos e campos adicionais conforme suas necessidades.
Arquivos de configuração
Schema do banco de dados
customers— E-mail, nome e ID do cliente no Dodo Paymentssubscriptions— Status, valor, próxima data de cobrança, vinculada aos clienteswebhook_events— Log de eventos com ID do webhook para idempotência
Código de implementação
Como funciona
O webhook handler:- Verifica a assinatura — Usa o SDK do Dodo Payments para verificar a solicitação com HMAC-SHA256
- Verifica duplicatas — Usa o header
webhook-idpara impedir o processamento do mesmo evento duas vezes - Registra o evento — Armazena o webhook bruto na tabela
webhook_eventspara fins de auditoria - Processa o evento — Cria ou atualiza clientes e assinaturas no Neon
- Trata erros — Registra falhas e marca eventos como não processados para nova tentativa
Testes
Desenvolvimento local:- Selecione seu site e acesse Functions.
- Clique na função
webhook. - Visualize logs em tempo real e o histórico de invocações.
- Acesse Developer → Webhooks.
- Adicione um endpoint com a URL do Netlify Functions.
- Selecione
subscription.active,subscription.cancelledesubscription.renewed.