~/VibeHandbook
PDF grátis

Capítulo 16 · 04

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.

Quer offline?

Baixe o livro inteiro em PDF ou EPUB — grátis.