Mini-Shop - PaypalCheckout

Im Mini-Shop wird standardmäßig die Bezahlfunktion PayPalCheckout ausgeliefert.

Schritt1 - Konfiguration

Um die Bezahlart „PayPalCheckout“ zu aktivieren, öffnen Sie die Konfiguration Ihrer Shop-Installation und setzen die Einstellung „PayPalCheckout anbieten“ auf „Ja“.

Tragen Sie anschließend die Zugangsdaten aus Ihrem Händler-Account ein.

Sollte die Einstellung nicht vorhanden sein, wechseln Sie in den Quelltext und ergänzen Sie innerhalb des wConf -Elements den entsprechenden Konfigurationsabschnitt.

Ergänzen Sie die Mail-Strings für:

Bestellbestätigung für den Kunden Inhalt

Auszug Bestellbetätigung

...
Angaben zur Bezahlung
=====================
[!--extIfPayment_paypalCheckout--]Sie haben die Zahlung über PapalCheckout angewiesen.[!--extIfPayment_paypalCheckout--]
....
Bestell E-Mail Inhalt

Auszug Bestellbetätigung

...
Angaben zur Bezahlung
=====================
[!--extIfPayment_paypalCheckout--]
Der Kunde hat die Bezahlung per PaypalCheckout gewählt. 
Folgende Meldung gibt Paypal über den Stand der Zahlung zurück:

[!--payment_paypalCheckout_result--]
PaypalCheckout Bestell-Id: [!--payment_paypalCheckout_orderID--]

[!--extIfPayment_paypalCheckout--]
....

Schritt 2 - Erstellen eines Test-Accounts

Um die Schnittstelle zu testen, setzen Sie die Einstellung „Testmodus über Sandbox“ auf „Ja“.

  1. Erstellen Sie einen Test-Account in der PayPal-Entwicklerumgebung.

  2. Wechseln Sie nach dem Login in das Dashboard.

  3. Lassen Sie sich unter „Testing Tools“ die Sandbox-Accounts anzeigen.

Dabei werden automatisch erstellt:

  • ein Test-Händler-Account → diese Zugangsdaten tragen Sie in der Shop-Konfiguration ein

  • ein Test-Kunden-Account → diese Daten verwenden Sie beim Testkauf

Schritt 3 - Bestellung anpassen

Der PayPal-Code kann über einen bedingten Container komfortabel in die Bestellseite ( bestellung.php ) eingebunden werden.

PayPal erstellt die Session in einem Popup-Fenster.
Nach erfolgreich veranlasster Bezahlung (onApprove):

  1. wird das Formular automatisch abgesendet

  2. erfolgt serverseitig die Prüfung des Bezahlstatus

Der ermittelte Bezahlstatus wird anschließend in der E-Mail an den Händler ausgegeben.

Einbinden des PaypalCheckout - Buttons

Fügen Sie – sofern noch nicht vorhanden – unterhalb des Bestellformulars einen bedingten Container für Objektdaten ein.

Der Container wird nur bei Auswahl der Bezahlart paypalCheckout angezeigt.

Mini-Shop - bedingter Container Paypal Checkout

Innerhalb dieses Containers fügen Sie ein PHP-Quelltextelement ein und schließen dieses vom Seitencache aus.

Aufruf des Buttons für paypalCheckout

print wMyShop::getPaymentClientString('paypalCheckout');

Serverseitige Prüfung des Bezahlstatus

Die serverseitige Prüfung erfolgt nach der Validierung der Bestelldaten und vor dem Versand der Bestell-E-Mails.

Auszug aus dem "Skript nach dem Absenden des Formulares"

include_once($_SERVER['DOCUMENT_ROOT'].$this->getVar('wGlobalProjectPath').'/wGlobal/scripts/php/wMyShop.php');

...
$shopConfData = wMyShop::prepareShopData($shopConfPath);
$customerData = wMyShop::prepareCustomerData();
...
if($this->validate()){

   .....
   /*
     HINWEIS
     Im aktuellen Standard führen wir die unten genannte genannte Syntax 
     in der Funktion wMyShop::prepareOrderMailData aus. 
     Sollte Ihre Syntax bereits diese Funktion aufrufen 
     können Sie auf u.g. Syntax verzichten
   */

   /* Bezahlart paypalCheckout - prüfung Eingang der Bezahlung */
    if($payment == 'paypalCheckout'){
      $shopOrderId = $customerData['orderID'];
      $paymentData = $customerData[$shopOrderId.'_'.$payment.'_paymentData'] ?? array(); 
      $mailData['payment_paypalCheckout_orderID']   = $paymentData['orderID'];  
      $result = wMyShop::getPaymentStatus($payment, $shopOrderId, $paymentData, $paymentData['strict'] ?? false);
      if(!$result) $resultText = 'shop_payment_'.$payment.'_result_failed_errorText';
      else $resultText = 'shop_payment_'.$payment.'_result_succeeded';
      $mailData['payment_paypalCheckout_result'] = wMyShop::getTexts($resultText);
      unset($mailData[$shopOrderId.'_'.$payment.'_paymentData']);
  }

  /* Vorbereiten des Mail-Strings für die Bestellung */
  ..... 

Schritt 4 - Shop-Texte

Öffnen Sie die Datei shop.wTexts.php und ergänzen Sie – sofern noch nicht vorhanden – folgende Texte:

Auszug shop.wTexts.php

<wTexts>
....
  <text key="shop_payment_paypalCheckout_title">Sie werden direkt an Ihr PayPal-Konto weitergeleitet.</text>
  <text key="shop_payment_paypalCheckout_error_noOrderdata">Es konnten keine Bezahldaten zu der Bestellung gefunden werden. Bitte prüfen Sie Ihre Paypal-Zugangdaten.</text>
  <text key="shop_payment_paypalCheckout_error_ordernotcompleted">Die Bestellung wurde nicht beendet. </text>
  <text key="shop_payment_paypalCheckout_error_paymentdoesnotmatch">Die Bestellung wurde nicht vollständig oder mi einer anderen Wähung bezahlt.</text>
  <text key="shop_payment_paypalCheckout_error_paymentnotconfirmed">Der Eingang der Bezahlung wurde noch nicht bestätigt. </text>
  <text key="shop_payment_paypalCheckout_error_unexpected">Es ist ein unerwarterer Fehler aufgetreten. Bitte prüfen Sie den Zahlungseingang. </text>
  <text key="shop_payment_paypalCheckout_error_accesstoken_unvalid">Fehler bei der Verbindung mit Paypal (no valid accesstoken). Bitte prüfen Sie Ihre Zugangsdaten in der Shop-Konfiguration.</text>
  <text key="shop_payment_paypalCheckout_error_no_OrderID">Die von Paypal generierte Bestell-Id (orderId) wurde nicht gefunden. </text>
  <text key="shop_payment_paypalCheckout_result_succeeded">Die Bezahlung wurde über Paypal vorgenommen.</text>
...
</wTexts>

Schritt 5 - Testen

Nach erfolgreichem Test des Bestellprozesses mit dem Test-Account:

  1. Deaktivieren Sie den Testmodus in der Konfiguration.

  2. Prüfen Sie den vollständigen Bestellablauf zusätzlich im Live-Modus.

Für die Installation der Schnittstelle müssen folgende Dateien auf dem aktuellsten Stand sein: 

/[IHR-INHALTS-PROJEKT] /shop/scripts/cart.php
/[IHR-LAYOUT-PROJEKT] /wGlobal/scripts/php/wMyShop.php
/[IHR-LAYOUT-PROJEKT] /wGlobal/scripts/php/wShop.php  

Sollten Sie keine individuellen Anpassungen vorgenommen haben, empfehlen wir außerdem das Update der Bestelldatei.

/[IHR-INHALTS-PROJEKT] /shop/bestellung.php


FAQs