PayPal Plus Checkout konfigurieren

Achtung: Der PayPalPlus Checkout erfordert der die Pro-Version der Shop-Erweiterung Achtung: Der PayPalPlus Checkout erfordert der den Eintrag der vollen URL in der Site-Konfiguration Ihrer TYPO3 Instanz

PayPal Plus-Account

Zuerst benötigen Sie einen PayPal-Account. Loggen Sie sich damit ein und öffnen Sie https://developer.paypal.com. Hier müssen Sie nun unter dem Menüpunkt My Apps & Credentials eine neue App erstellen. Dabei müssen Sie im ersten Schritt darauf achten, ob Sie einen Live oder Sandbox Account erstellen möchten. Nach dem Erstellen sollten Sie folgende Informationen erhalten haben:

  • (Sandbox) Account: Dies ist eine E-Mail-Adresse.
  • Client ID: Dies ist ein Hashwert, der den Client identifiziert.
  • Secret: Dies ist ebenfalls ein Hashwert. Diesen sollten auf jeden Fall geheim halten!

Zum Testen benötigen Sie einen weiteren Account, welchen Sie unter https://developer.paypal.com/developer/accounts/ anlegen können.

Callback konfigurieren

Auf developer.paypal.com muss innerhalb der App & Credentials Ansicht ein neuer Webhook hinzugefügt werden. Dieser reagiert auf das Event Payment sale completed und bekommt die Callback-URL aus Ihrem TYPO3. Eine Callback-URL könnte wie folgt aussehen.

Um die CallBack-URL zu erzeugen, müssen Sie zunächst eine zusätzliche Seite vom Typ "Im Menü verborgen" an. Platzieren Sie auf der Seite ein Plugin vom Typ "Shop Checkout & Order by mail". Plugin Mode

Rufen Sie nun diese Seite im Frontend auf und kopieren Sie sich die URL. An diese URL hängen Sie nun alle Parameter die Sie im unten genannten Beispiel sehen, ab dem Vorkommen des Fragezeichens an.

Parameter: ?tx_shop_basketorder%5Baction%5D=payPalPlusCallback&tx_shop_basketorder%5Bcontroller%5D=BasketOrder

Komplette URL als Beispiel: https://test9.t3co.de/checkout?tx_shop_basketorder%5Baction%5D=payPalPlusCallback&tx_shop_basketorder%5Bcontroller%5D=BasketOrder

Diese URL tragen Sie nun in Ihrem PayPalPlus Account unter "Webhook URL" ein und erhalten dort nach dem Speichern die Webhook-ID. Die ID muss im TypoScript Konstanten Template eingetragen werden. Die ID ersetzt die Zeichenfolge "XXXx" im nachstehenden Beispiel.

themes.configuration.extension.shop.checkout.payPalPlus.webhookID = XXXX

Mit human readable urls:

routeEnhancers:
  ShopCheckoutPlugin:
    type: Extbase
    limitToPages:
      - 4
    extension: Shop
    plugin: BasketOrder
    routes:
      - routePath: '/pay-pal-plus-callback'
        _controller: 'BasketOrder::payPalPlusCallback'

https://shop.typo3-demos.de/checkout/pay-pal-plus-callback

Achtung:

Wenn Ihre Umgebung durch ein Passwort geschützt ist, kann der Webhook nicht aufgerufen werden. Bitte stellen Sie sicher das der Webhook direkt aufrufbar ist.

Nach der Erstellung des Webhooks wird die Webhook ID angezeigt. Diese muss bei der Konfiguration des Checkouts berücksichtigt werden. (Siehe Abschnitt Checkout Konfiguration)

Checkout Konfiguration

  • active Hier kann der Checkout aktiviert/deaktiviert werden
  • checkoutPid Hier muss die Page-Uid der Checkout-Seite angegeben werden.
  • successPid Hier muss die Page-Uid der Erfolgs-Seite angegeben werden. Dies ist die Seite, auf die man weitergeleitet wird, wenn die Zahlung erfolgreich war.
  • cancelPid Hier muss die Page-Uid der Cancel-Seite angegeben werden. Dies ist die Seite, auf die man weitergeleitet wird, wenn man den Zahlungsprozess abgebrochen hat.
  • service Hier wird die Checkout-Service PHP-Klasse zugewiesen. Diese kann angepasst werden, wenn etwas am Prozess verändert werden muss.
  • sandbox Hier kann die Sandbox zum Testen aktiviert/deaktiviert werden.
  • payPalPlusSuccessRedirectPid Hier muss die Page-Uid der Erfolgs-Seite angegeben werden, auf die der Nutzer nach einer erfolgreichen PayPal Authentifizierung weitergeleitet wird.
  • webhookID Hier muss die Webhook ID des Webhooks angegeben werden, mit dem das Payment sale completed Event verfolgt wird. (Siehe Abschnitt Callback konfigurieren)
  • payPalPlusClientId Hier muss die Client ID des (Sandbox) Accounts eingetragen werden, welche bei PayPal erstellt wurde
  • payPalPlusSecret Hier muss das Secret des (Sandbox) Accounts eingetragen werden, welche bei PayPal erstellt wurde

Debugging

Für den Fall das der Callback-Aufruf nicht funktioniert, können Sie ein Debugging aktivieren. Wie dies funktioniert, können Sie im Abschnitt HowTo/Debugging lesen.