W mojej aplikacji potrzebuję ustawić powtarzającą się sekcję billingową przy użyciu paypal advanced i używam sekcji payflow do zrobienia tego samego. Aby utworzyć profil cykliczny, potrzebuję zarówno przycisku Zapłać za pomocą przycisku PayPal (proces ekspresowej realizacji transakcji), jak i płatności kartą kredytową. Moje pierwsze żądanie jest tak:Paypal Advanced Rachunki okresowe z Express Checkout i płatności kartą kredytową za pomocą hostowanych stron
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 };
}
}
Gdy proces się zakończy, mam ustawić adres URL do ramki IFrame i jest osadzony w jednym z moich widoków w moim projekcie mvc. Po wczytaniu ramki IFrame występują dwie problemy.
1) Strona jest przekierowana na najwyższy poziom. Oznacza to, że okno przeglądarki jest przekierowywane do URL-a IFrame. Wybrałem Layout C jako moją stronę hostowanej kasy. Kiedy używam referencji dostarczonych w projekcie demonstracyjnym, nawigacja w przeglądarce jest rozwiązana; tzn. prawidłowo wstawiono iframe do mojego widoku. Czy jest jakieś ustawienie w ustawieniach menedżera Paypal, aby temu zapobiec? Próbowałem to naprawić, pikując na najwyższym poziomie nawigację, ale to nie pozwoli mi przekierować na stronę PayPal, klikając przycisk "Sprawdź za pomocą Paypal".
2) W przypadku płatności kartą kredytową, gdy transakcja się powiedzie, będę przekształcić istniejącą transakcję do profilu przez:
"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"
To działa prawidłowo i powtarzające profil jest tworzony.
Po kliknięciu przycisku "Sprawdź za pomocą Paypal" przejdę na stronę Paypal, gdzie mogę zalogować się do Paypal, korzystając z moich danych Paypal, a po kliknięciu przycisku "Paynow" odliczyć pieniądze z mojego konta. Ma również wartość PNERF i kiedy użyłem tego samego kodu powyżej, aby przekonwertować transakcję na powtarzający się profil, zastępując Tender jako P, ale pokazuje mi komunikat odpowiedzi, że "nie znaleziono identyfikatora transakcji odpowiadającego temu identyfikatorowi". Proces realizacji Paypal nie pokazuje żadnych informacji o tym, że użytkownik wybiera sekcję ponownego generowania płatności.
Wykonałem także następujące czynności: Express Checkout with recurring billing, ale w kroku DoExpressCheckout uzyskałem BAID jako wartość zerową.
Potrzebuję zarówno zapłaty z paypal, jak i płatności za pomocą opcji kredytowych na mojej stronie, więc jakich parametrów należy użyć, aby to osiągnąć?
Z góry dziękuję.
Powiem ci tylko, co zrobiłem, ponieważ nie podążam za tym, co mówisz. Stworzyłem stronę internetową i aplikację internetową dla klienta, a także użytkownika zarejestrowanego na stronie internetowej, opłaconego z powtarzalną płatnością PayPal. Serwery PayPal wysłały IPN (powiadomienie o natychmiastowej płatności) z powrotem do mojego URL odbiornika umieszczonego na stronie internetowej. Kod znajdujący się na tym adresie URL odbiornika (Listener.aspx.cs) zajmował się wyodrębnianiem danych z odpowiedzi PayPal, w tym nazwą, adresem e-mail, adresem itp. Mój kod następnie utworzył użytkownika na podstawie tych informacji i wstawił go do bazy danych. –
Teraz, biorąc pod uwagę to, co powiedziałem, nie jestem pewien, czy rozumiem twoje pytanie. –
Jeśli potrzebujesz szczegółowych instrukcji krok po kroku, w jaki sposób to zrobiłem, będę szczęśliwy, że to zrobię - daj mi znać! –