Implementa checkout com Stripe (Checkout Sessions) e confirmações via webhooks, com padrões seguros para Next.js (App Router) e Supabase (Edge Functions/RLS). Use quando o usuário mencionar Stripe, checkout, pagamento, checkout session, webhook, payment_intent, assinatura de webhook, success/cancel, Supabase Edge Functions, ou fluxo de pedidos pago/não pago.
Entregar um fluxo transplantável de checkout com Stripe que seja correto para e-commerce:
success/cancel são UX; não “marcam como pago”.STRIPE_WEBHOOK_SECRET.STRIPE_SECRET_KEY e Service Role do Supabase só no server.orders (mínimo): status, stripe_checkout_session_id, stripe_payment_intent_id (quando aplicável), amount, currency, user_id/tenant_id (se existir), timestamps.success_url e cancel_url.orders.status conforme eventoloading / error / empty / success.Checkout Session no server.session.url.success_url, mostre confirmação e/ou “aguardando confirmação”.Use quando você precisa de UI de cartão embutida ou múltiplas tentativas no mesmo pedido. Mesmo assim, webhooks seguem obrigatórios.