← Zurück zu Web-App-Entwickler
Entdecke, wie der Skill hilft
Stripe-Integration
Verknüpft Checkout- und Aboereignisse mit verifizierten lokalen Zahlungs-, Rechnungs- und Berechtigungszuständen.
stripe-integration
Teammitglieder mit diesem Skill
Wann ist der Skill hilfreich?
Nutze dies für Zahlungen oder Änderungen von Aboplänen.
Wobei hilft er dir?
- Wählt gehosteten Checkout oder PaymentIntents passend zum Ablauf.
- Verarbeitet signierte Abo- und Rechnungsereignisse mit Duplikatschutz.
- Klärt Planwechsel, anteilige Abrechnung und API-Versionen.
Das könntest du fragen
Implementiere ein Abo-Upgrade im Testmodus mit ausstehender Zahlung und Zugriff erst nach verifizierten Rechnungsereignissen. Bestätige ein Upgrade bei noch offener Rechnung und liefere Bestätigung zweimal. Aktiviere die neue Berechtigung einmal aus verifiziertem Zahlungsstatus mit vereinbarter anteiliger Abrechnung.
Ausführliche Dokumentation
Hier findest du die ursprüngliche Anleitung, Beispiele und Prüfschritte des Skills in ihrer Originalsprache.
Weniger anzeigen
Stripe Integration
When integrating Stripe, pin the API version explicitly, rely on Stripe's server-side objects as the source of truth for payment and subscription state, and handle asynchronous 3D Secure (SCA) and webhook lifecycles cleanly.
1. Checkout Sessions vs. PaymentIntents & Elements
- Stripe Checkout (
checkout.sessions.create):- Preferred for standard one-time purchases (
mode: 'payment'), recurring subscriptions (mode: 'subscription') and saving payment methods (mode: 'setup'). - Always pass
client_reference_idandmetadata: { userId, workspaceId, planId }, plussubscription_data.metadatafor subscriptions so subsequentcustomer.subscription.*andinvoice.*webhooks carry your tenant identifiers!
- Preferred for standard one-time purchases (
- PaymentIntents + Payment Element:
- Use when building a custom embedded checkout flow.
- Create the
PaymentIntenton the server with the server-calculatedamountandcurrency, enablingautomatic_payment_methods: { enabled: true }. - Handle
requires_action(3DS/SCA redirects or modals) andprocessing(delayed bank debits like SEPA, ACH, Sofort) without assuming synchronous completion.
2. Subscription & Invoice Webhook Lifecycle
Fulfill and update recurring access from the canonical webhook sequence:
checkout.session.completed: links the newstripe_customer_idandstripe_subscription_idto your local tenant. (For delayed payment methods, also watchcheckout.session.async_payment_succeeded/async_payment_failed.)invoice.paid: confirms initial and recurring billing period payment; updatecurrent_period_start,current_period_endand reset/grant period quotas.invoice.payment_failed: renewal attempt failed; transition local state topast_due, record grace-period deadline, and notify the customer to update their payment method via the Billing Portal (billingPortal.sessions.create).customer.subscription.updated: handles plan upgrades/downgrades, quantity/seat changes,cancel_at_period_endtoggles, trial endings and status transitions (trialing,active,past_due,unpaid,paused).customer.subscription.deleted: subscription has terminated at period end or immediately; revoke paid subscription entitlements.
3. Upgrades, Downgrades & Proration Behavior
- Immediate upgrade with payment guarantee: update the subscription item's
pricewithproration_behavior: 'always_invoice'andpayment_behavior: 'pending_if_incomplete'so the plan change only commits once the prorated invoice is paid. - End-of-period downgrade: use Subscription Schedules (
subscriptionSchedules.create({ from_subscription })) to schedule the lower-tier price starting atcurrent_period_endwithout immediate proration credits. - Previewing charges: use
invoices.createPreview(orretrieveUpcomingdepending on SDK version) so the customer sees the exact prorated amount due today and on the next renewal before confirming.
4. Stripe Security & Version Hygiene
- Webhook verification: call
stripe.webhooks.constructEvent(rawBodyBuffer, sigHeader, webhookSecret)using the raw unparsed request body. - API Version pinning: inspect the installed
stripeSDK version inpackage.jsonand the pinnedapiVersionbefore assuming newer fields (such as flexible billing or newer invoice preview methods). - Currency exponents: remember that Stripe treats
HUF,ISKandUGXas two-decimal currencies for charges (multiply whole HUF by100, e.g.,5000 HUF -> 500000), whileJPYandKRWare zero-decimal.
Enthaltene Dateien 1
SKILL.md
