Visão Geral
O boilerplate mínimo do Astro é 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 Astro 5 com TypeScript, Tailwind CSS 4 e o adaptador
@dodopayments/astro. Para adicionar as mesmas rotas de API a um app existente, consulte Astro Adaptor.Recursos
O boilerplate inclui:- Configuração rápida: passe do clone a uma página de preços em execução em cerca de cinco minutos.
- Checkout: um fluxo de checkout pré-configurado criado com base em
@dodopayments/astro. - 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 a assinatura de cada 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 para o checkout, para que ele não precise digitá-los novamente.
Pré-requisitos
Antes de começar, você precisa de:- Uma versão LTS do Node.js, exigida pelo Astro 5.
- 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:
.env no diretório raiz:.env.example define DODO_PAYMENTS_RETURN_URL como a porta 3000. Altere-a para 4321, a porta usada pelo servidor de desenvolvimento do Astro, para que o checkout redirecione o cliente de volta ao seu app.As rotas de API leem estas variáveis:DODO_PAYMENTS_API_KEYautentica as rotas de checkout e do Customer Portal.DODO_PAYMENTS_WEBHOOK_KEYverifica as assinaturas dos webhooks.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. 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
As rotas de API de checkout, Customer Portal e webhook ficam emsrc/pages/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
O script de checkout emsrc/components/ProductCard.astro 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 conectado:
Atualizar o Customer Portal
O link do Customer Portal emsrc/components/Header.astro abre /api/customer-portal com um ID de cliente definido diretamente no código. Substitua-o pelo ID do cliente do seu sistema de autenticação ou banco de dados:
Eventos de webhook
O handler emsrc/pages/api/webhook.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).onSubscriptionCancelledé executado quando uma assinatura é cancelada (subscription.cancelled).
onPaymentSucceeded. O Astro Adaptor lista todos os handlers compatíveis.
O Dodo Payments não consegue alcançar 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 do webhook.
Deploy
O Astro cria as páginas como saída estática, e cada rota de API defineexport const prerender = false para que seja renderizada sob demanda. As rotas sob demanda precisam de um adaptador do Astro para sua plataforma de deploy:
Para outras plataformas, consulte os guias de deploy do Astro. Na sua plataforma de hospedagem, adicione as quatro variáveis de ambiente e defina
DODO_PAYMENTS_RETURN_URL como sua URL de produção.
Atualizar a URL do webhook
Após fazer o deploy, adicione a URL de produção do webhook no Dodo Payments Dashboard:DODO_PAYMENTS_WEBHOOK_KEY no ambiente de produção como o segredo de assinatura deste endpoint.
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 apenas 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 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/components/Header.astro pelo ID de um cliente no seu dashboard do Dodo Payments.Em produção, obtenha o ID do cliente no seu sistema de autenticação e banco de dados.Build fails with adapter error
Build fails with adapter error
As rotas de API são renderizadas sob demanda, e o repositório não inclui um adaptador de deploy. Instale o adaptador do Astro para sua plataforma antes de fazer o build para produção.Consulte os guias de deploy do Astro para obter detalhes.
Saiba mais
- Documentação do Dodo Payments
- Documentação de Checkout Sessions
- Documentação de Webhooks
- Astro Adaptor: opções para os handlers
Checkout,CustomerPortaleWebhooks - Documentação do Astro
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.