Deine Live-URL akzeptiert die Testkarte und lehnt jede echte Karte ab, weil die Site noch im stripe test mode läuft.
Checkout sieht fertig aus. Der Bezahlen-Button lädt. Ein Kunde tippt seine Visa ein und wird abgelehnt. Du probierst 4242 4242 4242 4242 — und es klappt. Im Stripe-Dashboard steht die Zahlung unter Testdaten, nicht unter Live-Zahlungen. Dein Launch ist für Menschen live, aber technisch noch an Sandbox-Keys verdrahtet.
Deine Live-Site nutzt noch Test-Keys
Eine Produktions-Domain bedeutet nicht automatisch Produktions-Stripe-Keys. Viele KI-Apps shipen mit pk_test_ und sk_test_ aus einem Tutorial. Das Frontend rendert Checkout. Das Backend erzeugt PaymentIntents mit einem Test-Secret. Stripe verarbeitet den Flow in der Testumgebung. Geld landet nie auf deinem Bankkonto.
Umgebungsvariablen sind meist der Übeltäter. Preview-Builds in Lovable oder Vercel injizieren Test-Keys automatisch. Beim Publish reisen dieselben Werte mit, bis du sie auf dem Host überschreibst. Eine .env-Datei auf dem Laptop mit Live-Keys hilft dem deployed Bundle nichts.
Symptome auf einer echten Domain mit Test-Keys:
- Nur
4242 4242 4242 4242oder andere Testnummern funktionieren - Echte Karten zeigen generische Ablehnung oder Auth-Fehler
- Stripe-Dashboard → Zahlungen listet den Charge nur, wenn der Testmodus-Toggle an ist
- Kunden erhalten Test-Quittungen, keine Live-Quittungen
- Dein Auszahlungs-Saldo bleibt bei null
Webhooks machen es schlimmer. Ein Handler, der im Testmodus registriert ist, feuert nicht für Live-Charges — und umgekehrt. Hast du Webhooks nur im Test gefixt, bleibt deine Datenbank bei Live-Zahlungen leer. Siehe stripe webhook für das Verdrahten des Live-Endpoints nach dem Key-Tausch.
Nur die Testkarte funktioniert beim Checkout
Stripe veröffentlicht Testkartennummern für die Entwicklung. 4242 4242 4242 4242 ist die bekannte. Sie funktionieren immer im Testmodus. Im Live-Modus nie. Echte PANs scheitern immer im Testmodus.
Gründer entdecken das oft beim Soft Launch. Ein Freund will zahlen. Es scheitert. Du denkst, Stripe ist kaputt, startest den KI-Prompt neu und verbrennst einen Nachmittag mit UI-Tweaks, die ein Key-Präfix nicht fixen können.
Schnellcheck ohne Code lesen:
- Öffne deine Live-Checkout-Seite im Browser.
- DevTools → Network.
- Starte eine Zahlung und suche nach Requests an Stripe.
- Beginnt der Publishable Key im Payload mit
pk_test_, läuft Testmodus auf einer öffentlichen URL.
Manche Teams betten den Key in clientseitiges JavaScript ein, das das Modell generiert hat. Andere laden ihn aus einer Env-Var, die auf dem Host nie aktualisiert wurde. Beide Wege führen zum gleichen Symptom: magische Testkarte ja, echtes Wallet nein.
Warum die KI Test-Keys in Produktion lässt
Coding-Assistenten defaulten auf sichere Sandbox-Werte, damit du beim Iterieren keine Karten belastest. Das ist in der Entwicklung richtig. Sie fügen selten eine Launch-Checkliste hinzu: Test-Keys ersetzen, bevor DNS öffentlich geht. Die Success-Page rendert — das Tool meldet das Feature als fertig.
Stripes eigene Docs zeigen Test-Keys zuerst. Copy-Paste aus ChatGPT oder Lovable stoppt oft bei sk_test_... ohne zweiten Schritt für Live. Behandle Key-Rotation als Teil von Go-Live, nicht als separaten Ops-Task, den du überspringen kannst.
Auf Live-Modus wechseln ohne Checkout zu brechen
Der Wechsel von Test zu Live ist kein einzelner Toggle im Repo. Es ist ein koordinierter Tausch von Keys, Webhooks und Dashboard-Modus. Überspringst du einen Schritt, bricht Checkout auf neue Art.
- Stripe-Kontoaktivierung abschließen (Geschäftsdaten, Bankkonto), damit Live-Modus freigeschaltet ist.
- Im Stripe-Dashboard den Testmodus-Schalter (oben rechts) aus, um Live-Daten zu sehen.
- Zu Developers → API keys gehen und Live Publishable und Secret Keys offenlegen (
pk_live_,sk_live_). - Produktions-Umgebungseinstellungen deines Hosts öffnen (Vercel, Netlify, Railway, Lovable Publish Env usw.).
- Jede
STRIPE_*-Variable mit_test_durch Live-Werte ersetzen. Webhook-Signing-Secrets einbeziehen, nachdem du einen Live-Endpoint erstellt hast. - Neu deployen oder neu starten, damit die neuen Env-Vars laden. Gecachte Builds behalten alte Keys bis zum Redeploy.
- Live-Webhook-URL unter Live-Modus im Dashboard registrieren. Auf deinen Produktions-HTTPS-Pfad zeigen.
- Eine kleine echte Zahlung mit eigener Karte. Prüfen, dass sie unter Live-Zahlungen erscheint und deine App Zugang gewährt.
Test-Keys in lokaler .env.local für Entwicklung behalten. Live-Secrets nie in Git committen. Produktion und Staging sollten jeweils eigene Live- oder Test-Sets haben, klar benannt.
Andere Produktions-Lücken verstecken sich oft neben Stripe-Keys. Auth-URLs, Supabase-Policies und fehlende Env-Vars tauchen beim selben Deploy auf. Der Hub-Artikel zu lovable deploy listet die Einstellungen, die Editoren überspringen, wenn Publish fertig wirkt.
stripe test mode Checkliste vor dem Launch
Geh die Liste auf der URL durch, die Kunden wirklich nutzen — nicht localhost.
- Produktions-Env-Vars nutzen
pk_live_undsk_live_, nicht_test_ - Checkout mit echter Karte erfolgreich und im Live-Dashboard sichtbar
- Testkarte
4242...scheitert in Produktion (beweist, dass du den Testmodus verlassen hast) - Live-Webhook-Endpoint antwortet 200 und aktualisiert deine Datenbank
- Auszahlungs-Einstellungen und Geschäftsprofil sind vollständig
- Staging nutzt Test-Keys; Produktion Live-Keys — nie gemischt auf einem Host
Testmodus ist zum Bauen. Live-Modus ist für Geld. Eine Custom Domain auf Test-Keys ist noch eine Demo — egal wie poliert die UI aussieht.
FAQ
Woran erkenne ich, dass meine Site noch im stripe test mode läuft?
Prüfe deine Produktions-Umgebungsvariablen. Wenn STRIPE_SECRET_KEY oder NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY mit sk_test_ oder pk_test_ beginnt, bist du im Testmodus. Echte Karten werden abgelehnt, während 4242 4242 4242 4242 noch funktioniert.
Kann ich Test-Keys auf einer Live-Domain während der Beta nutzen?
Ja, aber kein echtes Geld fließt und keine echte Karte wird akzeptiert. Stripe behandelt Test und Live als getrennte Welten. Kunden, die ihre eigene Karte probieren, sehen einen Fehler — auch wenn Checkout poliert aussieht.
Was ist der schnellste Weg von stripe test mode zu Live?
Erstelle Live-API-Keys im Stripe-Dashboard, ersetze jeden Test-Key in den Produktions-Env-Vars, registriere Live-Webhooks und führe eine kleine echte Zahlung durch. Test-Keys in .env.local betreffen Produktion nicht, bis du Live-Keys auf den Host kopierst.