Пример PayPal Gateway SDK PayPal не работает
Я скачал .NET SDK для Payflow Gateway и следовал этим инструкциям по настройке моей тестовой учетной записи Payflow Gateway, затем изменил две строки DOSecureTokenAuth.cs, переменные User и Connection:
UserInfo User = new UserInfo("myacctname", "myacctname",
"PayPal", "passwd");
PayflowConnectionData Connection = new PayflowConnectionData(
"pilot-payflowpro.paypal.com", 443);
Когда я запускаю DOSecureTokenAuth.cs, открывается окно командной строки:
------------------------------------------------------
Executing Sample from File: DOSecureTokenAuth.cs
------------------------------------------------------
RESULT = 0
RESPMSG = Approved
SECURETOKEN = 3BZVLoht6cESPxMkScSau4g4l
SECURETOKENID = 9e09209a562b43739dd5d1a44a3e2d73
DUPLICATE =
Transaction was successful.
The next step would be to redirect to PayPal to display the hosted
checkout page to allow your customer to select and enter payment.
This is only a simple example, which does not take into account things like
RETURN or SILENT POST URL, etc.
Press <Enter> to redirect to PayPal.
Transaction Successful.
Press Enter to Exit ...
Очевидно, успешно. Ура. Однако следующий шаг - перенаправление пользователя на страницу размещенных платежей PayPal всегда завершается ошибкой:
Some required information is missing or incorrect. Please correct the fields below and try again.
Error: An error has occurred. Please contact the system administrator.
Документы шлюза Payflow говорят, что я должен отправить свой SECURETOKENID и SECURETOKEN на http://payflowlink.paypal.com/ (даже если вы хотите использовать Payflow PRO???), и вот пример моей попытки (ниже приведен GET но POST терпит неудачу так же)
Я даже сделал симпатичную маленькую HTML-страницу формы на основе приведенного выше примера PHP:
<form method='post' action='https://payflowlink.paypal.com/'>
<input type='text' name='SECURETOKEN' value='3BZVLoht6cESPxMkScSau4g4l' />
<input type='text' name='SECURETOKENID' value='9e09209a562b43739dd5d1a44a3e2d73' />
<input type='hidden' name='MODE' value='test' />
<input type='submit' />
</form>
И, как и ожидалось, он умер с той же неопределенной ошибкой, которая подразумевает, что я настроил свою учетную запись каким-то неправильным образом. Я не добавил реальной финансовой информации, потому что эта учетная запись является тестовой учетной записью разработчика и не предназначена для использования на живом сайте, но если я правильно прочитал документы, это ожидаемый способ сделать это.
Поскольку я предполагаю, что это конфигурация, моя учетная запись настроена со следующими параметрами:
PayPal Express Checkout = Enabled
PayPal Email Address and PayPal Sandbox Email Address are configured and going to the same address
Show Confirmation Page = On a PayPal hosted page
Use Silent Post = No
Send email = Yes
AVS Check = No
CVC Check = No
Enable Secure Token = Yes
Помогите! Что вызывает смутную ошибку?!
3 ответа
Оказывается, что файл cs примера отправляет первоначальный запрос безопасного токена как "Без звука" и по умолчанию режим "Без звука" не включен. Закомментирование этой строки (или включение бесшумного режима) решило проблему.
Пройдя аналогичное испытание пару лет назад, я рекомендую вам обратиться за помощью в сеть разработчиков Paypal.
Когда я разрабатывал против их тестового API, у меня не было успеха. Оказалось, что тестовый URI, который я запускал, был старой, устаревшей версией, которая все еще была указана в текущей документации, с которой я работал.
Единственный способ получить информацию об этом был от людей, которые фактически поддерживают тестовый платежный шлюз. Эти люди часто посещают форумы разработчиков Paypal, на которые я ссылаюсь.
Удачи!
Является ли учетная запись Sandbox настроенной вами действующей учетной записью Sandbox?
Если это не так, это может быть другая настройка учетной записи. Обратитесь в службу поддержки PayPal по https://www.papyal.com/mts, и они смогут решить эту проблему за вас.