In meiner Anwendung muss ich wiederkehrende Abrechnung Abschnitt mit paypal advanced einstellen und ich benutze die Payflow-Abschnitt, um das gleiche zu tun. Ich brauche sowohl Pay mit PayPal-Button-Prozess (Express-Checkout-Prozess) und Kreditkartenzahlung, um das wiederkehrende Profil zu erstellen. Meine erste Anfrage ist wie folgt:Paypal Advanced Wiederkehrende Abrechnung mit Express Checkout und Kreditkartenzahlung mit gehosteten Seiten
public static PayPalRedirectAdv PayFlow()
{
NameValueCollection requestArray = new NameValueCollection()
{
{"PARTNER", "PayPal"}, // You'll want to change these 4
{"VENDOR", "merchantname"}, // To use your own credentials
{"USER", "username"},
{"PWD", "abcdenfg"},
{"TRXTYPE", "A"},
{"AMT", "1.00"},
{"CURRENCY", "USD"},
{"CREATESECURETOKEN", "Y"},
{"SECURETOKENID", "tokenId generated"},
{"RETURNURL", UrlReturn},
{"CANCELURL", UrlCancel},
{"ERRORURL", lUrlError},
{"BILLINGTYPE","RecurringBilling"}
};
NameValueCollection resp = run_payflow_call(requestArray); // Will call the payflow end point via HttpWebRequest
if (resp["RESULT"] == "0")
{
string mode = "TEST";
return new PayPalRedirectAdv
{
Url = "https://payflowlink.paypal.com?SECURETOKEN=" + resp["SECURETOKEN"] + "&SECURETOKENID=" + resp["SECURETOKENID"] + "&MODE=" + mode
};
}
else
{
return new PayPalRedirectAdv { Url = string.Empty };
}
}
Sobald der Prozess abgeschlossen ist, habe ich habe die URL zu einem IFrame und es wird in einem meiner Ansichten in meinem MVC-Projekt eingebettet. Wenn das IFrame geladen wird, hat es zwei Probleme.
1) Die Seite wird auf die oberste Ebene umgeleitet. Dies bedeutet, dass das Browserfenster zur IFrame-URL umgeleitet wird. Ich habe Layout C als meine gehostete Checkout-Seite gewählt. Wenn ich die im Demo-Projekt bereitgestellten Zugangsdaten verwende, ist die Browser-Navigation gelöst. iframe ist korrekt in meiner Ansicht geladen. Gibt es eine Einstellung in den Paypal-Manager-Einstellungen, um dies zu verhindern? Ich habe versucht, dies durch Sandboxing Top-Level-Navigation zu beheben, aber dies wird nicht erlauben, um zu Paypal-Website umleiten, indem Sie auf die Schaltfläche "Check-out mit Paypal".
2) Für eine Zahlung mit einer Kreditkarte, sobald die Transaktion erfolgreich ist, werde ich die vorhandene Transaktion zu einem Profil von konvertieren:
"TRXTYPE=R&TENDER=C&PARTNER=PayPal&VENDOR=Acme&USER=Acme&PWD=a1b2c3d4&ACTION=A&PROFILENAME=RegularSubscription&ORIGID=<PNREF>&START=12012002&PAYPERIOD=
WEEK&TERM=12&OPTIONALTRX=S&OPTIONALTRXAMT=2.00&COMMENT1=First-time
customer&AMT=42.00"
Dies funktioniert gut und das wiederkehrende Profil erstellt wird.
Wenn ich jedoch auf "Auschecken mit Paypal" klicke, werde ich auf die Paypal-Seite weitergeleitet, wo ich mich mit meinen Paypal-Zugangsdaten einloggen kann und wenn ich dann auf "PayNow" klicke Geld von meinem Konto abziehen. Dies hat auch einen PNERF-Wert und wenn ich den gleichen Code oben verwendete, um die Transaktion in wiederkehrendes Profil zu konvertieren, indem Tender als P ersetzt wurde, aber es zeigt mir eine Antwortnachricht, dass "die dieser ID entsprechende Transaktions-ID nicht gefunden wird". Der Paypal-Checkout-Prozess zeigt keine Informationen darüber an, dass der Nutzer einen Abschnitt für wiederkehrende Zahlungen wählt.
Auch ich folgte Express Checkout with recurring billing, um die Aufgabe zu erledigen, aber ich bekam BAID als Null im DoExpressCheckout Schritt.
Ich brauche beide mit Paypal bezahlen und mit Kredit-Optionen auf meiner Website bezahlen, also welche Parameter sollte ich verwenden, um dies zu erreichen?
Vielen Dank im Voraus.
Ich sage dir nur, was ich getan habe, weil ich nicht ganz dem folge, was du sagst. Ich erstellte eine Website und eine Web-App für einen Kunden, und der Benutzer auf der Website registriert, bezahlt mit PayPal wiederkehrende Zahlung. Die Server von PayPal haben eine IPN (Instant Payment Notification) zurück an meine auf der Website gehostete Listener-URL gesendet. Der Code hinter dieser Listener-URL (Listener.aspx.cs) sorgte dafür, dass die Daten aus der PayPal-Antwort extrahiert wurden, einschließlich Name, E-Mail, Adresse usw. Mein Code erstellte dann basierend auf diesen Informationen einen Benutzer und fügte ihn in die Datenbank ein. –
Nun, angesichts dessen, was ich gesagt habe, bin ich mir nicht ganz sicher, ob ich deine Frage verstehe. –
Wenn Sie eine spezifische Schritt-für-Schritt-Anleitung dazu benötigen, mache ich das gerne - lassen Sie es mich wissen! –