IPN vs PDT in Paypal


99

Ich habe Probleme bei der Auswahl zwischen IPP (Instant Payment Notification) und PDT (Payment Data Transfer) von PayPal.

Grundsätzlich kaufen Benutzer ein einmaliges Produkt auf meiner Website, zahlen über PayPal und kehren zu meiner Website zurück. Ich verstehe, wie IPN funktioniert, aber jetzt sehe ich, dass ich die verschiedenen Aktionen, die nach einem erfolgreichen Kauf mit PDT ausgeführt werden, möglicherweise einfacher auslösen kann, wenn die Daten dort und dann zurückgegeben werden (anstatt einen separaten Listener zu benötigen). .

Die PDT-Dokumentation von PayPal enthält jedoch diese kryptische Zeile: "PDT ist nicht für die Verwendung mit Kreditkarten- oder Express Checkout-Transaktionen vorgesehen." ... aber ich kann zu dem Thema überhaupt nichts weiter finden.

  1. Sind Kreditkarten WIRKLICH nicht für die Verwendung mit PDT gedacht? Ich hätte gerne mehr als einen Satz.

  2. Bedeutet das, dass ein Benutzer ein PayPal-Konto haben / erstellen muss, um bezahlen zu können?

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

Könnte jemand, der dies durchgemacht hat, freundlicherweise etwas Licht ins Dunkel bringen?


Ich habe eine Webseite gefunden, die das wirklich besser erklärt. [PayPal PDT und IPN: Wie funktioniert das?] [1] [1]: webmasters.stackexchange.com/questions/21634/...
Ananize Scott

In Bezug auf Frage 2 gibt es eine PayPal Account OptionalEinstellung, unter My selling preferences > Website preferencesder Sie aktivieren können, um Ihre Kunden nicht zu zwingen, ein PayPal-Konto zu erstellen / zu haben, d. H. Bezahlen Sie mit Kredit- / Debitkarte.
Kaiyaq

Antworten:


112

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

  • Mit PDT erhalten Sie die Benachrichtigung sofort und können jede zusätzliche erforderliche Verarbeitung durchführen und dem Benutzer eine Bestätigungsseite anzeigen.
  • Mit IPN wird Ihnen garantiert mitgeteilt, dass die Zahlung eingegangen ist, auch wenn der Computer des Benutzers explodiert, bevor er Ihnen die PDT senden kann.

Implementieren Sie beide und holen Sie das Beste aus beiden Welten heraus. Wenn Sie jedoch nur eine ausführen, ist IPN die zuverlässige.

Ein Haken: Wenn Sie beide implementieren, besteht die Möglichkeit, dass Ihre Zahlungen zweimal verarbeitet werden. Achten Sie darauf, dass dies nicht passiert. Die von mir geschriebene Anwendung behandelt PDT und IPN fast identisch (der Backend-Teil ist derselbe), und dieser Code erhält eine Sperre pro Webbenutzer in der Datenbank, sodass derselbe Benutzer mehrmals versucht, genau dieselbe Zahlung zu übermitteln kann nur einmal verarbeitet werden. Nach der Verarbeitung wird das Ergebnis dieses Prozesses für alle nachfolgenden Verarbeitungsversuche erneut verwendet.

Bearbeiten Noch etwas: IPN enthält mehr Informationen als PDT. Es gibt viele verschiedene Nachrichten, die Sie von IPN empfangen können, wie z. B. Rückbuchungsbenachrichtigungen usw., und daher sollten Sie diese wirklich implementieren.


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

Wann sollte PDT verwendet werden?

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

Mit PDT wird Ihre Site sofort benachrichtigt, wenn ein Kunde die Zahlung abgeschlossen hat. Bei IPN gibt es jedoch eine wesentliche Verzögerung zwischen dem Zeitpunkt, zu dem ein Kunde die Zahlung abschließt, und dem Zeitpunkt, zu dem Ihre Website über dieses Ereignis informiert wird.

Verwenden Sie daher PDT, wenn Ihre Website eine Funktion enthält, für die eine sofortige Zahlungsbenachrichtigung erforderlich ist.

Stellen Sie sich zum Beispiel einen digitalen Musikladen vor. Mit PDT können Kunden in diesem Geschäft 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

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

Im Gegensatz dazu ist bei IPN die Lieferung von Auftragsbestätigungen praktisch garantiert, da IPN eine Bestätigung erneut sendet, bis Ihre Site den Empfang bestätigt. Aus diesem Grund empfiehlt PayPal, IPN anstelle von PDT zu implementieren.

Ein weiterer Vorteil von IPN besteht darin, dass viele Arten von Benachrichtigungen gesendet werden, während PDT nur Auftragsbestätigungen sendet. Mit IPN kann Ihre Site beispielsweise Rückbuchungsbenachrichtigungen 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 darauf achten, dass Sie nur eine Kopie einer bestimmten Bestätigungsnachricht bearbeiten (z. B. ein Produkt versenden).

Dokumentation hier


2
Danke, ich verstehe. Verknüpfen Sie also im Grunde die Datenbankaktualisierungen mit IPN (da diese immer verarbeitet werden) und verknüpfen Sie Benutzerbestätigungen nur mit PDT (z. B. um zu überprüfen, ob die Zahlung von IPN auf einer ausstehenden Seite verarbeitet wurde) ....?
Tom

1
+1 für die Implementierung von IPN und PDT haben wir dies getan und es funktioniert gut.
Mark Redman

3
@ Tom: Meine Implementierung lautet: Wenn entweder ein PDT oder ein IPN eingeht, lesen Sie die Parameter und versuchen Sie, die Zahlung zu verarbeiten. Der Prozessor A) blockiert andere gleichzeitige Verarbeitung (für diesen Benutzer) und B) prüft, ob sie bereits verarbeitet wurde. Nachdem die Verarbeitung abgeschlossen ist, sind Sie mit IPN fertig, mit PDT zeigen Sie dem Benutzer eine Bestätigungsseite oder Quittungsseite oder was auch immer. Sowohl die PDT-Seite als auch die IPN-Seite können ordnungsgemäß funktionieren, wenn die andere Seite nicht verfügbar ist. Sie erhalten jedoch eine gute Zuverlässigkeit, wenn Sie beide haben. Ein ziemlich hoher Prozentsatz der Benutzer klickt sich nicht durch, bevor das IPN eintrifft.
Mr. Shiny und New

8
Diese Antwort beantwortet die Fragen Nr. 1, Nr. 2 oder Nr. 3 des OP nicht, wird jedoch akzeptiert?
Clint Pachl

2
IPN dauert bis zu 4 Tage, um zu antworten ... es ist
scheiße

1

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

Zu 2. Es liegt an Ihnen, welche Zahlungsoptionen Sie zulassen möchten. Wenn Sie das Bezahlen ohne PayPal-Konto zulassen möchten, können Sie das optionale Konto aktivieren . Wenn Sie nur Benutzern mit PayPal-Konten erlauben möchten, deaktivieren Sie diese Funktion. Möglicherweise gibt es mehr Optionen.

Zu 3. In Ihrem Fall müssen Sie nach erfolgreichem Kauf eine Aktion auslösen. Empfohlener Weg wäre die Implementierung von IPN. PDT funktioniert nicht in allen Fällen und garantiert keine Nachrichtenübermittlung. Hier ist ein Link zu einem Dokument zu diesem Thema PDT vs IPN .


0

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 Ihrer Website den sofortigen Transaktionsstatus bereitstellen, wo Sie schnell den Erfolgs- oder Fehlerstatus der Zahlung überprüfen und dem Benutzer die entsprechende Nachricht übermitteln können.

In der Zwischenzeit können Sie die vollständige Überprüfung durch IPN im Hintergrund abwarten. Nach Erhalt können Sie damit Ihre Datenbank weiter aktualisieren und die Bestellung bearbeiten.

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

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.