PayPal Checkout konfigurieren

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

PayPal-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.

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.

Beim erfolgreichen Ausführen des Callbacks wird ein Signal dispatched und es kann ein Slot registriert werden.

1 Dazu muss ein Slot erstellt werden:

<?php
namespace YourNameSpace\YourExtension\Slot;

use CodingMs\Shop\Domain\Model\BasketOrder;

class DoSomeThingSlot
{
    public function doSomeThingFunction(BasketOrder $basketOrder)
    {
        /* Do something */
    }
}

2 Dieser Slot muss anschließend in der ext_localconf.php registriert werden:

$signalSlotDispatcher = TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
$signalSlotDispatcher->connect(
    \CodingMs\Shop\Controller\BasketOrderController::class,
    'afterPayPalCallback',
    \YourNameSpace\YourExtension\Slot\DoSomeThingSlot::class,
    'doSomeThingFunction'
);

Checkout Konfiguration

  • active Hier kann der Check-out 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.
  • callbackPid Hier muss die Page-Uid der Callback-Seite angegeben werden. Die Callback-Seite ist eine Seite, die von PayPal asynchron aufgerufen wird, um die Bezahlung zu bestätigen.
  • 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.
  • payPalId Hier muss der (Sandbox) Account Name 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.

Testing

Zum Testen der PayPal Callbacks am besten im https://developer.paypal.com einloggen (hier müssen Sie Ihre echten Zugangsdaten verwenden). Hier müssen Sie unter SANDBOX den IPN Simulator aufrufen.

Im Feld IPN handler URL fügen Sie Ihre Callback-URL ein und wählen dann bei Transaction type den Wert Cart checkout aus. Nun erscheinen unter dem Formular eine vielzahl an Formularfeldern. Hier müssen Sie in dem Feld item_number die Uid Ihrer Basket-Order eintragen, damit der Callback die entsprechende Order wiederfindet.