4 Stimmen

PayPal-Abonnements - IPN-Behandlung und Site Flow?

Für meine Mitgliedschaftsseite habe ich den IPN-Handler fertig. Meine Frage ist eine der Website "Fluss".

Und so geht's: Benutzer -> Landung -> Anmeldung -> Überprüfen -> PayPal -> Dankeschön

Hier ist also das Problem (das auch nur in meinem Kopf sein könnte). Nehmen wir an, Sie haben sich angemeldet und Ihr Konto verifiziert. Dann klicken Sie auf den Link "Abonnieren!" und werden zu Paypal weitergeleitet - wo Sie die Zahlung abschließen und zur "Danke"-Seite weitergeleitet werden.

Was ist, wenn die IPN nicht schnell auf meiner Website ankommt? Der Link für die Anmeldung bleibt bestehen, und die Nutzer können ihn erneut anklicken, weil sie denken, dass sie sich nicht angemeldet haben (obwohl sie es getan haben, es dauert nur etwas länger).

Wenn ich dies bekämpfe, indem ich ihr Profil aktualisiere und sage... "Aktiviert...", wenn sie auf den "Abonnieren"-Link klicken und den PayPal-Vorgang nicht abschließen... könnte es für immer heißen "Aktiviert...".

Ich bin nur neugierig, da ich PayPal zum ersten Mal integriere:

  • Wie behandeln Sie den Zustand zwischen dem Zeitpunkt, an dem der Benutzer auf den Anmeldelink klickt, und dem Abschluss des IPN-Prozesses?

  • Hatten Sie jemals Probleme mit IPNs, die nicht schnell ankamen?

1voto

Patrick Gryciuk Punkte 712

Ich hatte noch nie ein Problem damit, dass IPN nicht schnell ankam, aber ich hatte auch noch nie eine große Website mit vielen Nutzern. Ich habe auch keine wesentlichen Änderungen an einem Benutzerkonto vorgenommen, bevor ich die IPN erhalten habe.

Ich habe eine kostenpflichtige Registrierung für eine meiner Websites mithilfe der Paypal-API vorgenommen. Ein Benutzer würde seinen Benutzernamen, sein Passwort usw. eingeben, und ich würde die Variablen an die Paypal-API übergeben. Die Daten werden erst verarbeitet, wenn ich die IPN erhalte.

Sie können einer ausstehenden Zahlung immer einen Zeitstempel zuordnen, wenn Sie den Status "Aktiviert..." in einem Benutzerprofil für wichtig halten. Eine ausstehende Zahlung könnte nach 10 Minuten auslaufen.

1voto

Wayne Punkte 1278

Ihre Frage legt nahe, dass die Verbindung zum Remote-Server asynchron ist (Ajax)?

Es ist wahrscheinlich einfacher, sie synchron zu schreiben, so dass die IPN garantiert zurückkommt. Wenn das nicht der Fall ist, bedeutet das, dass:

a) Der Benutzer hat den Browser geschlossen, nachdem er zum Remote-Server weitergeleitet wurde;
b) Der entfernte Server hat nicht geantwortet.

Gute Zahlungsgateways leiten den Benutzer zurück auf Ihre Website, wenn er vielleicht auf die Schaltfläche "Abbrechen" klickt, aber eine Rückkehr ist nie garantiert, daher müssen Sie dies richtig handhaben.

Ich würde eine separate Tabelle haben, um die Transaktionen für einen bestimmten Benutzer zu protokollieren; das heißt:

ein Nutzer, viele Transaktionen

Einige Zahlungs-Gateways ermöglichen es Ihnen, einen Rückruf an Ihren Server zu definieren, wenn eine Transaktion abgeschlossen ist. Das heißt, die Verbindung wird vom Gateway initiiert - es führt nicht den Browser aus, da der Benutzer die Registerkarte/das Fenster schließen kann -, wo es einen Beitrag zu Ihrer Callback-URL leistet, und dann aktualisieren Sie den Status der Transaktion.

Ich bin mir nicht sicher, ob PayPal solche Dinge zulässt, aber bisher hatte ich noch nie Probleme mit PayPal, weil ich es immer synchron geschrieben habe.

Natürlich, wenn asynchrone erforderlich ist, dann Ihre Ajax-Funktion muss eine Zeitüberschreitung/Fehler-Handler haben - ich empfehle jQuery, natürlich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X