Ich arbeite daran, Bedingungen in meinen Paypal IPN Listener zu setzen, wie sicherzustellen, dass die Transaktionsnummer nicht mit einer vorherigen Nummer in meiner Datenbank übereinstimmt, dass die Empfänger-E-Mail korrekt ist usw. Was soll ich tun, wenn einer von diesen Tests scheitern? Stoppt es die Zahlung? Soll der Benutzer irgendwo umgeleitet werden? Alle Hilfe wird geschätzt!Was sollte mein IPN-Listener tun, wenn er meine Bedingungen nicht erfüllt?
Antwort
Kombinieren Sie einfach meine Kommentare in einer einzigen Antwort hier nur für den Fall es kann Sie und andere zukünftige Besucher helfen, die gleiche Frage :)
istIhr Code für PayPal IPN Hörer kann durch PayPal-Website, wenn die Zahlung genannt erfolgt durch den Benutzer und wenn der Benutzer noch auf der PayPal-Website ist.
So können Sie den Benutzer nirgendwo umleiten. Was Sie auch tun möchten, sollten Sie im Abschnitt "GEPRÜFTE" Ihres Codes tun, damit Sie auch keine Daten an PayPal zurücksenden.
Sie sollten mit dem, was Sie auf Ihrer Seite tun möchten, dann wie @Barmar gesagt, Ihre Daten in lokale Datei oder Datenbank protokollieren und diese Protokolldateien dann manuell überwachen oder durch eine Art von benutzerdefinierten Protokoll-Viewer für Ihre Anwendung schreiben ...
Natürlich haben Sie zwei Links in PayPal für den Erfolg gesetzt und stornieren, welche PayPal Benutzer auf einen dieser Links abhängig vom Status der Zahlung zurückgibt.
Wenn Sie einen Benutzer von Ihrer Site an PayPal zur Zahlung senden, können Sie einige benutzerdefinierte Daten in einem Feld mit dem Namen custom
senden. Sie können userID
oder eine eindeutige ID des aktuellen Benutzers mit diesem Feld senden. Wenn PayPal dann Ihren IPN-Listener aufruft, wird dieses Feld zusammen mit den Transaktionsdaten an Sie gesendet.
Lassen Sie uns sagen, eine Ihrer Bedingungen schlägt fehl, aber die Zahlung war erfolgreich auf PayPal. Sie können einen Datensatz in Ihrer Datenbank oder lokalen Datei für diese Bedingung + den userID
oder den eindeutigen Schlüssel setzen, den Sie von dem Benutzer haben, der die Zahlung ausgeführt hat (aus dem benutzerdefinierten Feld). Dann können Sie in Ihrer Erfolgsseite diese Tabelle mit dem userID
des Benutzers abfragen, der diese Seite besucht, und wenn irgendwelche Aufzeichnungen gefunden werden, bedeutet es, dass etwas falsch gelaufen ist. Dann können Sie tun, was immer Sie in der Situation tun müssen (Verwandte Nachrichten anzeigen oder etc.)
Aber Sie müssen vorsichtig sein mit dieser Methode, denn Benutzer kann den Browser schließen und kehrt nicht auf Ihre Website nach dem Zahlung!
Sie können also Ihren Code im Erfolgslink haben, aber Sie müssen auch die Transaktionsdatensätze in Ihrem Verwaltungsteil überwachen. Weil Sie möglicherweise den Benutzer kontaktieren müssen, wenn einige Ihrer Bedingungen oder eine andere Situation, die die menschliche Interaktion von Ihrer Seite erfordert, nicht kontaktiert werden können ...
- 1. drucken, wenn zwei Bedingungen erfüllt sind
- 2. Nur füllen, wenn die Bedingungen erfüllt sind
- 3. Was ich tun sollte, bevor ich meine App veröffentliche
- 4. GROUP Zeilen, wenn die Bedingungen erfüllt sind
- 5. Prevent abzumelden, wenn die Bedingungen nicht erfüllt sind
- 6. Android-Kamera: Threads? Was sollte was tun
- 7. Was sollte ich in den Satz tun und was sollte mein Zustand sein?
- 8. Exit-Funktion, wenn Bedingungen nicht erfüllt werden - Visual Basic
- 9. Spiel nur, wenn Bedingungen erfüllt sind
- 10. Ablehnen oder Schleife über Benutzereingabe, wenn zwei Bedingungen nicht erfüllt
- 11. NSOutlineView nicht tun, was es in seiner Unterklasse tun sollte
- 12. If-Anweisung nicht ausgeführt wenn die Bedingungen erfüllt sind
- 13. Was würde ein Scrum Teammitglied tun, wenn er merkt, dass er seine tägliche Arbeit missverstanden hat?
- 14. Python: Warum stimmt mein Base64-Dateiname nicht mit dem überein, was er sein sollte?
- 15. Schleife beendet nicht, sobald Bedingungen erfüllt sind
- 16. Ich möchte, dass meine if-Schleife nichts tut, wenn bestimmte Bedingungen erfüllt sind.
- 17. Wenn Downcasting vermieden werden sollte, was soll ich tun?
- 18. Wie Präfix zu Zeilen einer Spalte hinzufügen, wenn (Bedingungen erfüllt)
- 19. Wie vermeide ich, dass meine Rückkehrfunktion "undefined" zurückgibt, wenn keine Bedingungen erfüllt sind
- 20. IObserver - was sollte der Beobachter tun, wenn IObserver.OnError
- 21. Acrobat XI - Blanking ein Feld, wenn die Bedingungen erfüllt sind
- 22. tun, während Bedingungen Ausgabe
- 23. Warum druckt dieser Code nicht, was er sollte?
- 24. VBA neue Zeilen einfügen, wenn 2 Bedingungen erfüllt
- 25. Eine Funktion, die nur dann, wenn zwei Bedingungen erfüllt wieder erfüllt sind
- 26. Java-Schleife tut nicht, was es tun sollte
- 27. POSTGRESQL: Summiere ein Feld, wenn 2 Bedingungen erfüllt sind
- 28. zeigen Ergebnisse, wenn es eine der Bedingungen erfüllt?
- 29. Stop Gulp Aufgabe, wenn die Bedingungen erfüllt sind
- 30. Was genau tun tun?
Ich habe gerade unseren Code überprüft. Wenn etwas nicht stimmt, protokolliert es einen Fehler und aktualisiert das Benutzerkonto nicht. Es sendet nichts zurück an PayPal, ob erfolgreich oder nicht. Ich denke, bis zu dem Zeitpunkt, zu dem der Hörer läuft, wurde das Konto des Kunden bereits belastet. – Barmar
Aber das ist alter Code, mit dem ich wenig zu tun hatte, ich kann nicht garantieren, dass es tatsächlich die richtige Prozedur ist. – Barmar
klingt eher nach Geschäftspraktiken als nach Coding-Logik – nogad