PayPal PayFlow Pro z transparentnym przekierowaniem - uwierzytelnianie użytkownika nie powiodło się. Problemy / dokumentacja

Mam pewne trudności z integracją - i znalezieniem aktualnej dokumentacji do - integracjiPayPal PayFlow Pro na mojej stronie.

Podobne pytanie dotyczy tutaj PayFlow Link -https://stackoverflow.com/questions/15808604/result-1-respmsg-userauthenticationfailed-in-test-transaction-for-mastercard - ale chciałem zagłębić się w szczegóły.

Chcę użyćPrzejrzyste przekierowanie funkcja zSILENTTRAN opcja, dzięki której:

dane karty kredytowej są przesyłane bezpośrednio do bramki (tzn. nie przez mój serwer)użytkownik zostaje przekierowany z powrotem na wskazaną stronę, aby potwierdzić transakcję lub błąd (strona odpowiedzi).

Obecnie czytam ten dokument:https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/payflowgateway_guide.pdf

To jest wymienione jakoPrzewodnik programisty Payflow Gateway (PDF) na tej stronie -https://developer.paypal.com/webapps/developer/docs/classic/products/payflow-gateway/ - więc zakładam, że jest to aktualna dokumentacja.

Zgodnie ze stroną 28, proces powinien być:

Klient klika Kup, aby kupić towar na swojej stronie. [GOTOWE]Żądasz bezpiecznego tokena, przekazując identyfikator bezpiecznego tokena do serwera bramy. W żądaniu przekazujesz parę nazwa-wartość, SILENTTRAN = TRUE. Ta para nazwa-wartość zapobiega wyświetlaniu hostowanych stron. [GOTOWE]Serwer bramy zwraca bezpieczny token i identyfikator tokena na Twoją witrynę. [GOTOWE]Wyświetlane są pola karty kredytowej klientowi na stronie kasy w Twojej witrynie. [GOTOWE]Klient wprowadza numer karty kredytowej, datę ważności i inne poufne dane do pól karty kredytowej i klika przycisk Wyślij. [DONE] Przeglądarka przesyła dane płatności bezpośrednio do serwera Gateway, unikając Twojej witryny i ułatwiając spełnienie wymagań zgodności PCI. [PROBLEMY TUTAJ]

Poniżej znajduje się przykład żądania bezpiecznego tokena dla przezroczystego przekierowania. Użyłem symbolu zastępczego zamiast rzeczywistych szczegółów konta PayFlow Pro na żywo (to konto określa „SDK płatności / API (pełny dostęp) na żywo” w podsumowaniu usługi menedżera.paypal.com), ale użyłem moich prawdziwych danych PayPal w rzeczywista prośba. Podobnie dla moich powrotnych adresów URL użyłem publicznie dostępnych stron:

USER=MYUSER&VENDOR=MYUSER&PARTNER=VSA&PWD=MYPASSWORD&BILLTOFIRSTNAME=John&BILLTOLASTNAME=Doe&BILLTOSTREET=123 Fake Street&BILLTOSTREET2=&BILLTOCITY=Sydney&BILLTOZIP=2000&BILLTOPHONENUM=5555555555&[email protected]&BILLTOSTATE=NSW&AMT=0.05&RETURNURL=http://www.example.com&CANCELURL=http://www.example.com&ERRORURL=http://www.example.com&TRXTYPE=A&SILENTTRAN=TRUE&VERBOSITY=HIGH&CREATESECURETOKEN=Y&TENDER=C&SECURETOKENID=VDUOBDNLSXTLYAAAAAATLSEBLAAAAAAAAAA

Wykonuję transakcję tokenu za pomocą kodu po stronie serwera i widzę, że otrzymuję odpowiedź z powrotem w taki sposób:

RESULT=0&SECURETOKEN=TOKENWASHEREsdsdfjkj&SECURETOKENID=VDUOBDNLSXTLYAAAAAATLSEBLAAAAAAAAAA&RESPMSG=Approved

Wygląda więc na to, że konto uwierzytelnia się tutaj poprawnie. Potwierdziłem w Skrzypku, że wysyłam tę prośbęhttps://payflowpro.paypal.com.

Następnie odbieram tę odpowiedź i umieszczam ją w formularzu HTML, który wysyła z powrotem do bramy, np .:

    <form id="form" action="https://payflowpro.paypal.com" method="post">

        <!-- <input name="MODE" class="inpPPField" id="hdn_pp_mode" type="hidden" value="Test"> -->

        <input name="SECURETOKEN" class="inpPPField" id="hdn_pp_securetoken" type="hidden" value="TOKENWASHEREsdsdfjkj">

        <input name="SECURETOKENID" class="inpPPField" id="hdn_pp_securetokenid" type="hidden" value="VDUOBDNLSXTLYAAAAAATLSEBLAAAAAAAAAA">

        <input name="CARDNUM" class="inpPPField" id="hdn_pp_CardNum" type="hidden" value="4111111111111111">

        <input name="EXPMONTH" class="inpPPField" id="hdn_pp_expMonth" type="hidden" value="11">

        <input name="EXPYEAR" class="inpPPField" id="hdn_pp_expYear" type="hidden" value="16">

        <input name="CVV2" class="inpPPField" id="hdn_pp_cvv2" type="hidden" value="123">

        <!--<input name="SILENTTRANS" class="inpPPField" id="hdn_pp_silenttrans" type="hidden" value="Y">-->

        <input name="VERBOSITY" class="inpPPField" id="hdn_pp_verbosity" type="hidden" value="HIGH">

        <input class="inpPPField" type="submit" value="Submit" />

    </form>
</body>

Pamiętaj, że użyłem tego samego identyfikatora tokena i tokena, co ten, który został zwrócony w odpowiedzi na token - są to symbole zastępcze. Użyłem również rzeczywistego numeru karty kredytowej i innych wartości pola karty kredytowej.

To mnie wysyłahttps://payflowpro.paypal.com, który po prostu określa odpowiedź (w treści strony):

RESULT = 1 & RESPMSG = Autoryzacja użytkownika nie powiodła się

Czy nie powinno to powodować powrotu do mojej strony błędów? A może zawodzi wcześniej w tym procesie, aby brama nigdy nawet nie próbowała interpretować tokena i przekierowywać? Próbowałem ustawić moje powrotne adresy URL na adresy URL żywych witryn internetowych i wydaje się, że nie ma to znaczenia. Próbowałem również opublikować to z publicznie dostępnego serwera WWW, a nie z lokalnego hosta, ale wynik jest taki sam.

Innym problemem, który mam, jest znalezienie odpowiedniej dokumentacji. Jest tu dokument „Testowanie usługi płatności”:https://ppmts.custhelp.com/app/answers/detail/a_id/456/kw/payflow%20pro%20transparent%20redirect%20error%20page%20get%20codes

Ta strona jest datowana na rok 2007, a link podTestowanie za pomocą Payflow Pro nagłówek (tzn. przewodnik jest dostępny na stronie x.com) jest uszkodzony. Przewodnik jest trochę niejasny, a jedyne przykłady kodu, które znalazłem, są w PHP (zobaczhttps://go.developer.ebay.com/developers/community/blogs/pp_integrations_nate/payflow-transparent-redirect). Przepisałem logikę w przykładzie jako aplikację ASP.Net.

Podsumowując, moje pytania to:

Czy używam poprawnej logiki do przetwarzania transakcji kartą kredytową?Jeśli nie, czy ktoś może wskazać, gdzie się mylę i gdzie mogę znaleźć najbardziej odpowiednią i aktualną dokumentacj꣹cze do najbardziej aktualnych dokumentów procedury testowej

Moim następnym pomysłem jest próba skonfigurowania konta testowego przy użyciu tych instrukcji:https://ppmts.custhelp.com/app/answers/detail/a_id/929/ Oczywiście jest to dla hostowanych stron PayFlow, ale podejrzewam, że procedura powinna być podobna, dopóki określę opcję SILENTTRAN. Próbowałem bezskutecznie uruchomić konto testowe wcześniej w tym tygodniu, ale wydaje się, że kolejną logiczną rzeczą jest wypróbowanie w tym momencie.

Otworzyłem już bilet serwisowy otwarty u inżynierów PayPal i oni się tym zajmują, ale byłoby wspaniale wiedzieć, czy komuś w społeczności udało się rozwiązać podobny problem.

EDYTUJ: według inżyniera PayPal właśnie rozmawiałem zSILENTTRANS wartość jest wymagana tylko w żądaniu bezpiecznego tokena. Skomentowałem to w powyższym formularzu żądania transakcji, ale nie rozwiązało to problemu. Potwierdziliśmy również, że możliwe jest wykonanie żądania niezabezpieczonego tokena (tj. Nieprzejrzystego przekierowania) dohttps://pilot-payflowpro.paypal.com/ używając moich danych konta.

EDYCJA 2: PayPal polecił mi użyć https: //payflowlink.paypal.com / (nie https: //payflowpro.paypal.com) dla adresu URL posta transakcji, ale aby kontynuować używaniehttps://payflowpro.paypal.com dla żądania tokena. To pozwala mi przejść do mojej strony potwierdzenia przy użyciu przezroczystego przekierowania (co jest świetnym wynikiem), ale nie ma dla mnie większego sensu, że używam „payflowlink” zamiast „payflowpro” przejście. Znalazłem również ten samouczek, który wydaje się to wspieraćhttps://go.developer.ebay.com/developers/community/blogs/ppintegrationsnate/new-payflow-gateway-tutorial

Czy każdy, kto używa produktu PayFlow Pro Transparent, może potwierdzić, że jest to poprawne (lub inne).

questionAnswers(1)

yourAnswerToTheQuestion