Skip to main content

GitHub Repository

Código-fonte completo e guia de configuração

Configuração Rápida

1. Pré-requisitos

Você precisa de:

2. Instalar dependências

3. Configuração do banco de dados

  1. Cadastre-se no Neon e crie um projeto.
  2. Abra o SQL Editor.
  3. Copie todo o conteúdo de schema.sql e execute-o.
  4. 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

  1. Acesse Developer → Webhooks no dashboard do Dodo Payments.
  2. Clique em Add endpoint.
  3. Insira sua URL do webhook.
  4. Selecione estes eventos: subscription.active, subscription.cancelled, subscription.renewed.
  5. 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 assinaturas
  • subscription.cancelled — Marca a assinatura como cancelada
  • subscription.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-id para impedir o processamento duplicado
  • Registro de eventos — Armazena todos os eventos na tabela webhook_events para 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

Tabelas criadas:
  • customers — E-mail, nome e ID do cliente no Dodo Payments
  • subscriptions — Status, valor, próxima data de cobrança, vinculada aos clientes
  • webhook_events — Log de eventos com ID do webhook para idempotência

Código de implementação

Como funciona

O webhook handler:
  1. Verifica a assinatura — Usa o SDK do Dodo Payments para verificar a solicitação com HMAC-SHA256
  2. Verifica duplicatas — Usa o header webhook-id para impedir o processamento do mesmo evento duas vezes
  3. Registra o evento — Armazena o webhook bruto na tabela webhook_events para fins de auditoria
  4. Processa o evento — Cria ou atualiza clientes e assinaturas no Neon
  5. Trata erros — Registra falhas e marca eventos como não processados para nova tentativa

Testes

Desenvolvimento local:
Visualizar logs no dashboard da Netlify:
  1. Selecione seu site e acesse Functions.
  2. Clique na função webhook.
  3. Visualize logs em tempo real e o histórico de invocações.
Configurar no dashboard do Dodo Payments:
  1. Acesse Developer → Webhooks.
  2. Adicione um endpoint com a URL do Netlify Functions.
  3. Selecione subscription.active, subscription.cancelled e subscription.renewed.

Problemas comuns

Recursos

Última modificação em 26 de setembro de 2026