Suche

Kavel durchsuchen...

Dokumentationsmenü

Zahlungen

Stripe-Abos am Edge, Checkout, ein Abrechnungsportal und signaturgeprüfte Webhooks.

Hinweis

Zahlungen benötigt das Auth-Modul, Abos sind an einen Benutzer gebunden. Die CLI wählt es automatisch für dich aus.

Was du bekommst

  • Typisierte oRPC-Prozeduren (createCheckoutSession, createPortalSession und getSubscription) alle hinter requireAuth
  • Ein Webhook unter /api/stripe/webhook, der Signaturen prüft und die Abo-Zeile jedes Benutzers upsertet
  • Eine /billing-Seite, die den Checkout startet und zum Stripe-Kundenportal verlinkt

Edge-natives Stripe

Auf Workers gibt es keine Node-Runtime, daher nutzt das Modul Stripes fetch-basierten HTTP-Client und den Web-Crypto-SubtleCrypto-Provider, um Webhook-Signaturen asynchron zu prüfen, kein node_compat nötig.

ts
const event = await stripe.webhooks.constructEventAsync(
  payload,
  signature,
  env.STRIPE_WEBHOOK_SECRET,
  undefined,
  Stripe.createSubtleCryptoProvider(),
);

Einrichtung

  1. Erstelle einen wiederkehrenden Preis in Stripe und kopiere seine id in STRIPE_PRICE_ID.
  2. Füge STRIPE_SECRET_KEY hinzu (nutze während der Entwicklung einen sk_test_…-Schlüssel).
  3. Leite Webhooks lokal weiter und kopiere das Signing-Secret in STRIPE_WEBHOOK_SECRET.
bash
stripe listen --forward-to localhost:8787/api/stripe/webhook

Tipp

Ohne Stripe-Schlüssel bleiben die Checkout-Endpunkte inaktiv, der Rest der App baut und läuft trotzdem. Siehe Deployment für die Produktions-Webhook-Einrichtung.