PayPal PayFlow Pro с прозрачным перенаправлением - проблемы с аутентификацией пользователя / документация
У меня возникли трудности с интеграцией и поиском текущей документации для интеграции PayPal PayFlow Pro в мой веб-сайт.
Здесь есть аналогичный вопрос для ссылки PayFlow - https://stackru.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=me@email.com&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_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>
Обратите внимание, что я использовал тот же идентификатор токена и токен, что и в ответе токена - это заполнители. Я также использовал фактический номер кредитной карты и другие значения полей кредитной карты.
Это отправляет меня на 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 ответ
Если вы собираетесь использовать какую-либо функцию, относящуюся к размещенной странице оформления заказа, вам нужно будет перенаправить на: https://payflowlink.paypal.com
или же https://pilot-payflowlink.paypal.com
URL-адреса Payflow Pro предназначены специально для вызовов API и не должны перенаправлять покупателей.
Ваша учетная запись также должна быть правильного типа, чтобы иметь возможность использовать размещенную функцию проверки. Вы можете проверить, какие опции доступны для вашей учетной записи, войдя в систему и проверив справа, чтобы увидеть, какие продукты включены в вашей учетной записи.
Документация для прозрачного перенаправления редка. На X.com было несколько постов, но эти статьи еще никуда не делись.