Ich benutze ASP.Net Membership Provider für die Anmeldung am Premium-Inhalt dieser Website. Der Inhalt ist keine Downloads, es sind Webseiten mit Informationen und Rabatten, usw. Dieser Teil ist fertig. Wir möchten, dass sie auch eine jährliche Zahlung mit PayPal-Abonnement erhalten, um den Premium-Inhalt zu sehen. Ich möchte, dass die ASP-Mitgliedschaft und das PayPal-Abonnement so gut wie möglich zusammenarbeiten, aber zumindest denke ich, dass sie eine Mitglied-ID erstellen müssen, bevor sie bezahlen. Dann werde ich dieses Mitglied an PayPal senden, um die beiden zu verbinden.Roadblocks mit PayPal-Abonnement für wiederkehrende Zahlungen mit ASP.Net-Mitgliedschaft?
Ich glaube, ich kann das tun wie folgt aus:
Set „Auto Return“ auf der Schnittstelle, so dass es URL zurückkehren wird umgeleitet, wenn die Zahlung erfolgt ist.
Legen Sie die Abfrage-Zeichenfolge "Rückgabe-URL" auf MemberId fest. Dies erfordert nicht die Verwendung der vorkompilierten "Saved" -Schaltflächen. Ich muss es in Code Hinter mit Name Value Pairs, "NVP" zu PayPal setzen. Ich hatte gehofft, nur den dummen Knopf einfügen zu können.
Aber dann gab es diese "Advanced Variables" im Button Maker. Problem war, dass sie in die Schaltfläche Gespeichert kompiliert wurden, so dass ich sie nicht für jede Person ändern kann. Aber vielleicht könnte dieser eine Parameter von den kompilierten Parametern getrennt sein? Ist das besser als das Hacken der Rückgabe-URL? Sind "Advanced Variables" für irgendetwas gut?
Alle Details über die Transaktion werden an die Rückgabe-URL gesendet werden, wenn ich den richtigen Code eingeben, der Rm = 2 sein könnte. (Richtig?) Dann kann ich es aufnehmen.
Dieser Prozess gilt jedoch als unzuverlässig, und PayPal empfiehlt die Verwendung eines sekundären Systems, das sie haben, "IPN". PayPal sendet die Transaktionsdetails an mich. Ich sende ihnen http 200 Code zurück. Dann schicke ich es ihnen in der gleichen Reihenfolge zurück, in der ich es bekommen habe. Dann schicken sie mir http 200. Dann wissen wir alle, dass es gut ist. Das hört sich nach ein paar Stunden Recherche an, aber wenn du es schon einmal gemacht hast, klingt es nach Copy & Paste. Ich hasse es, das Rad neu zu erfinden. Gibt es ein .Net Sample von diesem IPN Handshake/Dance?
Auch, wenn ich die IPN-Sache, vielleicht brauche ich nicht Auto Return. Vielleicht füge ich MemberId der URL "notify" statt der URL "return" hinzu. Dann kann PayPal mit der Bestätigungsseite, E-Mail usw. umgehen. Ist das besser?
Vorausgesetzt, dass wir das Abonnement bezahlt und mit der MemberId erfasst haben, mindestens einmal pro Benutzersitzung, nachdem sie sich angemeldet haben, muss ich prüfen, ob sie ihr PayPal-Abonnement bezahlt haben und ob es aktuell ist. "GetRecurringPaymentsProfileDetails" tut dies, aber es ist eine API-Operation. Das macht Sinn, aber ich hatte gehofft zu vermeiden, ihre REST API zu lernen. (Gibt es eine "NVP" -Version?)
Die REST-API-OAUTH-Token laufen alle paar Minuten ab, aber die einzige Möglichkeit, einen zu erhalten, ist die Verwendung von "Bash", um einige Linux-Befehle zu "cURL". Dies scheint wiederum die Art von Dingen zu sein, die nur einmal geschrieben werden müssen. Gibt es das bereits als Beispielcode?
(Ich will nicht die API verwenden, die abonnieren zu tun, weil ich immer auf unserer Webseite nicht die Kreditkartennummern gehen wollen. Zu viel Haftung. Deshalb habe ich PayPal wollte.)
Wird das überhaupt funktionieren? Ich weiß, dass PayPal 18 Möglichkeiten hat, alles zu tun, und alle schließen sich gegenseitig aus, und ich habe nur das Gefühl, dass ich ein Flickwerk von unzusammenhängenden Ideen erschaffe, um zu glauben, dass am Ende des Tunnels ein Licht brennt. Ich forsche und experimentiere bereits seit 10 Stunden. Ich dachte wirklich, wenn ich reingehe, würde ich nur einen dummen Knopf einstecken.
Dank Andrew! Dies ist sehr hilfreich. – ClaytonQ
Mein neues Verständnis ist: – ClaytonQ
1) Ich werde eine normale Schaltfläche erstellen, aber es wird nicht vorkompiliert. Ich werde die Seite POST zurück zu sich selbst haben, dann werde ich in Code-Behind den ganzen NVP zusammensetzen. Die Benachrichtigungs-URL enthält die Benutzer-ID des Benutzers in der Abfragezeichenfolge. 2) Sie zahlen bei PayPal. 3) PayPal wird IPN an der Benachrichtigungs-URL vornehmen. Ich erhalte die Mitglieds-ID und eine Nachricht, ob ihre Zahlung gültig ist oder nicht. 4) Sie werden auf einen Link auf der letzten PayPal-Seite klicken, um zu meiner Website zurückzukehren. 5) Zu diesem Zeitpunkt und wenn sie sich danach einloggen, werde ich die NVP API für Payments Pro verwenden, um zu überprüfen, ob ihre Zahlung aktuell ist. – ClaytonQ