PayPal
PayPal im Backend
PayPal Checkout verwaltet die Verbindung zum PayPal-Händlerkonto, die aktivierten PayPal-Zahlarten, Webhooks, Statusfolgen, Rechnungserstellung und Rückzahlungen aus Bestellungen.
Einordnung und Voraussetzungen
PayPal ist eine Anbieter-Unterseite der Zahlungsarten. Allgemeine Regeln wie Aktivstatus, Reihenfolge, Kosten, Wertgrenzen, Kundengruppen, Versandarten und Versandzonen bleiben auf der Hauptseite der Zahlungsarten gepflegt. Diese Seite erklärt die providerbezogene Konfiguration.
- Shop-Bezug: Die PayPal-Konfiguration wird je Multishop im Bereich
payment_paypalgespeichert. - Verbindung: Händlerkennung, ClientId, SecretKey und WebhookId entstehen über den PayPal-Verbindungsprozess und sind im Formular nicht frei editierbar.
- Modulabhängigkeiten: Rechnungserstellung und Rechnungsversand hängen vom FiBu-Modul ab. PayPal für Abonnements hängt vom Abo-Modul ab.
- Checkout-Freigabe: PayPal kann im Checkout nur erscheinen, wenn die allgemeine Zahlungsart und die jeweilige PayPal-Zahlart passend aktiv sind.
Verbindung und Betriebsmodus
- Mit PayPal verbinden: Öffnet den PayPal-Onboarding-Prozess. Nach erfolgreicher Rückgabe werden Händlerkennung, Zugangsdaten und Webhook automatisch gespeichert.
- Verbindung aufheben: Leert Token, Partner-Token, ClientId, SecretKey, WebhookId, Rechnungskauf-Freigabe und Händlerkennung. Danach ist eine neue Verbindung nötig.
modusBetriebsmodus:1steht für Live,0für Sandbox. Beim Wechsel werden Token zurückgesetzt.merchant_idHändlerId: PayPal-Händlerkennung aus dem Onboarding. Das Feld ist deaktiviert.clientidundsecret: REST-Zugangsdaten aus dem Onboarding. Beide Felder sind deaktiviert.webhook_id: PayPal-Webhookkennung. Fehlt der Wert oder ändert sich die Abo-Einstellung, versucht das Modul beim Speichern einen neuen Webhook anzulegen.
Anzeige und Zahlungsarten
Der Bildertyp und jede Zahlart werden im gleichen Formular gepflegt. Jede Zahlart besitzt einen Aktiv-Schalter, eine Bezeichnung und ein Bildfeld.
| Gruppe | Backend-Felder | Wirkung |
|---|---|---|
| Bildertyp | image_typ | Steuert, ob eigene Bilder oder PayPal-Icons verwendet werden. |
| PayPal-Zahlarten | payment_sepa, payment_paylater, payment_card, payment_pui | Lastschrift, Später bezahlen, Kreditkarte und Rechnungskauf. Rechnungskauf wird nur aktivierbar, wenn PayPal die Fähigkeit PAY_UPON_INVOICE für das Händlerkonto aktiv meldet. |
| Alternative Zahlarten | payment_giropay, payment_bancontact, payment_blik, payment_eps, payment_ideal, payment_mybank, payment_p24 | Aktiviert länderspezifische PayPal-Zahlarten. Das Backend zeigt die hinterlegten Länder pro Methode an. |
| Warenkorb-Checkout | basketcheckout | Blendet PayPal bereits im Warenkorb ein und ermöglicht den Express-Einstieg vor dem klassischen Checkout. |
| Abo-Checkout | subscriptioncheckout | Aktiviert PayPal für Abonnements. Das Feld ist deaktiviert, wenn das Abo-Modul nicht aktiv ist. |
| Button-Stil im Warenkorb | addition_button_style_basket | Freitextfeld für zusätzliche Style-Parameter des PayPal-Buttons im Warenkorb. |
Die aktivierten PayPal-Zahlarten sind weiterhin von PayPal-Freigaben, Land, Käuferdaten, Warenkorb und Shop-Kontext abhängig. Das Backend kann daher eine Methode aktiv speichern, ohne dass PayPal diese in jedem Checkout-Kontext anbietet.
Status und Rechnung
| Feld | Zweck |
|---|---|
order_status_ok | Bestellstatus nach erfolgreicher Zahlung für normale PayPal-Zahlungen. |
order_status_ok_pui | Bestellstatus nach erfolgreichem Rechnungskauf. |
order_status_error | Bestellstatus bei fehlgeschlagener PayPal-Zahlung. |
order_status_error_pui | Bestellstatus bei fehlgeschlagenem Rechnungskauf. |
status_ok_createBill | Übergibt an die Checkout-Rechnungslogik, ob nach erfolgreicher Zahlung eine Rechnung erzeugt wird. |
status_ok_sendBill | Übergibt an die Checkout-Rechnungslogik, ob die erzeugte Rechnung versendet wird. |
Beim Speichern werden die verschachtelten Zahlart-Felder serialisiert. Wenn ein Webhook fehlt oder die Abo-Einstellung geändert wurde, löscht das Modul vorhandene Webhooks und erstellt einen neuen Webhook für die Shop-URL.
Webhook-Ereignisse
Der Standard-Webhook umfasst Checkout- und Capture-Ereignisse für abgeschlossene, erstattete, rückgebuchte, abgelehnte, offene und abgeschlossene Captures. Bei aktivem Abo-Checkout ergänzt das Modul Abo-Ereignisse für Erstellung, Aktivierung, Aktualisierung, Ablauf, Kündigung, Pausierung, Rückbuchung, Erstattung und fehlgeschlagene Zahlung.
Checkout-Ablauf
- Im Checkout oder im Warenkorb wird PayPal ausgewählt.
- Das Modul erstellt eine PayPal-Order mit Intent
CAPTUREund passenden Zahlungsquellen. - Bei normalen PayPal-Zahlungen wird die Bestellung mit PayPal verbunden und danach gecaptured.
- Bei Rechnungskauf prüft das Modul zusätzliche Kundendaten wie Telefonnummer und Geburtsdatum. Fehlende Pflichtdaten können einen Zwischenschritt auslösen.
- Alternative Zahlarten werden über die jeweilige PayPal-Zahlungsquelle erzeugt und können eine Weiterleitung zum externen Zahlungsweg auslösen.
- Nach Rückmeldung verarbeitet das Modul Status, Zahlungsdaten, Rechnungserstellung, Rechnungsversand und Bestellstatus nach den hinterlegten Feldern.
Bestellansicht und Rückzahlung
In der Bestellung zeigt PayPal Transaktionsdetails an, wenn Zahlungsdaten zur Bestellung gespeichert sind. Das Backend fragt dazu die PayPal-Order ab und zeigt Status, Transaktionsart, Zeitpunkt, Transaktionskennung, Betrag, Währung, Gebühr und Nettobetrag.
- Rückzahlung senden: Die Aktion erscheint bei Captures, die weder vollständig erstattet noch ausstehend sind.
amount: Pflichtfeld im Rückzahlungsdialog. Der Wert muss mindestens0.01betragen und darf den noch verfügbaren Rückzahlungsbetrag nicht überschreiten.- Erfolg: Nach erfolgreicher Rückzahlung schließt das Modal und zeigt eine Erfolgsmeldung.
- Fehler: Bei Ablehnung bleibt das Formular geöffnet und zeigt die PayPal-Fehlermeldung.
Logs und Prüfung
PayPal stellt einen Admin-Logviewer für tägliche Checkout-Logs bereit. Die Loganzeige verwendet den Prefix ppcheckout, zeigt Textdateien aus dem Logbereich und maskiert Secrets sowie Tokens zusätzlich.
- Nach einer neuen Verbindung prüfen, ob HändlerId, ClientId, SecretKey und WebhookId gefüllt sind.
- Nach Aktivierung zusätzlicher Zahlarten einen Checkout mit passendem Rechnungsland testen.
- Nach Änderung der Statusfelder eine Testbestellung inklusive Rechnungserstellung und Rechnungsversand prüfen.
- Nach Aktivierung des Abo-Checkouts prüfen, ob Webhook und Abo-Ereignisse neu angelegt wurden.