Zahlungsanbieter
Der Native Shop bringt zwei Zahlungsanbieter von Haus aus mit: PayPal und Stripe (Kreditkarte). Jeder hat seinen eigenen Screen unter VOD / Shop und speichert seine Zugangsdaten in einer eigenen Tabelle.
Fuer echte Zahlungen brauchst du mindestens einen konfigurierten Anbieter. Beide unterstuetzen Sandbox- und Live-Modus fuer gefahrloses Testen.
PayPal
Klicke VOD / Shop → PayPal API in der Sidebar.

| Feld | Zweck |
|---|---|
| Client ID | PayPal-REST-Client-ID aus dem PayPal-Developer-Dashboard. |
| Secret | PayPal-REST-Secret, passend zur Client ID. |
| Status | Sandbox nutzt die PayPal-Testumgebung; Live die echte. |
Client ID und Secret besorgen
- PayPal-Developer-Dashboard oeffnen.
- My Apps & Credentials → REST API Apps → Create App.
- Client ID und Secret kopieren.
- Sandbox-Credentials zum Testen, Live-Credentials fuer Produktion.
Ein PayPal-Konto pro Sprache
PayPal-Zugangsdaten sind pro Sprache gespeichert. Wenn dein Shop in mehreren Sprachen laeuft und du je Markt ein anderes PayPal-Konto nutzt, hinterlege die Zugangsdaten einmal pro Sprach-Tab.
Stripe
Klicke VOD / Shop → Kreditkarte (Stripe API) in der Sidebar.

| Feld | Zweck |
|---|---|
| Public Key | Stripe Publishable Key (pk_live_... oder pk_test_...). Wird im Frontend verwendet. |
| Secret | Stripe Secret Key (sk_live_... oder sk_test_...). Fuer serverseitige Charges. |
| Webhook Secret | Stripe Webhook Signing Secret (whsec_...). Signiert Gateway-Callbacks. |
Stripe-Webhook registrieren
Stripe bestaetigt Zahlungen per Webhook zurueck an den Shop. Die URL muss in Stripe hinterlegt sein, damit Stripe weiss, wohin gepostet werden soll:
- Im Stripe-Dashboard: Developers → Webhooks → Add endpoint.
- Die URL setzen:
https://deine-domain.de/_public/extensions/core/backend/shop/widgets/checkout/script/payment/libs/stripe/webhook.php - Mindestens diese Events abonnieren:
payment_intent.succeeded,payment_intent.payment_failed,charge.refunded,invoice.payment_succeeded,customer.subscription.updated,customer.subscription.deleted. - Das Signing secret (
whsec_...) des neuen Endpoints kopieren. - In der CMS-Stripe-Maske in Webhook Secret einfuegen und Speichern.
Erst im Stripe-Test-Modus pruefen
Stripe hat einen vollstaendigen Test-Modus mit Testkarten (4242 4242 4242 4242). Zuerst Test-Keys hinterlegen, einen Checkout End-to-End durchlaufen, Bestellung auf Bezahlt pruefen, dann auf Live-Keys wechseln.
Sandbox ↔ Live wechseln
| Anbieter | So wechseln |
|---|---|
| PayPal | Status von Sandbox auf Live stellen und Client ID + Secret durch die Live-Werte ersetzen. |
| Stripe | Public Key, Secret und Webhook Secret durch die Live-Pendants ersetzen (sk_live_…, pk_live_…, whsec_… vom Live-Webhook-Endpoint). |
Haeufige Fehler
Live-Zahlungen mit Test-Credentials
Wer das Umstellen von Sandbox auf Live vergisst, laesst echte Kunden eine Fehlermeldung bei PayPal sehen oder Stripe verweigert die Karte. Nach dem Umstellen immer mindestens einen End-to-End-Test laufen lassen.
Webhook-Secret passt nicht
Stimmt das Stripe-Webhook-Secret in der CMS nicht mit dem Webhook-Signing-Secret im Stripe-Dashboard ueberein, schlagen Callbacks stumm fehl. Bestellungen bleiben nach erfolgreicher Zahlung auf Ausstehend.
PayPal leitet auf alte URL
PayPal cached die Return-URL aus dem ersten Konfigurations-Call. Wenn du die Domain wechselst, besser eine neue PayPal-REST-App anlegen, statt die bestehende zu bearbeiten.
Siehe auch
- Shop-Stammdaten — E-Mail-Vorlagen rund um Zahlungen.
- Bestellungen — Zahlungsstatus je Bestellung.
- Nativer Shop Ueberblick