PayPal PayFlow Pro с прозрачным перенаправлением - проблемы с аутентификацией пользователя / документация

У меня возникли некоторые трудности при интеграции - и нахожу текущую документацию для - интеграцииPayPal PayFlow Pro на мой сайт.

Здесь есть аналогичный вопрос для PayFlow Link -https://stackoverflow.com/questions/15808604/result-1-respmsg-userauthenticationfailed-in-test-transaction-for-mastercard - но я хотел вдаваться в подробности.

Я хочу использоватьПрозрачный редирект особенность сSILENTTRAN вариант так что:

данные кредитной карты отправляются непосредственно на шлюз (т.е. не через мой сервер)пользователь перенаправляется обратно на назначенную страницу для подтверждения транзакции или ошибки (страница ответа).

В настоящее время я читаю этот документ:https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/payflowgateway_guide.pdf

Это указано какРуководство разработчика по Payflow Gateway (PDF) на этой странице -https://developer.paypal.com/webapps/developer/docs/classic/products/payflow-gateway/ - так что я предполагаю, что это текущая документация.

Согласно странице 28, процесс должен быть:

Клиент нажимает кнопку «Купить», чтобы купить товары на вашем веб-сайте. [СДЕЛАННЫЙ]Вы запрашиваете безопасный токен, передавая идентификатор безопасного токена на сервер шлюза. В запросе вы передаете пару имя-значение, SILENTTRAN = TRUE. Эта пара имя-значение не позволяет отображать размещенные страницы. [СДЕЛАННЫЙ]Сервер Gateway возвращает защищенный токен и ваш идентификатор токена на ваш сайт. [СДЕЛАННЫЙ]Вы отображаете поля кредитной карты для клиента на странице оформления заказа на вашем веб-сайте. [СДЕЛАННЫЙ]Клиент вводит номер своей кредитной карты, дату истечения срока действия и другие конфиденциальные данные в поля кредитной карты и нажимает кнопку Отправить. [СОВЕРШЕНО] Браузер отправляет данные о платежах непосредственно на сервер шлюза, избегая вашего веб-сайта и облегчая ваши требования соответствия PCI. [ПРОБЛЕМЫ ЗДЕСЬ]

Ниже приведен пример запроса безопасного токена для прозрачного перенаправления. Я использовал местозаполнитель вместо фактических данных действующей учетной записи PayFlow Pro (эта учетная запись содержит «Payflow SDK / API (полный доступ) Live» в «Сводке службы» manager.paypal.com), но я использовал свои реальные учетные данные PayPal в актуальный запрос. Аналогичным образом я использовал общедоступные страницы для своих обратных URL:

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

Я выполняю транзакцию с токеном, используя код на стороне сервера, и вижу, что я получаю ответ примерно так:

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

Таким образом, похоже, что учетная запись проходит проверку подлинности здесь. Я подтвердил в Fiddler, что отправляю этот запросhttps://payflowpro.paypal.com.

Затем я беру этот ответ и помещаю его в форму HTML, которая отправляет обратно на шлюз, например:

    <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_s,ecuretoken" 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>

Обратите внимание, что я использовал тот же идентификатор токена и токен, что и в ответе токена - это заполнители. Я также использовал фактический номер кредитной карты и другие значения полей кредитной карты.

Это отправляет меня вhttps://payflowpro.paypal.com, который просто заявляет ответ (в теле страницы):

RESULT = 1 & RESPMSG = Ошибка аутентификации пользователя

Разве это не должно возвращать меня на мою страницу с ошибкой? Или происходит сбой ранее в процессе, так что шлюз даже не пытается интерпретировать токен и перенаправить? Я попытался установить обратные URL-адреса на URL-адреса действующего веб-сайта, но это, похоже, не имеет значения. Я также пытался опубликовать это с общедоступного веб-сервера, а не с локального хоста, но результат тот же.

Еще одна проблема, с которой я сталкиваюсь - это найти соответствующую документацию. Здесь есть документ «Проверка сервисов Payflow»:https://ppmts.custhelp.com/app/answers/detail/a_id/456/kw/payflow%20pro%20transparent%20redirect%20error%20page%20get%20codes

Эта страница датирована 2007 годом, и ссылка подТестирование с использованием Payflow Pro заголовок (т. е. руководство доступно на x.com) не работает. Руководство немного расплывчато, и единственные примеры кода, которые я нашел, находятся на PHP (см.https://go.developer.ebay.com/developers/community/blogs/pp_integrations_nate/payflow-transparent-redirect). Я переписал логику в примере как приложение ASP.Net.

Итак, мои вопросы:

Использую ли я правильную логику для обработки транзакции по кредитной карте?Если нет, может кто-то указать, где я иду не так, и где я могу найти наиболее актуальную и актуальную документациюСсылка (ы) для самых последних документов процедуры испытаний

Моя следующая идея - попытаться настроить тестовую учетную запись, используя следующие инструкции:https://ppmts.custhelp.com/app/answers/detail/a_id/929/ Очевидно, что это для размещенных страниц PayFlow, но я подозреваю, что процедура должна быть похожей, если я укажу опцию SILENTTRAN. Я безуспешно пытался заставить тестовый аккаунт работать ранее на этой неделе, но, похоже, следующая логическая вещь, которую стоит попробовать на этом этапе.

Я уже открыл заявку в службу поддержки, открытую для инженеров PayPal, и они изучают это, но было бы здорово узнать, удалось ли кому-либо в сообществе решить подобную проблему.

РЕДАКТИРОВАТЬ: по словам инженера PayPal, я только что говорил сSILENTTRANS значение требуется только в запросе безопасного токена. Я прокомментировал это в форме запроса транзакции выше, но это не решило проблему. Мы также подтвердили, что можно сделать запрос незащищенного токена (то есть непрозрачного перенаправления) дляhttps://pilot-payflowpro.paypal.com/ используя данные моей учетной записи.

РЕДАКТИРОВАТЬ 2: PayPal дал мне указание использовать https: //payflowlink.paypal.com / (не https: //payflowpro.paypal.com) для URL транзакции после публикации, но для продолжения использованияhttps://payflowpro.paypal.com для запроса токена. Это позволяет мне перейти на страницу подтверждения с помощью прозрачного перенаправления (что является отличным результатом), но для меня не имеет большого смысла, что я использую «payflowlink», а не «payflowpro» шлюз. Я также нашел этот учебник, который, кажется, поддерживает этоhttps://go.developer.ebay.com/developers/community/blogs/ppintegrationsnate/new-payflow-gateway-tutorial

Может ли кто-либо использовать прозрачный продукт PayFlow Pro, пожалуйста, подтвердите, что это правильно (или иным образом).

Ответы на вопрос(1)

Ваш ответ на вопрос