Zum Inhalt springen
supastack
Dokumentation durchstöbern
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /de/docs/web/setup-payments.md (or send Accept: text/markdown).

Zahlungen einrichten

Wähle einen Billing-Adapter und verdrahte seinen signierten Webhook mit den Entitlements.

Einrichtung und Konfiguration

Lesen Sie vor jedem Schritt Bevor Sie beginnen und Terminal-Grundlagen. Bei diesen Anweisungen wird davon ausgegangen, dass Sie das vollständige Supastack-Monorepo in VS Code geöffnet haben. Sein Stamm package.json markiert den Repository-Stamm. In pnpm-Befehlen ist ein Arbeitsbereichspaket eine App oder ein Ordner mit gemeinsam genutztem Code. Im Produkt ist ein Arbeitsbereich der Datencontainer und die Sicherheitsgrenze eines Teams. corepack pnpm --filter ... wählt ein Paket aus dem Monorepo aus, während Befehle von seinem Stammverzeichnis aus ausgeführt werden. Wenn Sie nur einen synchronisierten Mobil- oder Desktop-Ordner geöffnet haben, enthält dieser weder das Web-Backend, Docker-Setup noch Root-Skripte: Führen Sie das Backend von diesem Monorepo oder einem erreichbaren gehosteten Server aus und verwenden Sie die eigenen Skripte des Plattformordners. Eine Umgebungsvariable ist eine benannte Einstellung, die in einer lokalen .env-Datei oder Ihrem Hosting-Dashboard gespeichert ist; Starten Sie die entsprechende App neu, nachdem Sie sie geändert haben, und halten Sie Servergeheimnisse von den Werten NEXT_PUBLIC_ und EXPO_PUBLIC_ fern.

1. Öffnen Sie apps/web/.env.local und behalten Sie BILLING_PROVIDER=local beim Lernen des Checkout-Bildschirms.

2. Für eine echte Integration erstellen Sie Produkte im Testmodus bei einem Anbieter und fügen dann dessen Serverschlüssel und Webhook-Geheimnis zu den privaten Umgebungseinstellungen des Webhosts hinzu. Ein Webhook ist eine signierte Nachricht, die der Abrechnungsdienst nach dem Auschecken, Erneuern oder Stornieren an Ihre App sendet. Der Endpunktpfad ist im Codebeispiel dieses Handbuchs aufgeführt.

3. Starten Sie Web mit corepack pnpm --filter @supastack/web dev und testen Sie nur die Sandbox. Erwartet: Ein verifizierter Webhook aktualisiert die Berechtigung des angemeldeten Arbeitsbereichs; Das alleinige Öffnen einer Checkout-Seite gewährt keinen Zugriff.

Verwenden Sie während der Integration Sandbox- oder Test-Zugangsdaten. Konfigurieren Sie BILLING_PROVIDER und die serverseitigen Secrets des Anbieters: stripe → STRIPE_SECRET_KEY, STRIPE_PRICE_ID, STRIPE_WEBHOOK_SECRET; lemonsqueezy → LEMONSQUEEZY_API_KEY, LEMONSQUEEZY_STORE_ID, LEMONSQUEEZY_VARIANT_ID, LEMONSQUEEZY_WEBHOOK_SECRET; creem → CREEM_API_KEY, CREEM_PRODUCT_ID, CREEM_WEBHOOK_SECRET (CREEM_TEST_MODE=true für die Sandbox); polar → POLAR_ACCESS_TOKEN, POLAR_PRODUCT_ID, POLAR_WEBHOOK_SECRET (POLAR_SERVER); whop → WHOP_API_KEY, WHOP_PLAN_ID, WHOP_WEBHOOK_SECRET; paddle → PADDLE_API_KEY, PADDLE_PRICE_ID, PADDLE_WEBHOOK_SECRET (PADDLE_ENVIRONMENT); dodo → DODO_PAYMENTS_API_KEY, DODO_PRODUCT_ID, DODO_PAYMENTS_WEBHOOK_KEY (DODO_PAYMENTS_ENVIRONMENT); paypal → PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET, PAYPAL_PLAN_ID, PAYPAL_WEBHOOK_ID (PAYPAL_ENVIRONMENT). Der Preis oder das Produkt muss dem vorgesehenen wiederkehrenden Abonnement entsprechen.

Webhook endpoint: /api/billing/webhook (stripe), /api/billing/webhook/lemonsqueezy, /api/billing/webhook/creem, /api/billing/webhook/polar, /api/billing/webhook/whop, /api/billing/webhook/paddle, /api/billing/webhook/dodo, /api/billing/webhook/paypal
Checkout endpoint: /api/billing/checkout
Portal endpoint: /api/billing/portal

Befehle zum Kopieren

Befolgen Sie die Kommentare, um zu sehen, in welchem Ordner ein Befehl ausgeführt wird. Wenn zwei Terminals gekennzeichnet sind, öffnen Sie zwei Terminalfenster und lassen Sie den ersten Befehl laufen, während Sie den zweiten verwenden.

corepack pnpm --filter @supastack/web dev

Implementierungsablauf

Folgen Sie beim Konfigurieren des Webhook-Endpunkts der Liste der Lifecycle-Ereignisse in docs/real-provider-smoke.md. Für die Signaturprüfung ist das zugehörige Webhook-Secret des Endpunkts erforderlich. Eine Checkout-Weiterleitung darf allein niemals Zugriff gewähren.

Die Berechtigung an der serverseitigen Aktionsgrenze entscheidet, ob kostenpflichtige Arbeit zulässig ist. Verarbeiten Sie wiederholte Ereignisse sicher und ordnen Sie Kunden- und Abonnementdatensätze dem richtigen Workspace zu. Web-Checkout bleibt von nativen Käufen getrennt.

Der von einem Plan gewährte Schlüssel ist ein produktübergreifender Produktbegriff: ProductPlan.entitlement in src/product-plans.ts legt den kleingeschriebenen maschinenlesbaren Schlüssel fest, der während eines kostenpflichtigen Plans ins Ledger geschrieben wird (das Kit liefert 'ai.reference-task' für pro und lifetime mit; src/billing-runtime.ts übergibt ihn an den BFF). Derselbe Schlüssel wird mit dem Feld required_entitlement eines CMS-Eintrags und der entitlementKey-Prop von EntitlementGate verglichen — ein Eintrag mit dem Gate 'ai.reference-task' wird für jeden Workspace mit dieser Berechtigung freigeschaltet; ein Schlüssel, den kein Plan gewährt, bleibt für alle gesperrt.

Überprüfung und Fehlerbehebung

Wird ein Webhook abgelehnt, vergleichen Sie die genaue Sandbox-URL und das Signaturgeheimnis im Anbieter-Dashboard mit den Servereinstellungen. Prüfen Sie, ob der Anbieter eine Weiterleitung von Anfragen an localhost benötigt. Funktioniert der Checkout, bleibt der Zugriff aber gesperrt, prüfen Sie das Webhook-Ergebnis und den Berechtigungsschlüssel des Tarifs. Verwenden Sie für diesen lokalen Leitfaden niemals Live-Zahlungsdaten.

Testen Sie Aktivierung, Änderungen, Kündigung, ungültige Signaturen und wiederholte Ereignisse in der Sandbox. Prüfen Sie nach der Verarbeitung den gespeicherten Zugriffszustand. Eine Checkout-Sitzung zu erstellen, die nicht abgeschlossen wird, belegt nur die Verbindung, nicht die vollständige Abwicklung des Lifecycle.

Wenn du die Einrichtung fortsetzen möchtest, lies E-Mail einrichten.

Häufige Fragen

14 Fragen

Was ist supastack?

supastack ist eine modulare Basis zum Bauen von KI-gestützten SaaS-Produkten. Sie bündelt die gemeinsame Infrastruktur, damit du dich auf die Funktionen konzentrieren kannst, die dein Produkt ausmachen.

Unterstützt es Web und Mobil?

Ja. supastack enthält Next.js- und Expo-Apps als Ausgangspunkt für Web- und Mobile-Erlebnisse.

Welche Authentifizierung ist enthalten?

Better Auth deckt E-Mail/Passwort, OTP und Social Login ab. Persönliche Workspaces werden mit dem Konto provisioniert, damit Datensätze vom ersten Tag an begrenzt sind.

Wie wird KI unterstützt?

supastack enthält konfigurierbare Multi-Anbieter-KI, Nutzungsverfolgung, Budgets und verschlüsselte Bring-your-own-key-Unterstützung.

Wie werden Abonnements gehandhabt?

Für Produkte, die auf dem Kit aufbauen, bilden Stripe-Abrechnung, Abonnements und Berechtigungen die Basis für bezahlten Zugang. Anbieter-Geheimnisse bleiben serverseitig.

Wo liegt mein produktspezifischer Code?

Produktspezifische Funktionen bleiben in einem separaten Codebase, während das Produkt die Basismodule von supastack konfiguriert und integriert.

Wie funktioniert die Preisgestaltung von supastack?

Das Kit ist ein Einmalkauf mit lebenslangen Updates: Ein Framework für 249 $ (befristeter Einführungspreis — 100 $ Rabatt auf den regulären Preis von 349 $) oder Alle Frameworks (Next.js, iOS, Android) für 499 $ (befristeter Einführungspreis — 100 $ Rabatt auf den regulären Preis von 599 $), plus 75 $ pro zusätzlichem Entwickler-Sitz. Kein Kit-Abo. Checkout auf dieser Website liefert deinen Lizenzschlüssel per E-Mail, mit Repo-Zugang per GitHub-Einladung.

Wie begrenzen Workspaces meine Daten?

Nutzerdatensätze sind über workspaceId begrenzt. Identität, Berechtigungen, KI-Nutzung, Abrechnungsereignisse und Audit-Einträge bleiben innerhalb der persönlichen Workspace-Grenze.

Wie funktionieren Hintergrundjobs?

Trigger.dev ist die explizite Job-Laufzeit. Der JobRunner-Vertrag verspricht nur enqueue, status und cancel — Workflow-Semantik bleibt Trigger.dev-spezifisch und explizit.

Wie unterscheidet sich E-Mail von Outreach?

Transaktions-E-Mail deckt Produktabläufe wie Task-Abschluss-Hinweise ab. Cold Outreach und Kampagnen gehören zum Produkt selbst, außerhalb des E-Mail-Moduls dieses Kits.

Wie funktionieren mobile Käufe?

Mobile bietet native Käufe und Wiederherstellung über RevenueCat; dein Server prüft den Zugriff. Konfiguriere die Store-Konten und schließe Gerätetests vor der Veröffentlichung ab. Web-Abrechnung bleibt separat.

Wo liegen die KI-Anbieter-Schlüssel?

BYOK-Zugangsdaten sind verschlüsselt und bleiben serverseitig. Schlüssel werden in Logs bereinigt; Nutzung und Budgets bleiben auf Workspace-Ebene sichtbar.

Welche Zahlungsmethoden akzeptiert der Checkout?

Der von Stripe gehostete Checkout akzeptiert Karten und kann — sobald die Wallets im Stripe-Konto aktiviert sind — auch Alipay und WeChat Pay anbieten, praktisch für Käufer in China. Wallet-Autorisierungen werden asynchron bestätigt, sodass sich die Lizenzseite aktualisiert, sobald die Zahlung eingegangen ist.

Kann ich eine Rückerstattung erhalten?

Sobald du Zugriff auf das Repository hast, gehört supastack für immer dir und kann daher nicht zurückerstattet werden. Aber keine Sorge: Du erhältst den vollständigen Quellcode mit lebenslangen Updates, um unbegrenzt viele Produkte für dich oder deine Kunden zu erstellen und zu veröffentlichen. Du darfst den Code lediglich nicht weiterverkaufen oder das Repository als Starter-Kit oder Vorlage weitergeben.

DE
Design