Пример 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 терпит неудачу так же)

https://payflowlink.paypal.com/?securetoken=3BZVLoht6cESPxMkScSau4g4l&securetokenid=9e09209a562b43739dd5d1a44a3e2d73&MODE=test&USER1=testuser1&ACCT=5105105105105100&EXPDATE=1212&CVV2=123

Я даже сделал симпатичную маленькую 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, и они смогут решить эту проблему за вас.

Другие вопросы по тегам