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, пожалуйста, подтвердите, что это правильно (или иным образом).