it-swarm.com.de

IPN vs. PDT in Paypal

Ich habe einige Probleme bei der Auswahl zwischen Paypal's Instant Payment Notification (IPN) und Payment Data Transfer (PDT).

Grundsätzlich kaufen Benutzer ein einmaliges Produkt auf meiner Website, bezahlen mit Paypal und kehren zu meiner Website zurück. Ich verstehe, wie IPN funktioniert, aber ich sehe jetzt, dass ich die verschiedenen Aktionen, die nach einem erfolgreichen Kauf mit PDT ausgeführt werden, möglicherweise leichter auslösen kann, da die Daten dort zurückgegeben werden (und nicht im Gegensatz dazu, dass ein separater Listener benötigt wird). .

Die PDT-Dokumentation von Paypal enthält jedoch die folgende kryptische Zeile: "PDT ist nicht zur Verwendung mit Kreditkarten- oder Express Checkout-Transaktionen bestimmt." ... aber zu dem Thema finde ich nichts weiter.

  1. Sollen Kreditkarten NICHT mit PDT verwendet werden? Ich hätte gerne mehr als einen Satz.

  2. Bedeutet das, dass ein Benutzer ein Paypal-Konto besitzen muss, um bezahlen zu können?

  3. Bedeutet das, dass ich, wenn ich Benutzern erlauben möchte, mit ihren Paypal-Konten UND/oder direkt mit Kreditkarten zu bezahlen, IPN implementieren muss?

Könnte jemand, der dies durchgemacht hat, etwas Licht werfen?

94
Tom

Die APIs für PDT und IPN sind ähnlich. Der Hauptunterschied besteht darin, wenn Sie die Benachrichtigung erhalten. Aus diesem Grund würde ich empfehlen, beide umzusetzen.

  • Mit PDT erhalten Sie die Benachrichtigung sofort und können zusätzliche Bearbeitungen durchführen und dem Benutzer eine Bestätigungsseite anzeigen.
  • Mit dem IPN werden Sie garantiert informiert, dass die Zahlung erhalten wurde, auch wenn der Computer des Benutzers explodiert, bevor er Ihnen die PDT senden kann.

Implementiere beides und hol das Beste aus beiden Welten. Aber wenn Sie nur eine machen, ist IPN die zuverlässigste.

Ein Haken: Wenn Sie beides implementieren, besteht die Möglichkeit, dass Ihre Zahlungen zweimal verarbeitet werden. Achten Sie darauf, dass dies nicht passiert. Die Anwendung, die ich geschrieben habe, behandelt PDT und IPN fast identisch (der Backend-Teil ist derselbe), und dieser Code erhält eine Sperre für jeden Web-Benutzer in der Datenbank. Wenn also derselbe Benutzer versucht, die gleiche Zahlung mehrmals zu übermitteln, ist er identisch kann nur einmal verarbeitet werden. Nach der Verarbeitung wird das Ergebnis dieses Prozesses für nachfolgende Verarbeitungsversuche erneut verwendet.

Edit Eine weitere Sache: IPN enthält mehr Informationen als PDT. Es gibt viele verschiedene Nachrichten, die Sie von IPN erhalten können, wie z. B. Rücklastbenachrichtigung usw., und Sie sollten sie daher wirklich implementieren.


Das PDT-System von Paypal sendet Auftragsbestätigungen an Händlerseiten, die Paypal Payments Standard verwenden, und lässt diese Informationen authentifizieren. Diese Sites können diese Daten dann lokal auf einer Seite "Bestellbestätigung" anzeigen.

Wann ist PDT zu verwenden?

IPN bietet die gleichen Funktionen wie oben beschrieben. Wann sollten Sie PDT statt IPN wählen?

Mit PDT wird Ihre Site sofort benachrichtigt, wenn ein Kunde die Zahlung abgeschlossen hat. Bei IPN besteht jedoch eine erhebliche Verzögerung zwischen dem Zeitpunkt, zu dem ein Kunde die Zahlung abgeschlossen hat, und dem Zeitpunkt, an dem Ihre Site über dieses Ereignis benachrichtigt wird.

Verwenden Sie also PDT, wenn Ihre Site eine Funktion enthält, die eine sofortige Zahlungsbenachrichtigung erfordert.

Betrachten Sie beispielsweise einen digitalen Musikladen. Mit PDT können Kunden ihre Einkäufe sofort herunterladen, da PDT sofort Auftragsbestätigungen sendet. Mit IPN ist eine solche sofortige Auftragserfüllung nicht möglich.

Vorteile von IPN

Die PDT hat eine große Schwäche: Sie sendet einmal und einmalig Auftragsbestätigungen. Wenn PDT eine Bestätigung sendet, muss Ihre Site ausgeführt werden. Andernfalls wird die Nachricht niemals empfangen.

Im Gegensatz dazu ist bei IPN die Zustellung von Auftragsbestätigungen praktisch garantiert, da IPN eine Bestätigung sendet, bis Ihr Standort den Erhalt bestätigt. Aus diesem Grund empfiehlt Paypal die Implementierung von IPN anstelle von PDT.

Ein weiterer Vorteil von IPN ist, dass es viele Arten von Benachrichtigungen sendet, während PDT nur Bestellbestätigungen sendet. So kann Ihre Site mithilfe von IPN beispielsweise Rückbelastungsbenachrichtigungen sowie Auftragsbestätigungen erhalten. Hinweis: Wenn Ihre Site sofort über Zahlungen benachrichtigt werden muss, können Sie sowohl IPN als auch PDT implementieren. In diesem Fall erhält Ihre Website jedoch zwei Auftragsbestätigungen für jeden Verkauf. Daher müssen Sie nur mit einer Kopie einer Bestätigungsnachricht Maßnahmen ergreifen (z. B. ein Produkt versenden).

Dokumentation hier

Zu 1. PDT ist zur Verwendung mit der Funktion "Automatische Rückgabe für Website-Zahlungen" vorgesehen. Automatische Rückgabe an die PDT-Site, nachdem das Geld an den Verkäufer gezahlt wurde. Leider ist es nicht möglich, diese Funktion zusammen mit dem optionalen PayPal-Konto zu verwenden, das zur Aktivierung der Kreditkartenzahlung verwendet wird. Hier ist ein Hinweis von Paypal: 'Wenn Sie Auto Return aktiviert haben und das Paypal-Konto optional für neue Benutzer aktiviert haben, wird ein neuer Benutzer nicht automatisch zu Ihrer Website zurückgeleitet, sondern erhält die Option zurückgeben.'. Der Benutzer hat die Möglichkeit, zu Ihrer Website zurückzukehren (PDT-Schritt) oder auf der Paypal-Site zu bleiben. Um es zusammenzufassen, wenn Sie mit Kreditkarte zahlen, kann der Benutzer den PDT-Schritt überspringen, wenn der Benutzer nicht auf "Zurück zum Store-Link" klickt.

Zu 2. Es liegt an Ihnen, welche Zahlungsoptionen Sie zulassen möchten. Wenn Sie die Zahlung ohne Paypal-Konto zulassen möchten, können Sie Account Optional aktivieren. Wenn Sie nur Benutzern mit Paypal-Konten erlauben möchten, deaktivieren Sie diese Funktion. Möglicherweise gibt es weitere Optionen.

Zu 3. In Ihrem Fall müssen Sie nach dem erfolgreichen Kauf eine Aktion auslösen. Ein empfohlener Weg wäre die Implementierung von IPN. PDT funktioniert nicht in allen Fällen und garantiert keine Nachrichtenübermittlung. Hier ist ein Link zum Dokument, das das Thema PDT vs. IPN behandelt.

0
jan salawa

Dies ist eine alte Frage, aber meine einfache Antwort wäre: Warum nicht sowohl PDT als auch IPN verwenden? Sie funktionieren gut für Kartentransaktionen. 

PDT kann den unmittelbaren Transaktionsstatus für Ihre Website bereitstellen, auf dem Sie schnell den Zahlungserfolgs- oder Fehlerstatus überprüfen und dem Benutzer die entsprechende Meldung anzeigen können.

In der Zwischenzeit können Sie die vollständige Bestätigung von IPN im Hintergrund abwarten. Nach dem Erhalt können Sie Ihre Datenbank weiter aktualisieren und die Bestellung bearbeiten.

Sie können dieser Schritt-für-Schritt-Anleitung folgen, die ich für sehr klar und hilfreich halte - und sie ist auch 2018 gültig. 

https://www.codexworld.com/Paypal-standard-payment-gateway-integration-php/

0
Sol