Visão Geral
O boilerplate mínimo do Next.js é um app inicial com o Dodo Payments já conectado. Adicione suas chaves de API e IDs de produtos para obter uma página de preços que abre o checkout, um endpoint de webhook para eventos de pagamento e um link para o Customer Portal.Este boilerplate usa o App Router do Next.js 16 com TypeScript, Tailwind CSS 4 e o adaptador
@dodopayments/nextjs. Para adicionar os mesmos route handlers a um app existente, consulte o Next.js Adaptor.Recursos
O boilerplate inclui:- Configuração rápida: passe do clone a uma página de preços em funcionamento em cerca de cinco minutos.
- Checkout: um fluxo de checkout pré-configurado criado com base no
@dodopayments/nextjs. - Página de preços: uma página de preços com tema escuro, estilizada com Tailwind CSS.
- Handler de webhook: um endpoint que verifica cada assinatura de webhook e executa seu código para o evento.
- Customer Portal: um link no cabeçalho que abre o Customer Portal, onde os clientes gerenciam suas assinaturas.
- TypeScript: definições de produtos e handlers tipados.
- Checkout pré-preenchido: envia o nome e o e-mail do cliente ao checkout, para que ele não precise digitá-los novamente.
Pré-requisitos
Antes de começar, você precisa de:- Node.js 20.9 ou posterior, exigido pelo Next.js 16.
- Uma conta do Dodo Payments, para criar uma chave de API e um segredo de assinatura de webhook no dashboard.
Início rápido
1
Clone the Repository
2
Install Dependencies
3
Get API Credentials
Cadastre-se no Dodo Payments e obtenha suas credenciais no dashboard:
- Chave de API: crie uma chave em Dashboard → Developer → API Keys.
- Chave de webhook: adicione um endpoint em Dashboard → Developer → Webhooks e copie o segredo de assinatura. A URL do endpoint deve ser pública e usar HTTPS. Para receber eventos na sua máquina, consulte Webhook Events.
4
Configure Environment Variables
Copie o arquivo de exemplo para criar um arquivo Defina os valores com suas credenciais do Dodo Payments:Os route handlers leem estas variáveis:
.env no diretório raiz:DODO_PAYMENTS_API_KEYautentica os handlers de checkout e Customer Portal.DODO_PAYMENTS_WEBHOOK_KEYverifica as assinaturas de webhook.DODO_PAYMENTS_RETURN_URLé o local para onde o checkout envia o cliente após o pagamento.DODO_PAYMENTS_ENVIRONMENTétest_modeoulive_mode.
5
Add Your Products
Substitua os produtos de exemplo em A página de preços exibe
src/lib/products.ts pelos seus próprios produtos. Defina cada product_id como o ID de um produto em Products no seu dashboard:name, description, price e features deste arquivo. O checkout cobra o preço definido no produto no Dodo Payments, portanto mantenha price sincronizado com ele.6
Run the Development Server
Estrutura do projeto
Os route handlers de checkout, Customer Portal e webhook ficam emsrc/app/api/:
Personalização
Atualizar informações do produto
Editesrc/lib/products.ts para alterar:
- IDs dos produtos, em Products no seu dashboard do Dodo Payments
- Preços
- Recursos
- Descrições
Pré-preencher dados do cliente
src/app/components/ProductCard.tsx envia um nome e um e-mail definidos diretamente no código em cada solicitação de checkout. Substitua-os pelos dados do usuário autenticado:
Atualizar o Customer Portal
O link do Customer Portal emsrc/app/components/Header.tsx abre /api/customer-portal com um ID de cliente definido diretamente no código. Substitua-o pelo ID de cliente do Dodo Payments do usuário autenticado:
Eventos de webhook
O handler emsrc/app/api/webhook/route.ts verifica cada solicitação com DODO_PAYMENTS_WEBHOOK_KEY e, em seguida, trata dois eventos:
onSubscriptionActiveé executado quando uma assinatura se torna ativa (subscription.active).onPaymentSucceededé executado quando um pagamento é concluído com sucesso (payment.succeeded).
onSubscriptionCancelled. O Next.js Adaptor lista todos os handlers compatíveis.
O Dodo Payments não consegue acessar localhost. Para desenvolvimento local, use um túnel como o ngrok para expor seu servidor local e use a URL do túnel como endpoint de webhook.
Implantação
Compilar para produção
Fazer deploy na Vercel
[DODO_PAYMENTS_RETURN_URL como sua URL de produção.
Atualizar a URL do webhook
Após fazer o deploy, adicione a URL do webhook de produção no Dodo Payments Dashboard, usando seu domínio no lugar deexample.com:
DODO_PAYMENTS_WEBHOOK_KEY no seu ambiente de produção.
Solução de problemas
Module not found or build errors
Module not found or build errors
Exclua
node_modules e package-lock.json e reinstale as dependências:Checkout redirect fails
Checkout redirect fails
Verifique estas causas comuns:
- O ID do produto não existe no seu dashboard do Dodo Payments.
- A chave de API ou
DODO_PAYMENTS_ENVIRONMENTem.envestá incorreta. Uma chave do modo de teste funciona somente comtest_mode.
npm run dev.Webhooks not receiving events
Webhooks not receiving events
Para testes locais, use o ngrok para expor seu servidor:No seu Dodo dashboard, adicione um endpoint com a URL HTTPS do ngrok seguida de
/api/webhook. Copie o segredo de assinatura desse endpoint para DODO_PAYMENTS_WEBHOOK_KEY no seu arquivo .env.Customer portal link doesn't work
Customer portal link doesn't work
Substitua o
CUSTOMER_ID definido diretamente no código em src/app/components/Header.tsx pelo ID de um cliente no seu dashboard do Dodo Payments.Em produção, obtenha o ID do cliente do seu sistema de autenticação e banco de dados.Saiba mais
- Documentação do Dodo Payments
- Documentação de Checkout Sessions
- Documentação de Webhooks
- Next.js Adaptor: opções para os handlers
Checkout,CustomerPortaleWebhooks
Suporte
Para obter ajuda com o boilerplate:- Faça perguntas na comunidade do Discord.
- Relate problemas e acompanhe as atualizações no repositório do GitHub.
- Envie um e-mail para a equipe de suporte.