Pular para o conteúdo principal

Visão Geral

O boilerplate mínimo do Next.js fornece um ponto de partida pronto para uso para integrar os Dodo Payments com sua aplicação Next.js. Este template inclui sessões de checkout, manipulação de webhook, portal do cliente e componentes de UI modernos para ajudá-lo a começar a aceitar pagamentos rapidamente.
Este boilerplate usa o Next.js 16 App Router com TypeScript, Tailwind CSS 4 e o @dodopayments/nextjs adapter.

Recursos

  • Configuração Rápida - Comece em menos de 5 minutos
  • Integração de Pagamento - Fluxo de checkout pré-configurado usando @dodopayments/nextjs
  • UI Moderna - Página de preços limpa e com tema escuro usando Tailwind CSS
  • Manipulador de Webhook - Endpoint de webhook pronto para uso para eventos de pagamento
  • Portal do Cliente - Gerenciamento de assinatura com um clique
  • TypeScript - Totalmente tipado com tipos mínimos e focados
  • Checkout Pré-preenchido - Demonstra a passagem de dados do cliente para melhorar a experiência do usuário

Pré-requisitos

Antes de começar, certifique-se de que você tem:
  • Node.js 20.9+ (requerido para Next.js 16)
  • Conta Dodo Payments (para acessar as chaves da API e do Webhook no painel)

Início Rápido

1

Clone o Repositório

git clone https://github.com/dodopayments/dodo-nextjs-minimal-boilerplate.git
cd dodo-nextjs-minimal-boilerplate
2

Instalar Dependências

npm install
3

Obter Credenciais da API

Inscreva-se em Dodo Payments e obtenha suas credenciais no painel:
Certifique-se de que você está em Modo de Teste enquanto desenvolve!
4

Configurar Variáveis de Ambiente

Crie um arquivo .env no diretório raiz:
cp .env.example .env
Atualize os valores com suas credenciais do Dodo Payments:
DODO_PAYMENTS_API_KEY=your_api_key_here
DODO_PAYMENTS_WEBHOOK_KEY=your_webhook_signing_key_here
DODO_PAYMENTS_RETURN_URL=http://localhost:3000
DODO_PAYMENTS_ENVIRONMENT=test_mode
Nunca comite seu arquivo .env no controle de versão. Ele já está incluído em .gitignore.
5

Adicione Seus Produtos

Atualize src/lib/products.ts com seus IDs de produto reais do Dodo Payments:
export const products: Product[] = [
  {
    product_id: "pdt_001", // Replace with your product ID
    name: "Basic Plan",
    description: "Get access to basic features and support",
    price: 9999, // in cents
    features: [
      "Access to basic features",
      "Email support",
      "1 Team member",
      "Basic analytics",
    ],
  },
  // ... add more products
];
6

Execute o Servidor de Desenvolvimento

npm run dev
Abra http://localhost:3000 para ver sua página de preços!

Estrutura do Projeto

src/
├── app/
│   ├── api/
│   │   ├── checkout/          # Checkout session handler
│   │   ├── customer-portal/   # Customer portal redirect
│   │   └── webhook/           # Webhook event handler
│   ├── components/
│   │   ├── Footer.tsx         # Reusable footer
│   │   ├── Header.tsx         # Navigation header
│   │   └── ProductCard.tsx    # Product pricing card
│   ├── globals.css            # Global styles
│   ├── layout.tsx             # Root layout
│   └── page.tsx               # Pricing page (home)
└── lib/
    └── products.ts            # Product definitions

Personalização

Atualizar Informações do Produto

Edite src/lib/products.ts para modificar:
  • IDs dos produtos (do seu painel Dodo)
  • Preços
  • Recursos
  • Descrições

Pré-preencher Dados do Cliente

Em src/app/components/ProductCard.tsx, substitua os valores codificados por valores reais do seu usuário:
customer: {
  name: "John Doe",
  email: "[email protected]",
},

Atualizar Portal do Cliente

Em src/app/components/Header.tsx, substitua o ID do cliente codificado:
const CUSTOMER_ID = "cus_001"; // Replace with actual customer ID
Você pode completar uma compra de teste para obter o ID do cliente para testes.

Eventos de Webhook

O boilerplate demonstra o manuseio de dois eventos de webhook em src/app/api/webhook/route.ts:
  • onSubscriptionActive - Acionado quando uma assinatura se torna ativa
  • onPaymentSucceeded - Acionado quando um pagamento é bem-sucedido
Adicione sua lógica de negócios dentro desses manipuladores:
onSubscriptionActive: async (payload) => {
  // Grant access to your product
  // Update user database
  // Send welcome email
},
Adicione mais eventos de webhook conforme necessário. Para desenvolvimento local, você pode usar ferramentas como ngrok para criar um túnel seguro para seu servidor local e usá-lo como sua URL de webhook.

Implantação

Compilar para Produção

npm run build
npm start

Implantar no Vercel

[ Implantar com Vercel ](https://vercel.com/new/clone?repository-url=https://github.com/dodopayments/dodo-nextjs-minimal-boilerplate) Não se esqueça de adicionar suas variáveis de ambiente no painel do Vercel!

Atualizar URL do Webhook

Após a implantação, atualize sua URL de webhook no Painel do Dodo Payments:
https://example.com/api/webhook

Solução de Problemas

Exclua node_modules e reinstale as dependências:
rm -rf node_modules package-lock.json
npm install
Causas comuns:
  • ID do produto inválido - verifique se ele existe no seu painel Dodo
  • Chave da API errada ou configuração de ambiente em .env
  • Verifique o console do navegador e o terminal em busca de erros
Para testes locais, use ngrok para expor seu servidor:
ngrok http 3000
Atualize a URL do webhook no seu painel Dodo para a URL do ngrok. Lembre-se de atualizar seu arquivo .env com a chave de verificação do webhook correta.

Saiba Mais

Suporte

Precisa de ajuda com o boilerplate?