Modul PayPal PLUS¶
Das kostenpflichtige Modul PayPal PLUS bindet PayPal über die REST-Schnittstelle an und erweitert die Zahlungsart um:
- Käufer-Login mit PayPal Express (Button „Direkt zu PayPal“ im Warenkorb)
- die Zahlungsauswahl von PayPal (PayPal, Kreditkarte, Lastschrift u. a. in einem von PayPal gestalteten Fenster)
- Autorisierung der Zahlung vor dem Bestellabschluss
- Zahlungsbenachrichtigung über WebHooks
- Stornierung von Zahlungen mit Rücküberweisung
Für die reine Zahlung über PayPal genügt das Modul PayPal.
Verfügbarkeit bei PayPal
Die Zahlungsauswahl von PayPal muss PayPal für Ihr Konto freigeschaltet haben. Klären Sie mit PayPal, ob sie für Ihr Konto angeboten wird.
Voraussetzungen¶
- Ein PayPal-Geschäftskonto mit Zugang zum PayPal Developer Dashboard.
- Ein SSL-Zertifikat: PayPal ruft den WebHook immer über HTTPS auf.
- Eine App im Developer Dashboard mit den benötigten Funktionen. Für jede App gibt es Live- und Sandbox-Zugangsdaten (Client ID und Secret).
App bei PayPal anlegen¶
Im Developer Dashboard sehen Sie unter Apps & Credentials Ihre Apps. Mit Create App legen Sie eine neue an. In der App finden Sie die Client ID und können sich das Secret anzeigen lassen. Achten Sie darauf, für den Live-Betrieb die Daten des Live-Modus zu verwenden (Umschalter oben rechts).
Für die Bezahlung muss bei der App „Accept payments“ aktiviert sein.
Einrichten¶
Öffnen Sie wpShopGermany → Konfiguration → Module und aktivieren Sie in der Gruppe „Zahlungsarten“ das Modul PayPal PLUS.
Zugang¶
| Einstellung | Beschreibung |
|---|---|
| API Version | V1 oder V2 (Standard). Beim Wechsel von V1 auf V2 sollten Sie im Developer Dashboard eine neue App anlegen. |
| Client ID, Secret | Live-Zugangsdaten der App. |
| Sandbox | Testbetrieb. Dann erscheinen die Felder Client ID (Sandbox) und Secret (Sandbox) für die Sandbox-Zugangsdaten. |
| Währungscode (Standard: EUR) | Währung der Zahlung. |
WebHook¶
| Einstellung | Beschreibung |
|---|---|
| WebHook URL | Wird vom Modul vorgegeben. Über diese Adresse meldet PayPal Zahlungen an den Shop. |
| Beim Speichern versuchen, den Webhook anzumelden. | Legt den WebHook beim Speichern bei PayPal an, sofern die Zugangsdaten hinterlegt sind und der WebHook noch nicht existiert. |
| WebHook Anfragen protokollieren | Schreibt alle WebHook-Anfragen in eine Protokolldatei. Geben Sie den absoluten Pfad an und achten Sie auf Schreibrechte. |
Möchten Sie den WebHook selbst anlegen, rufen Sie bei der App im Developer Dashboard „Add Webhook“ auf, tragen die WebHook URL ein und aktivieren die Ereignisse „Payment sale completed“ und „Payment capture completed“.
Gebühr und Stornierung¶
| Einstellung | Beschreibung |
|---|---|
| Gebühr/Rabatt | Gebühr oder Rabatt für diese Zahlungsart, als Betrag oder in Prozent. |
| Mehrwertsteuersatz | Mehrwertsteuersatz für eine anfallende Gebühr. |
| Stornierung bei Statuswechsel | Über Bearbeiten wählen Sie die Bestellzustände, bei denen die Zahlung automatisch über PayPal zurückerstattet wird. Standard: „zurückgezahlt“ und „storniert“. |
Funktionen¶
| Einstellung | Beschreibung |
|---|---|
| PayPal für neue Bestellungen erlauben | Nur wenn aktiv, steht PayPal für neue Bestellungen zur Auswahl. |
| PayPal Plus aktivieren | Schaltet die Zahlungsauswahl von PayPal ein. |
| Zahlungsauswahl im Warenkorb | Erscheint nur, wenn „PayPal Plus aktivieren“ angehakt ist. Die Zahlungsauswahl von PayPal erscheint bereits im Warenkorb oberhalb der Buttons. Ihre Gestaltung bestimmt PayPal. |
| PayPal Express aktivieren (Button im Warenkorb) | Zeigt im Warenkorb den Button „Direkt zu PayPal“. |
| SSL für ReturnURL erzwingen | Erzwingt HTTPS für die Return URL, zum Beispiel wenn ein Plugin die Seite auf HTTPS umleitet, die URL aber ohne HTTPS angezeigt wird. |
| Return URL | Wird vom Modul vorgegeben. Tragen Sie sie für PayPal Express bei PayPal ein (siehe unten). Sie muss exakt übereinstimmen. |
| Zahlung sofort starten | Nur ohne die Zahlungsauswahl von PayPal („PayPal Plus aktivieren“ aus): Der Kunde wird nach dem Bestellabschluss automatisch zu PayPal weitergeleitet. |
| Warenkorbdetails übertragen | Überträgt die einzelnen Positionen an PayPal. Dafür brauchen alle Produkte eine Artikelnummer, sonst weist die Systemprüfung darauf hin. |
| Zahlung vor Bestellabschluss autorisieren | Nur mit API Version V2. Der Button „zahlungspflichtig bestellen“ lautet bei PayPal „Mit PayPal bezahlen“. Der Kunde autorisiert die Zahlung bei PayPal und schließt die Bestellung danach zahlungspflichtig ab, erst dann wird der Betrag eingezogen. Ändert sich die Bestellung, muss er erneut autorisieren. |
Darstellung bei PayPal¶
| Einstellung | Beschreibung |
|---|---|
| Bezeichnung im PayPal Zahlungsinterface | Name des Shops auf der Bezahlseite, max. 127 Zeichen. Standard: %shopinfo_name%. |
| URL für ein Logo im PayPal Zahlungsinterface | Logo auf der Bezahlseite (GIF, PNG oder JPG, max. 190 × 60 Pixel). |
| Sprache im PayPal Zahlungsinterface | Deutsch, Englisch oder Französisch. |
| Bezeichnung | Name der Zahlungsart im Frontend und in den E-Mails. Standard: „PayPal“. |
| Betreff für Zahlung | Beschreibung der Zahlung bei PayPal, Platzhalter sind möglich. Standard: O%order_id% - K%kunde_id%. |
| Hinweistext | Erklärung, die der Kunde bei der Auswahl der Zahlungsart sieht. |
Login mit PayPal Express¶
Für PayPal Express muss bei der App im Developer Dashboard „Login with PayPal“ aktiviert sein. Die App braucht Zugriff auf „Personal Information“, „Address Information“ und „Account Information“. Tragen Sie dort ein:
- Return URL = Return URL aus den Moduleinstellungen
- Privacy Policy URL = Adresse Ihrer Datenschutzerklärung
- User agreement URL = Adresse Ihrer AGB
Im Warenkorb erscheint dann der Button „Direkt zu PayPal“. Der Kunde meldet sich bei PayPal an und gelangt danach zurück in den Shop, bei vollständigen Angaben direkt zur Bestellzusammenfassung. Noch fehlende Angaben zur Anschrift übernimmt der Shop aus PayPal.
Auch ohne diesen Button lässt sich der Bestellablauf verkürzen: Sind Zahlungs- und Versandart bereits im Warenkorb ausgewählt, überspringt der Shop mit der Option „Auswahl der Zahlung/Versandart überspringen wenn möglich“ unter wpShopGermany → Konfiguration → Einstellungen → Allgemein den Auswahlschritt.
Integration im Bestellablauf¶
Der Kunde legt Produkte in den Warenkorb und gibt seine Kundendaten ein. Auf der Auswahlseite für Versand- und Zahlungsart (mit „Zahlungsauswahl im Warenkorb“ schon im Warenkorb) zeigt das Modul die Zahlungsauswahl von PayPal mit den bei PayPal freigeschalteten Zahlarten, zum Beispiel:
- PayPal
- Kreditkarte (Visa, Mastercard, American Express)
- Lastschrift
Unter den Zahlarten von PayPal stehen in derselben Liste die übrigen Zahlungsarten des Shops, etwa Vorkasse oder Rechnung.
Nach der Auswahl wird der Kunde zu PayPal geleitet, autorisiert die Zahlung und kehrt zur Bestellübersicht zurück. Ist „Auswahl der Zahlung/Versandart überspringen wenn möglich“ aktiv und sind Versand- und Zahlungsart schon gewählt, geht es nach den Kundendaten direkt zu PayPal. Nach dem Bestellabschluss gelangt er auf die Abschlussseite. Wurde die Zahlung zuvor nicht autorisiert, erscheint dort ein Link zu PayPal.
Ohne die Zahlungsauswahl von PayPal wählt der Kunde PayPal als normale Zahlungsart und bezahlt nach dem Bestellabschluss.
Im SmartCheckout steht PayPal als normale Zahlungsart zur Verfügung. Die Zahlungsauswahl von PayPal und der Button „Direkt zu PayPal“ erscheinen dort nicht. Mit „Zahlung vor Bestellabschluss autorisieren“ lautet der Bestellbutton „Mit PayPal bezahlen“.
Vollständige Anschrift
Der Kunde muss im Bestellprozess seine komplette Anschrift (Straße, Hausnummer, PLZ, Ort) angeben. Vor der Weiterleitung zu PayPal prüft der Shop, ob die Angaben vorhanden sind. Die Postleitzahl sollte unter Kundendaten ein Pflichtfeld sein.
Zahlvariante ist nicht gleich Zahlvariante¶
Die Zahlarten in der Zahlungsauswahl von PayPal kommen von PayPal. Unabhängig davon legen Sie mit dem Modul Zahlvarianten eigene Zahlungsarten an. Diese haben keine Verbindung zu den bei PayPal freigeschalteten Zahlarten.
Stornierung von Zahlungen¶
Zahlungen lassen sich automatisch zurückerstatten: Wechselt eine mit PayPal bezahlte Bestellung in einen der unter Stornierung bei Statuswechsel gewählten Zustände, erstattet der Shop den Betrag über PayPal. Das Ergebnis steht im Bestellprotokoll.
Hinweise¶
- Das Umschalten zwischen Live und Sandbox erfolgt oben rechts im Developer Dashboard und wird leicht übersehen. Beim Umschalten ändern sich Client ID und Secret. Verwenden Sie Sandbox-Zugangsdaten, aktivieren Sie in den Moduleinstellungen Sandbox.
- Ändern Sie die Einstellungen einer App (zum Beispiel für PayPal Express), werden sie bei PayPal mitunter nicht übernommen. Dann hilft es, die App neu anzulegen.
- WebHooks lassen sich nicht mit dem Simulator von PayPal testen, da keine Zuordnung zu Bestellungen möglich ist. Verwenden Sie die Sandbox.
- Ist PayPal PLUS aktiv, schränkt es die Module Kreditkarte und Bankeinzug ein, wenn diese parallel aktiv sind.
- Lehnt PayPal die Zugangsdaten ab oder ist PayPal nicht erreichbar, zeigt der Checkout die übrigen Zahlungsarten ohne die Zahlungsauswahl von PayPal. PayPal Express leitet mit einem Hinweis in den Warenkorb zurück, die Bestellabschlussseite bittet den Kunden, sich an Sie zu wenden. Der Fehler steht im PHP-Fehlerprotokoll (Zeilen „wpsg PayPal“).
Rechnungsdaten und Telefonnummer¶
Übermittelt PayPal keine Rechnungsanschrift an Ihren Shop, muss PayPal die Option „Customer Billing Address“ („Rechnungsdaten übertragen“) für Ihr Konto freischalten. Wenden Sie sich dazu an den Kundenservice von PayPal, am besten telefonisch:
- Rufen Sie die Kontaktseite von PayPal auf.
- Wählen Sie die Möglichkeit, PayPal anzurufen, und melden Sie sich mit Ihrem PayPal-Konto an.
- Notieren Sie den angezeigten Code und nennen Sie ihn im Gespräch. So findet der Mitarbeiter Ihr Konto sofort.
Übermittelt PayPal keine Telefonnummern, aktivieren Sie im PayPal-Geschäftskonto unter „Kontoeinstellungen“ → „Website-Zahlungslösungen“ → „Website-Einstellungen“ → „aktualisieren“ die Option „Kontakttelefonnummer“. Viele Kunden geben ungern persönliche Daten an. Machen Sie das Feld daher nur zur Pflicht, wenn es nötig ist.










