Zum Hauptinhalt springen
PayPal Checkout ist die aktuelle PayPal-Anbindung von WEBSALE. Sie ist kein einzelnes Bezahlverfahren, sondern eine Klammer: Mit einem Vertrag und einem Onboarding schalten Sie bis zu acht Zahlungsarten frei, die alle über dieselbe PayPal-Schnittstelle abgewickelt werden, vom PayPal-Konto über Kreditkarte und Lastschrift bis zu den länderspezifischen Verfahren. Das ist der entscheidende Unterschied zu den einzeln angebundenen Zahlungsarten. Sie richten einmal die technische Grundlage ein und danach jede gewünschte Zahlungsart nach demselben Muster. Diese Seite ist deshalb so aufgebaut: erst das Onboarding, dann das Muster, dann die Abweichungen der einzelnen Zahlungsarten. Screen 5zahlungsarten Paypal Checkout

Welche Zahlungsarten PayPal Checkout abdeckt

Kreditkarte und Lastschrift benutzen dieselben Abschnittsnamen und dieselben Zahlungsart-Codes wie die klassischen Anbindungen über einen anderen Zahlungsdienstleister. Welcher Dienstleister die Zahlung abwickelt, entscheidet allein die Freischaltung durch WEBSALE, nicht der Abschnittsname. Sie können eine dieser Zahlungsarten daher nicht gleichzeitig über PayPal Checkout und über einen anderen Anbieter laufen lassen.

Schritt 1: Das PayPal-Onboarding

Bevor irgendeine dieser Zahlungsarten funktioniert, muss Ihr PayPal-Geschäftskonto mit WEBSALE verbunden werden. Das geschieht einmal pro Shop über den Online-Shop-Betreuer.
  1. Melden Sie sich im Online-Shop-Betreuer an.
  2. Rufen Sie das PayPal-Onboarding auf und starten Sie es.
  3. Sie werden zu PayPal weitergeleitet und melden sich dort mit Ihrem PayPal-Geschäftskonto an.
  4. Bestätigen Sie die Verbindung. Anschließend kehren Sie in den Online-Shop-Betreuer zurück.
Das Onboarding verbindet Ihr PayPal-Konto mit WEBSALE, es schaltet aber noch keine einzige Zahlungsart frei. Die Freischaltung jeder gewünschten Zahlungsart nimmt WEBSALE anschließend für Sie vor. Melden Sie deshalb Ihrem WEBSALE-Ansprechpartner, welche der acht Zahlungsarten Sie anbieten wollen.
Ist eine Zahlungsart nicht durch WEBSALE freigeschaltet, schaltet der Shop sie beim Einlesen der Konfiguration von sich aus wieder ab, unabhängig davon, was in Allow steht. Das gilt für jede der acht Zahlungsarten. Wenn eine korrekt konfigurierte Zahlungsart im Bestellablauf nicht erscheint, ist die fehlende Freischaltung die erste Vermutung.
Wegweiser: Online-Shop-Betreuer

Schritt 2: Das gemeinsame Muster

Jede der acht Zahlungsarten wird nach demselben Muster eingebaut. Die folgenden vier Schritte gelten für alle, die Abweichungen stehen weiter unten bei der jeweiligen Zahlungsart.

2.1 Zahlungsart in der shop.config anlegen

Die allgemeinen Parameter sind dieselben wie bei jeder anderen Zahlungsart. Hinzu kommen die PayPal-eigenen: PayPal bekommt den Warenkorb positionsweise übergeben. Zu- und Abschläge, die keiner einzelnen Position zuzuordnen sind, lassen sich dort nicht als Korrektur abbilden und gehen deshalb als eigene Sammelposition mit. DummyItemAddition gibt dieser Position ihren Namen.

2.2 Das PayPal-JavaScript-SDK einbinden

Das SDK wird über einen Skript-Tag geladen, dessen URL Sie mit WEBSALE-Tags zusammensetzen. Binden Sie es auf der Seite ein, auf der der Bezahlvorgang stattfindet, in der Regel ws_order.htm.
Schreiben Sie in der URL nie &currency= unmittelbar hinter einen Parameter, ohne zu prüfen, wie Ihr Template kodiert wird. Die Zeichenfolge &curren ist eine gültige HTML-Entity und wird von manchen Werkzeugen in das Währungszeichen umgewandelt, wodurch der Parameter unbrauchbar wird. Schreiben Sie den Parameter in diesem Fall als &currency=.
PayPal versioniert das SDK nicht über eine Versionsnummer, sondern über ein Integrationsdatum. WEBSALE pflegt dieses Datum zentral und stellt es als ~PPC-IntegrationDate~ bereit. Übergeben Sie es statt einer festen Version, dann bekommen Sie automatisch die jeweils passende SDK-Fassung. Welchen Wert components= bekommt und ob weitere Parameter nötig sind, hängt von der Zahlungsart ab. Die Übersicht steht in Abschnitt 3.

2.3 Den Bezahlbereich im Template ausgeben

Die Zahlungsart selbst erscheint zusammen mit allen anderen über ~WS-PaymentFields~ auf ws_pay_deliv.htm. Der eigentliche Bezahlbereich, also der PayPal-Button oder das Eingabefeld, gehört auf die Bestellübersicht ws_order.htm und wird in {PPC-UsePayPalCheckout} geklammert.
{PPC-UsePayPalCheckout} ist ausschließlich als Klammerung verwendbar, nicht als einzelnes Tag. Es liefert nur dann wahr, wenn die gerade gewählte Zahlungsart tatsächlich über PayPal Checkout abgewickelt wird. Während eines laufenden Express-Checkouts liefert es falsch, denn dort ist der Bezahlvorgang bereits abgeschlossen. Die Links, die das SDK für seine Rückmeldungen braucht, liefern drei Tags:

2.4 Das Template für den Zwischenstand anlegen

Bei jeder Zahlungsart über PayPal Checkout gibt es einen Moment, in dem der Käufer bereits freigegeben hat, die Bestellung im Shop aber noch nicht abgeschlossen ist. Für diesen Moment braucht der Shop eine eigene Seite. Sie wird über einen Link angesprungen, den ~PPC-PendingLink~ liefert.
Die Seite selbst ist kurz und enthält kein sichtbares Bedienelement. Sie leitet sofort weiter.
Diese Seite darf den Käufer nicht zum Warten verleiten und sie darf keinen Zurück-Button anbieten. Ein Abbruch an dieser Stelle hinterlässt eine freigegebene Zahlung ohne zugehörige Bestellung.
Dieses Template wird von allen acht Zahlungsarten gemeinsam benutzt. Sie legen es einmal an, nicht pro Zahlungsart. Referenz: Abschnitt Template-Txt · Abschnitt PaymentXXX-Txt

Schritt 3: Die einzelnen Zahlungsarten

Alles Folgende baut auf dem Muster aus Schritt 2 auf. Beschrieben sind nur die Abweichungen.

Auf einen Blick

3.1 PayPal-Konto

Die Grundform. Sie kommt ohne Zusätze aus.

3.2 Kauf auf Rechnung mit Ratepay

Den Rechnungskauf wickelt PayPal nicht selbst ab, sondern der Partner Ratepay. Daraus ergeben sich drei Zusätze. Erstens braucht die Bestellseite das FraudNet-Skript von PayPal. Es dient der Betrugserkennung und muss geladen sein, bevor der Käufer die Bestellung auslöst. Zweitens müssen Sie die Rechtstexte von Ratepay anzeigen, insbesondere den Hinweis auf die Abtretung der Forderung und die Datenschutzerklärung von Ratepay. Ohne diese Texte ist die Anbindung nicht abnahmefähig. Drittens meldet Ratepay Ablehnungen mit eigenen Fehlercodes zurück. Das Tag ~PPC-PayPalErrorCode()~ gibt Ihnen den zuletzt gemeldeten Code, so dass Sie dem Käufer eine passende Meldung zeigen können statt einer allgemeinen Fehlermeldung.
Der Rechnungskauf verlangt eine deutsche Rechnungsadresse und eine Telefonnummer. Fragen Sie beides über die Adresseingabe ab und schränken Sie die Zahlungsart über BillCountry-Rule und BillCountry-List auf die zulässigen Länder ein, sonst wählt der Käufer eine Zahlungsart, die er anschließend nicht nutzen kann.

3.3 Später bezahlen

Pay Later zeigt dem Käufer die Möglichkeit, den Kaufbetrag zu stunden oder in Raten zu zahlen. Die Konditionen stellt PayPal, der Shop übergibt nur den Betrag.
Ergänzen Sie in der SDK-URL components=buttons,messages, wenn Sie den Werbehinweis von PayPal einbinden wollen, der auf dem Produkt oder im Warenkorb die möglichen Raten nennt.

3.4 Kreditkarte

Die Kartendaten gibt der Käufer nicht im Shop ein, sondern in Feldern, die PayPal in Ihre Seite einbettet. Sie gestalten die Felder, die Daten selbst sehen Sie nie. Dafür brauchen Sie zwei Dinge zusätzlich: components=buttons,hosted-fields in der SDK-URL und das Client-Token als Attribut am Skript-Tag.
Ohne data-client-token werden die Eingabefelder nicht aufgebaut, und zwar ohne sichtbare Fehlermeldung. Wenn der Kartenbereich leer bleibt, prüfen Sie zuerst dieses Attribut.

3.5 Lastschrift

Die SEPA-Lastschrift über PayPal Checkout nutzt denselben Button-Aufbau wie das PayPal-Konto, wird aber über die Funding-Source sepa aufgerufen.
Der Käufer gibt seine Bankverbindung bei PayPal ein, nicht im Shop. Eine eigene IBAN-Prüfung im Shop entfällt damit, und es wird auch kein SEPA-Mandat durch den Shop erzeugt.

3.6 Alternative, länderspezifische Zahlungsmethoden

Unter diesem Sammelbegriff fasst PayPal Verfahren zusammen, die jeweils nur in einem Land verbreitet sind. Jedes hat einen eigenen Abschnitt in der shop.config. Alle acht lesen dieselben Parameter: Jedes dieser Verfahren hat eigene Vorgaben für die Währung, das Land des Käufers und häufig einen Mindestbestellwert. Bilden Sie diese Vorgaben mit den allgemeinen Filterparametern der Zahlungsart ab, also mit BillCountry-Rule, DeliveryCountry-Rule und MinOrder-Value. Der Shop prüft sie sonst nicht, und die Zahlung scheitert erst bei PayPal. Wegweiser: Zahlungsarten anlegen, für die Filterparameter

3.7 Google Pay

Google Pay läuft technisch ebenfalls über PayPal Checkout, benötigt aber zusätzlich die Google-Pay-Bibliothek und eine eigene Beschreibung des Bezahlvorgangs.
Setzen Sie in der SDK-URL components=googlepay und laden Sie zusätzlich die Bibliothek von Google.
Die Angaben zum Betrag, die Google Pay erwartet, liefert ~PPC-GPayTransactionInfo~ fertig als JSON.

3.8 Apple Pay

Apple Pay funktioniert nur in Safari und nur auf Geräten von Apple, und es setzt voraus, dass Ihre Domain bei Apple verifiziert ist. Diese Verifizierung nimmt WEBSALE für Sie vor.
Setzen Sie in der SDK-URL components=applepay. Prüfen Sie im Template mit einer Abfrage auf die Verfügbarkeit, bevor Sie den Apple-Pay-Bereich aufbauen. Auf einem Gerät ohne Apple Pay bleibt sonst eine leere Fläche stehen.

Express-Checkout

Beim Express-Checkout beginnt der Käufer den Bezahlvorgang schon im Warenkorb. Er meldet sich bei PayPal an, PayPal liefert Name und Lieferadresse zurück, und der Käufer überspringt damit die Adresseingabe im Shop. Angeboten werden kann der Express-Checkout über das PayPal-Konto, über Google Pay und über Apple Pay. Paypalexpresscheckout Flow 1

Einschalten

Bei Google Pay und Apple Pay heißt der zweite Parameter ExpressCheckout-AllowAddressOverride und erlaubt zusätzlich das Überschreiben der Rechnungsadresse. Das Lieferland bleibt in beiden Fällen gesperrt. Für die Fälle, in denen eine per Express gelieferte Adresse nicht beliefert werden kann, gibt es zwei Meldungstexte:
Beide Texte erscheinen im Dialog des Bezahldienstes, nicht in Ihrem Shop. Die Voreinstellung ist englisch. Hinterlegen Sie deutsche Texte, sonst bekommt ein deutschsprachiger Käufer an dieser Stelle eine englische Fehlermeldung.

Im Warenkorb ausgeben

Der Shop prüft vor dem Anbieten des Express-Checkouts vier Bedingungen: Er muss freigeschaltet sein, der Warenkorb muss bestellfähig sein, die Gesamtsumme muss über null liegen, und die Zahlungsart darf nicht durch einen Ihrer Filter ausgeschlossen sein. Scheitert eine dieser Prüfungen, erscheint der Button nicht. Das ist der erste Ort, an dem Sie suchen, wenn er fehlt.

Die Rechnungsadresse

PayPal liefert beim Express-Checkout eine Lieferadresse, aber nicht zwingend eine brauchbare Rechnungsadresse. Sie haben zwei Möglichkeiten, damit umzugehen. Variante A: Der Käufer entscheidet. Sie zeigen ein Ankreuzfeld, mit dem er die Lieferadresse als Rechnungsadresse übernehmen kann.
Variante B: Der Shop fragt die Rechnungsadresse ab. Sie lassen das Ankreuzfeld weg und führen den Käufer regulär durch die Adresseingabe. Das ist der sicherere Weg, wenn Sie auf eine geprüfte Rechnungsadresse angewiesen sind, etwa beim Rechnungskauf. Wegweiser: Abweichende Lieferadresse abfragen

Die Zahlungsquelle hinterlegen (Vault)

Angemeldete Kunden können ihre PayPal-Zahlungsquelle im Kundenkonto hinterlegen und beim nächsten Einkauf ohne erneute Anmeldung bezahlen. PayPal nennt das den Vault. Er steht nur beim PayPal-Konto zur Verfügung, nicht bei den übrigen Zahlungsarten. Screendesign Paypal Vaulting 20240620 112957 Das Hinterlegen der Zahlungsquelle muss von WEBSALE für Ihren Shop freigeschaltet werden. Ohne diese Freischaltung liefern alle Vault-Tags leere Werte, ohne dass eine Fehlermeldung erscheint.

Einschalten

Ein vorbelegtes SaveInVaultCbDefault bedeutet, dass der Käufer seine Zahlungsquelle speichert, ohne aktiv zugestimmt zu haben. Ob das für Ihren Shop zulässig ist, klären Sie vor dem Einschalten mit Ihrem Datenschutzverantwortlichen.

Im Template

Das Feld heißt im abgesendeten Formular ws_ppc_save_in_vault. Sie brauchen den Namen nur, wenn Sie das Feld per JavaScript ansprechen wollen, im Template setzen Sie ihn immer über das Tag. Ist bereits eine Zahlungsquelle hinterlegt, entfällt der Bezahlbereich. {PPC-UsePayPalCheckout} liefert dann falsch, und Sie zeigen stattdessen die gespeicherte Quelle an.

Die Verwaltungsseite

Der Kunde verwaltet seine hinterlegte Zahlungsquelle auf einer eigenen Seite im Kundenkonto.
Die Seite kennt drei Zustände, die Sie über Klammerungen unterscheiden:
~PPC-DeleteVaultNoConfirm~ löscht die hinterlegte Zahlungsquelle sofort und ohne Rückfrage. Verwenden Sie im Kundenkonto den Weg über ~PPC-DeleteVaultConfirm~, es sei denn, Sie haben eine eigene Rückfrage davorgeschaltet.

Zusammen mit dem Abo-Modul

Wiederkehrende Bestellungen aus dem Abo-Modul können über die hinterlegte Zahlungsquelle abgebucht werden. Dafür muss das Abo auf die Zahlungsart PayPal-Konto festgelegt sein.
Zum Wechseln der hinterlegten Quelle aus dem Abo heraus dient ~WS-OTP3Sub(updatePayPalSubscription)~. Wegweiser: Abo-Modul

Testen

Jede Zahlungsart über PayPal Checkout hat einen eigenen Testmodus, der die Abwicklung in die PayPal-Sandbox umleitet.
Das Umschalten eines Zahlungsart-Testmodus verwirft die laufende Sitzung und damit den Warenkorb. Schalten Sie den Testmodus deshalb vor dem Befüllen des Warenkorbs ein, nicht auf der Bestellübersicht.
Im Sandbox-Betrieb zeigt {PPC-Sandbox} an, dass nicht produktiv abgerechnet wird.
Zum Untersuchen von Fehlern liefern drei Tags die unveränderte Antwort von PayPal: ~PPC-CreateOrderRawResponse~, ~PPC-OrderDetailsRawResponse~ und ~PPC-CaptureAuthorizeRawResponse~. Geben Sie diese Tags nur im Testbetrieb aus, sie enthalten vollständige Zahlungsdaten. Wegweiser: Testmodi des Shops ein- und ausschalten · Referenz: ST-PaymentTest

Hinweismeldungen

Referenz: Abschnitt NotifyMessages-Txt

Verwandte Themen