Configurando Pagamentos
Se você quer receber pagamentos, o caminho padrão para um criador solo é o Stripe (ou Lemon Squeezy / Paddle, se você quiser que eles cuidem do imposto sobre vendas para você — como , comerciante de registro, eles ficam com uma fatia maior, mas fazem a dor de cabeça fiscal desaparecer). A mecânica é repetitiva e bem documentada, o que os torna ideais para delegar. As peças de que você precisa:
- Um fluxo de checkout — o Stripe Checkout é o mais rápido; ele te entrega uma página de pagamento hospedada, então você nunca toca em dados de cartão crus.
- Pense em um como a empresa de pagamento ligando para o seu app no instante em que uma venda é confirmada, em vez do seu app ficar perguntando "já foi processado?". Um webhook é exatamente isso: um (uma no seu servidor) que o provedor de pagamento chama para que seu app saiba quando um pagamento realmente teve sucesso. Essa é a parte que iniciantes pulam e depois ficam se perguntando por que os pedidos nunca são entregues. O redirecionamento de volta para o seu site pode ser fechado, bloqueado ou falsificado; o webhook é a fonte da verdade servidor-a-servidor. Nunca confie apenas no redirecionamento; confie no webhook.
- Uma forma de armazenar direitos de acesso — marcar o usuário como pago no seu banco de dados, para que uma atualização de página ou um novo dispositivo ainda mostrem o que ele comprou.
O insight chave é em qual seta você confia. O redirecionamento do usuário de volta ao seu site pode se perder ou ser falsificado; o webhook é a linha servidor-a-servidor que realmente libera o produto:
┌──────┐ 1. click Buy ┌───────────┐
│ USER │────────────────▶│ YOUR APP │
└──────┘ └─────┬─────┘
▲ │ 2. create checkout session
│ ▼
│ ┌─────────────┐
│ 3. pay on hosted │ STRIPE │
└───────────────────▶│ Checkout │
(card details) └──────┬──────┘
│
┌─────────────────────┴─────────────────────┐
│ 4a. redirect back 4b. WEBHOOK call │
│ (can be lost/faked) (server→server,│
▼ signed, trusted)▼
┌──────────────┐ ┌────────────────────┐
│ thank-you │ ✗ do NOT unlock here │ YOUR APP /webhook │
│ page (UI only)│ │ verify signature → │
└──────────────┘ │ mark user PAID ✓ │
└────────────────────┘
Peça para a IA montar o esqueleto dos três e explicar a verificação da assinatura do webhook, já que essa é a única etapa sensível em termos de segurança — sem ela, qualquer um que encontrar a URL do seu webhook poderia falsificar um evento de "pagamento bem-sucedido" e liberar seu produto de graça. Teste tudo no modo de teste do Stripe com os números de cartão de teste deles (4242 4242 4242 4242 é o famoso) antes de trocar para as chaves de produção, e use a Stripe para encaminhar eventos de webhook para sua máquina local, para que você possa observá-los disparando. Não pule o ensaio no modo de teste. O primeiro dinheiro real que passar pelo seu app deve ser uma transação que você já viu funcionar uma dúzia de vezes.