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 string de conexão 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. Implantar

6. Obter Sua URL de Webhook

Sua URL de webhook é:

7. Registrar Webhook no Painel do DodoPayments

  1. Acesse Developer → Webhooks no dashboard do Dodo Payments.
  2. Clique em Add endpoint.
  3. Insira a 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 Chave de Webhook e Reimplantar

O Que Ele Faz

O handler do webhook 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 cabeçalho webhook-id para evitar 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

Esquema 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 — Registro de eventos com ID do webhook para idempotência

Código de Implementação

Como Funciona

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

Testando

Desenvolvimento local:
Visualizar logs no dashboard da Vercel:
  1. Selecione seu projeto.
  2. Acesse Deployments → implantação mais recente.
  3. Clique em Functions → Logs.
Configurar no dashboard do Dodo Payments:
  1. Acesse Developer → Webhooks.
  2. Adicione um endpoint com a URL das Vercel Functions.
  3. Selecione subscription.active, subscription.cancelled e subscription.renewed.

Problemas Comuns

Recursos

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