Korrekte PayPal Instant Payment Notification (IPN) Settings für sofortige Zahlungsbestätigungen bei Zahlung an WooCommerce

  • 0

Korrekte PayPal Instant Payment Notification (IPN) Settings für sofortige Zahlungsbestätigungen bei Zahlung an WooCommerce

PayPal und WooCommerce kommuizieren zur automatisierten Auftragsbearbeitung über Instant Payment Notification (IPN)

Sollte es hierbei gehäuft zu Problemen kommen, die in WooCommerce als “Stornierung” angezeigt werden, wobei der Kunde gar nicht storniert hat, muss an den WooCommerce und PayPal Einstellungen ein wenig geschraubt werden.

Erhält man als Shop-Betreiber eine Email von PayPal mit folgenden Fehler-Meldungen:

Bitte überprüfen Sie den Server, der für sofortige Zahlungsbestätigungen von PayPal zuständig ist. Sofortige Zahlungsbestätigungen an den/die folgende(n) URL(s) sind fehlgeschlagen:

http://www.example.org/wc-api/WC_Gateway_Paypal/

Wenn Sie diese URL nicht erkennen, nutzen Sie vielleicht einen Serviceprovider, der die sofortige Zahlungsbestätigung in Ihrem Namen verwendet. Bitte wenden Sie sich mit den oben genannten Informationen an Ihren Serviceprovider. Wenn dieses Problem weiterhin besteht, könnten die sofortigen Zahlungsbestätigungen für Ihr Konto deaktiviert werden.

Wir bedanken uns für die rasche Erledigung dieser Angelegenheit.

dann sollte man folgende Einstellungen ausprobieren:

Ändern der PayPal Einstellungen

Unter www.paypal.com mit den Login Daten (die man auch beim Zahlen auf Ebay etc. verwendet) anmelden und oben im Menü auf Übersicht klicken

paypal account menu

Dann auf der Übersichts Seite auf der linken Seite unter Verkaufen mit PayPal auf Verkäufereinstellungen

paypal konto verkaufen mit paypal

In der folgenden Übersicht muss unter folgenden Punkten was geändert werden: Website-Einstellungen und Benachrichtigungen über Sofortzahlungen

paypal konto verkaeufereinstellungen uebersicht

Nötige Änderungen unter Website-Einstellungen bei PayPal

In der Übersichts Seite einfach neben Website-Einstellungen – Kunden nach der Zahlung mit PayPal auf meine Website zurückleiten auf Aktualisieren klicken.

Auf der Seite Website-Zahlungsoptionen unter dem Absatz Automatische Rückleitung für Website-Zahlungslösungen die Auswahl auf

Automatische Rückleitung:Aktiviert

setzen.

Darunter bei Rückleitungs-URL muss eine URL eingegeben werden, die für die Rückleitung des Kunden nach erfolgter Zahlung verwendet werden soll. Diese URL muss nach PayPal bestimmten Kriterien entsprechen, meist sollten aber die Default Settings von WooCommerce reichen, so dass die hier eingegebene URL garnicht aufgerufen wird. Sonst einfach die Shop Adresse eintragen oder eine spezielle “Danke für Ihren Einkauf” Seite, wo allgemeine Infos draufstehen (siehe unten)

Anforderungen an die Rückleitungs-URL: Für die Einrichtung der Funktion Automatische Rückleitung müssen folgende Anforderungen erfüllt werden:

  • Den Nutzungsbedingungen zufolge müssen Sie auf der Seite, die durch die Rückleitungs-URL angezeigt wird, einen Hinweis angeben, der den Käufer wissen lässt, dass die Zahlung erfolgt ist und die Transaktion abgeschlossen wurde.
  • Sie müssen auf der Seite, die durch die Rückleitungs-URL angezeigt wird, einen Hinweis angeben, der den Käufer wissen lässt, dass ihm die Transaktionsdetails per E-Mail zugesendet werden.
  • Beispiel: Danke für Ihre Zahlung. Ihre Transaktion wurde abgeschlossen und Sie erhalten per E-Mail eine Bestätigung für Ihren Kauf. Sie können sich unter www.paypal.de in Ihr Konto einloggen, um die Transaktionsdetails anzuzeigen.

Die eigentlich wichtige Änderung auf dieser Seite Website-Zahlungsoptionen ist ohne diese Rückleitungs URL nämlich nicht zu machen, und zwar unter

Übertragung der Zahlungsdaten (optional)

ebenfalls das Häkchen bei Aktiviert machen. Durch Übertragung der Zahlungsdaten erhält WooCommerce eine Benachrichtigung über erfolgreich getätigte Zahlungen, während sie erfolgen. Die Übertragung der Zahlungsdaten ist abhängig von der Systemkonfiguration und der Rückleitungs-URL. Beachten Sie bitte, dass Sie bei der Übertragung von Zahlungsdaten “Automatische Rückleitung” aktivieren müssen.

paypal konto webseiten-zahlungsoptionen

Wenn man anschließend auf der Seite unten auf Speichern klickt, findet man bei erneutem Aufruf der PayPal Seite Übersicht -> Verkäufer Einstellungen -> Website Einstellung unter dem Absatz ein Identity Token, einen ziemlich langen Alphanumerischen Schlüssel von etwas über 50 Zeichen Länge. Dieses Identitäts-Token braucht man später noch für anzupassend Einstellungen im WooCommerce.

paypal konto webseiten-zahlungsoptionen identitaets-token

Jetzt muss unter Überblick -> Verkäufer-Einstellungen noch unter dem Punkt Benachrichtigungen über Sofortzahlungen etwas eingestellt werden

Benachrichtigungen über Sofortzahlungen bei PayPal

Unter Einstellungen für sofortige Zahlungsbestätigungen (IPN) bearbeiten sollte man noch eine hierfür vorgesehene funktionierende URL des WooCommerce Shop eingeben. Standardmäßig sollte eigentlich die Default Einstellung der WooCommerce API, nämlich

http://www.example.org/wc-api/WC_Gateway_Paypal/
funktionieren, aber falls hier besagte Stornierungs-Fehler auftreten, sollte man sicherheitshalber auf eine weitere funktionierende WooCommerce URL bzw. einen Query Parameter unter WordPress ausweichen. Stattdessen hier bitte:
http://www.example.org?wc-api=WC_Gateway_Paypal
eingeben.
PayPal sendet sofortige Zahlungsbestätigungen an die URL, die man hier angegeben hat. Zur Erklärung:

Um sofortige Zahlungsbestätigungen zu erhalten, geben Sie unten die Benachrichtigungs-URL ein, und wählen Sie Sofortige Zahlungsbestätigungen erhalten aus. Um den Erhalt von sofortigen Zahlungsbestätigungen vorübergehend zu deaktivieren, wählen Sie unten Keine sofortigen Zahlungsbestätigungen erhalten aus. Bei PayPal werden weiterhin sofortige Zahlungsbestätigungen erzeugt und gespeichert, bis Sie wieder Sofortige Zahlungsbestätigungen erhalten auswählen oder die Funktion “Sofortige Zahlungsbestätigung (IPN)” deaktivieren.

Änderungen an den WooCommerce Settings

Unter WooCommerce -> Einstellungen auf den Registerreiter Kasse klicken

woocommerce einstellungen kasse

und dann unter dem Untermenüpunkt PayPal runterscrollen bis Erweiterte Optionen, Hier bei PayPal Identitäts-Token das vorhin auf PayPal unter Übersicht -> Verkäufer Einstellungen -> Website Einstellungen generierte Identitäts-Token eintragen

woocommerce einstellungen paypal identitaets-token

Testen der WooCommerce und PayPal Einstellungen

Prinzipiell kann man all das auch mit einem SandBox PayPal Account durchtesten. Was aber, wenn hier alles korrekt funktioniert, nur in der Realität mit echten PayPal Konten nicht? Oder nur sporadisch Stornierungs-Fehler auftreten.

Zum Testen der PayPal und WooCommerce Settings mit scharfen PayPal Konten kann man aber z.B. einen Test-Artikel im WooCommerce anlegen, der nur ein paar Cent kostet und diesen als virtuellen Artikel (Ohne Versndkosten) deklariert.

woocommerce test artikel anlegen

Hierbei die Sichtbarkeit von Öffentlich auch Privat setzen, wenn der Stornierungs-Fehler bei einem Shop im laufenden Betrieb auftritt. Anschließend Veröffentlichen / Aktualisieren. Anschließend eine Bestellung des Test-Artikels im WooCommerce Shop durchführen und an der Kasse per PayPal bezahlen. Hier empfiehlt es sich für Sender (Kunde) und Empfänger (Shopbetreiber) auch zwei reale PayPal Konten zu benutzen, da man sonst von PayPal darauf hingewiesen wird, dass beide Konten identisch sind und den Test nicht durchführen kann.

Anschließend sollte der Bestellprozess wie vorgesehen ablaufen, der Kunde erhält 2  Emails, die erste als Bestellbestätigung, die zweite, dass die Zahlung eingegangen ist. Im DashBoard sollte unter WooCommerce -> Bestellungen die soeben ausgeführte Test-Bestellung inzwischen utomatisch als bezahlt markiert sein.

woocommerce bestellungen testbestellung bezahlt

Cache Setting unter WordPress

 Zusätzlich können noch bei manchen Cache Plugins wie W3 Total die Settings anzupassen sein, damit die Query oder die URL nicht eine falsche Seite oder HTTP Code zurückliefert. Am besten den Cache so einstellen, dass die Seiten bzw. URLs gar nicht gecached werden, bzw. nicht eine gecachte Seite für verschiedene Queries bzw. ohne Query ausgeliefert werden. BEi W3 Total Cache, hierzu die Settings unter Performance -> Page Cache -> General -> Cache URIs with query string variables und Advanced -> Accepted query strings: sowie Advanced -> Cache exception list: überprüfen. Bewährt haben sich hier die Einstellungen:
  • Cache URIs with query string variables auswählen (hierfür muss unter Performance -> General Settings aber Page Cache Enabled auf Disk:Basic gesetzt sein
  • Accepted query strings: Hier ?wc-api=WC_Gateway_Paypal/ eintragenw3-total-cache-accepted-query-strings
  • Cache exception list: /wc-api/WC_Gateway_Paypal/ hizufügenw3-total-cache-cache-exception-list

 Wichtiger Hinweis zu Umstellung von PayPal Instant Payment Notification (IPN) auf https

Nach einer Ankündigung von PayPal wird dieses Verfahren ab dem 30. Juni 2017 aus Sicherheitsgründen auf https umgestellt. Sollte es ab diesem Zeitpunkt zu falsch-positive Stornierungs-Fehlern bei PayPal Zahlungen von Bestellungen eines WooCommerce basierten Shops bei der Verwndung von Instant Payment Notification (IPN) kommen, sollte man die Einstellungen überprüfen, ggf. ein Update von WooCommerce erwägen oder evtl. Anpassungen im Source Code vornehmen. Diese Ankündigung deuten wir nur so, dass PayPal nur noch ausschließlich eingehende Verbindungen per https akzeptieren wird. Es ist nicht davon auszugehen, dass auch die IPN ausschließlich an Server mit SSL Zertifikat und https Verbindung gehen, also Shop-Betreiber zwingenderweise auf https umstellen müssten – auch wenn dies empfehlenswert ist

 

Weitere Infos zu PayPal Instant Payment Notification (IPN) Service

https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSimulator/

Mit * gekennzeichnete Felder sind Pflichtangaben