Wie verbinde ich eine Paypal IPN-Bestätigung mit einem Benutzer?

9

Ich wollte Paypals IPN-Service nutzen, um Zahlungen für eine wiederkehrende Abonnementgebühr für meine Website zu überprüfen. Wie binden Sie die IPN-Bestätigungen an einen Benutzer auf Ihrer Website?

Die IPN-Bestätigungsnachricht hat einen Namen, eine E-Mail-Adresse, eine Paypal-ID und eine ID für wiederkehrende Zahlungen, aber es scheint keine eindeutige ID zu geben, da ich nicht weiß, woher die Paypal-ID oder die wiederkehrende Zahlungs-ID stammt trivial, um den Namen / die E-Mail, die ein Benutzer auf seinem PayPal-Konto hat (oder dort eingetragen), mit dem Namen / der E-Mail, die ich für sie auf meiner Site habe, eindeutig zu identifizieren (es kann viele John Smiths geben und die Person kann eine andere verwenden) E-Mail.)

1) Wenn ich die erste Zahlungsanforderung an Paypal sende, kann ich eine eindeutige UUID an die URL anhängen, die ich an sie zurücksenden möchte. Wenn ich diese eindeutige ID für diesen Benutzer speichere, kann ich diese Zahlungsbestätigung zuordnen der Benutzer, der es initiiert hat. Mache ich das härter als es ist? Gibt es einen einfacheren Weg?

2) Verwendet paypal auch für eine wiederkehrende / Abonnementgebühr immer die URL, die ich bei der Initiierung der Zahlung angegeben habe? Hat jemand praktische Erfahrung mit den wiederkehrenden Paypal-Zahlungen mit IPNs, verwendet er diese eindeutige URL erneut? Oder muss ich die Paypal-IDs dem Benutzer zuordnen, nachdem die erste wiederkehrende Zahlung empfangen wurde?

    
MikeN 19.02.2009, 21:35
quelle

4 Antworten

2

Ich habe vor kurzem auch einige wiederkehrende Zahlungen mit Paypal eingerichtet.

Ich wollte eigentlich, dass sich Leute als Mitglieder registrieren, nachdem sie für das Abonnement bezahlt haben, wenn sie es wollten. Wenn man sich als Mitglied anmelden muss, kann das dem Verkaufsprozess etwas Friktion einbringen. Daher sende ich keine Benutzerinformationen zusammen mit der Schaltfläche Abonnieren.

Was mein IPN-Skript tut, ist einen eindeutigen Aktivierungscode zu erzeugen, der an die Paypal subscriptionID in der Activations-Tabelle gebunden ist, dann sendet er diesen Code an denjenigen, der für das Abonnement bezahlt hat, mit Anweisungen zur Aktivierung.

Zum Zeitpunkt der Aktivierung müssen Sie sich registrieren oder anmelden. Zu diesem Zeitpunkt wird die Benutzer-ID der entsprechenden Zeile in der Aktiviertabelle hinzugefügt.

Wenn die EndOfTerm IPN-Benachrichtigung eingeht, sucht das IPN-Skript die Benutzer-ID aus der Activations-Tabelle basierend auf der SubscriberID, die im IPN angegeben ist. Dann kann ich tun, was ich tun muss, um dieses Abonnement zu deaktivieren.

Die URL des IPN-Skripts bleibt immer gleich.

    
Iain M Norman 19.02.2009, 22:10
quelle
3

Das Hinzufügen eindeutiger Daten zur Zahlungsanforderung ist so ziemlich der akzeptierte Weg, dies zu tun.

Ich habe keine Erfahrung mit wiederkehrenden Gebühren.

    
greyfade 19.02.2009 21:44
quelle
0

1) Sie können einen 'item_number' Parameter mit der anfänglichen Subskriptionseinrichtung senden, die an Sie zurückgegeben wird. Ich würde vorschlagen, ein Identifikationstoken darin einzubetten.

2) Wenn Sie den Parameter 'return' meinen, nein, das heißt, dass Sie den Benutzer zum Abschluss der Subskriptionseinrichtung schicken. Die Erneuerung erfolgt automatisch und pingt diese Seite nicht.

    
chaos 19.02.2009 21:44
quelle
0

1) Sie möchten den Parameter item_number verwenden. Stellen Sie dies in Ihrem HTML-Formular ein, das dem Kunden angezeigt wird, und es wird Ihnen vom Paypal-IPN zurückgeschickt. Sie können also eine Datenbankzeilen-ID hier eingeben und sie später für die richtige Person verwenden.

    
Magnus Smith 11.02.2010 16:46
quelle