Integração Stripe
Dar acesso automático aos compradores da Stripe e retirá-lo em reembolsos.
1. Criar a integração
- Painel → app → Vendas → Nova integração → escolha Stripe.
- Preencha Webhook signing secret (whsec_…), Restricted API key (rk_…) — opcional (Necessária para ler os itens comprados (price/product IDs)). Os campos secretos são guardados cifrados e servem para confirmar que cada aviso vem mesmo da plataforma.
- Guarde. O painel mostra o URL de webhook desta integração.
2. Configurar na Stripe
Stripe → Developers → Webhooks → Add endpoint com a URL abaixo. Eventos: checkout.session.completed, checkout.session.expired, invoice.paid, invoice.payment_failed, charge.refunded, charge.dispute.created, customer.subscription.updated, customer.subscription.deleted. ID externo: Price (price_…), Product (prod_…), Payment Link (plink_…) ou metadata.product_id.
https://www.zurianlab.com/api/webhooks/stripe/<token-da-integração>3. Associar produtos
Na integração, associe cada produto da Stripe (price_…, prod_…, plink_… ou metadata.product_id) a um ou mais produtos da app. Compras de produtos sem associação aparecem em Vendas com erro para corrigir com um clique.
4. Testar
Faça uma compra de teste (ou use o botão de teste/reenvio da Stripe). Em Vendas vê cada evento recebido com o estado (processado, ignorado, falhou) e pode reprocessá-lo.
O que cada evento faz
| Evento | Efeito |
|---|---|
| Compra ou renovação aprovada | Cria o aluno (se não existir), dá acesso aos produtos associados e envia o email de acesso. |
| Reembolso, chargeback ou cancelamento | Retira o acesso dado por essa transação (os acessos dados por outras compras mantêm-se). |
| Pagamento pendente (transferência, voucher ou referência) | Cria um lead para recuperação; nunca dá acesso. |
| Pagamento recusado ou expirado, carrinho abandonado | Cria um lead e dispara as automações de recuperação. |
| Subscrição com pagamento em atraso | Inicia o período de tolerância definido nas Definições; depois retira o acesso. |
| Mudança de plano | Troca os produtos da subscrição. |
Segurança e fiabilidade
- Cada aviso é verificado (assinatura, token ou chave) antes de qualquer alteração; avisos não verificados são rejeitados.
- O processamento é idempotente: o mesmo evento repetido pela plataforma nunca dá acesso duas vezes.
- O acesso só é dado depois de a plataforma confirmar o pagamento — nunca a partir do navegador do comprador.