Visão geral
Alana Shopping envia eventos de webhook para mudanças de cobrança e assinatura via Stripe. Sua aplicação pode escutar esses eventos para automatizar fluxos de trabalho.
Eventos suportados
| Evento | Descrição |
|---|
checkout.session.completed | Cliente completou uma sessão de checkout |
customer.subscription.created | Nova assinatura criada |
customer.subscription.updated | Plano de assinatura alterado, renovado ou modificado |
customer.subscription.deleted | Assinatura cancelada |
invoice.paid | Pagamento de fatura bem-sucedido |
invoice.payment_failed | Falha no pagamento da fatura |
Segurança de webhook
Todos os payloads de webhook são assinados pelo Stripe. Sempre verifique a assinatura antes de processar:
import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
export async function POST(request) {
const body = await request.text();
const signature = request.headers.get('stripe-signature');
const event = stripe.webhooks.constructEvent(
body,
signature,
process.env.STRIPE_WEBHOOK_SECRET
);
// Processar o evento verificado
switch (event.type) {
case 'customer.subscription.updated':
// Atualizar plano do workspace
break;
case 'invoice.payment_failed':
// Notificar owner do workspace
break;
}
}
Nunca processe eventos de webhook sem verificar a assinatura do Stripe. Webhooks não verificados podem ser falsificados por atores maliciosos.
Política de retry
Stripe tenta novamente entregas de webhook falhadas com backoff exponencial por até 3 dias. Garanta que seu endpoint retorne um código de status 200 prontamente para evitar retentativas.