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