GitHub Repository
Código-fonte completo e guia de configuração
Configuração Rápida
1. Pré-requisitos
Você precisa de:- Uma conta da Cloudflare
- Uma conta no 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 string de conexão em Connection Details.
4. Configurar os secrets iniciais
Você definirá
DODO_PAYMENTS_WEBHOOK_KEY após a implantação, quando tiver sua URL do webhook.5. Atualizar wrangler.toml
Editewrangler.toml e defina o nome do seu worker:
6. Implantar
7. Obter sua URL do webhook
Sua URL do webhook é:8. Registrar o webhook no dashboard do DodoPayments
- 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.
9. Definir a chave do 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 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 evitar 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, vinculados aos clienteswebhook_events— Registro de eventos com ID do webhook para idempotência
Código de implementação
Como funciona
O handler do webhook:- Verifica a assinatura — Usa o SDK do Dodo Payments para verificar a solicitação com HMAC-SHA256
- Verifica duplicidades — Usa o header
webhook-idpara evitar processar o 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 banco de dados
- Trata erros — Registra falhas e marca eventos como não processados para nova tentativa
Testes
Desenvolvimento local:- Acesse Developer → Webhooks.
- Adicione um endpoint com a URL do seu Worker.
- Selecione
subscription.active,subscription.cancelledesubscription.renewed.