2013-06-29 2 views
1

Я работаю на сайте, использующем PayPal Payment Advanced. Я просмотрел документацию и попробовал несколько методов для получения начального токена. Ниже мой код:PayPal Payment Advanced User authentication failed

коллекция Dim As New NameValueCollection()

collection.Add("PARTNER", "PayPal") 
    collection.Add("VENDOR", "*Vendor ID*") 
    collection.Add("USER", "*Transaction ID*") 
    collection.Add("PASSWORD", "*The USER Password*") 
    collection.Add("TRXTYPE", "S") 
    collection.Add("AMT", "0.01") 
    collection.Add("CREATESECURETOKEN", "Y") 
    collection.Add("SECURETOKENID", Guid.NewGuid().ToString().Replace("-", "")) 


    Dim wc As New WebClient() 
    Dim response As Byte() = wc.UploadValues("https://pilot-payflowpro.paypal.com", "POST", collection) 

    Dim text As String = ASCIIEncoding.ASCII.GetString(response) 

Результат всегда что-то вроде ..... РЕЗУЛЬТАТ не удалось = 1 & SECURETOKENID = 11d95bb67d924cb2b8d9b4df81dfd586 & RESPMSG = аутентификация пользователя

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

Я могу получить доступ к обеим учетным записям в PayPal Manger без проблем.

Любая помощь от кого бы то ни было была бы оценена.

+0

От https://ppmts.custhelp.com/app/answers/detail/a_id/417/kw/User%20authentication%20failed Вы получаете сообщение об ошибке «не удалось аутентификации пользователя: Не удается для обработки транзакций "или" Ошибка аутентификации пользователя "из-за нескольких причин. Убедитесь, что ваш сайт, корзина и приложение отправляют правильные поля. Все поля чувствительны к регистру. ПОЛЬЗОВАТЕЛЬ, ПОСТАВЩИК, ПАРТНЕР и PWD Я выполнил эти пункты, я думаю, что проблема связана с его собственностью. Я буду следить за владельцем учетной записи, чтобы убедиться, что это не так. – BDarley

ответ

0

Вы используете учетные данные API? или учетных данных USER? Посмотрите на: https://developer.paypal.com/webapps/developer/docs/classic/express-checkout/integration-guide/ECAPICredentials/

+0

Спасибо, что ответили. – BDarley

+0

Спасибо, что ответили. PayPal имеет отличный пример на YouTube http://www.youtube.com/watch?v=qyiv3ndRcZI. В примере используется Curl, который я попытался имитировать с помощью API WebClient в vb.net. В примере, показанном в PayPal, не упоминается учетная запись dev. Единственные упомянутые аккаунты - от PayPal Manager. – BDarley

+0

Поверьте мне, для всех транзакций с использованием API Paypal требуются учетные данные API, вы не теряете ничего, пытаясь это, возможно, это может исправить вашу проблему. Кроме того, видео несколько старых. Новый сайт для песочницы: https://developer.paypal.com/ – Aguardientico

1

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

При попытке отправить тестовые данные для расширенного платежа PayPal вам необходимо убедиться, что у вас есть связанный с почтовым ящиком почтовый ящик и связанный с ним менеджер PayPal. Я создал фиктивный адрес электронной почты, потому что мой фактический адрес электронной почты уже был связан с другой учетной записью. Поэтому обязательно зайдите на сайт developer.paypal.com и выберите «Учетные записи Sandbox» -> Создать учетную запись.

После того, как вы создали учетную запись, в тестовых учетных записях Sandbox выберите новую запись и выберите «Профиль» на вкладке «Профиль», чтобы выбрать PayPal Payments Pro.

Теперь откройте диспетчер PayPal. Отсюда вы должны быть уверены, что связанный с ним адрес электронной почты PayPal Sandbox. С новой учетной записью, добавленной в песочницу разработчика, введите адрес электронной почты и выберите обновление.

В настройках транзакции убедитесь, что у вас есть значение «Максимальная сумма одной транзакции»

Наконец обеспечить значение имени параметры установлены правильно. В моем случае это не срабатывало по параметру PASSWORD. Это должно было быть PWD.

Таким образом, ваша форма должна быть установлена ​​в следующем примере.

<form method="POST" action="https://pilot-payflowpro.paypal.com:443" target="paypal"> 

      <input type="hidden" value="PARTNER" name="PayPal" /> 
      <input type="hidden" value="VENDOR" name="*Vendor Name*" /> 
      <input type="hidden" value="USER" name="*User Name*" /> 
      <input type="hidden" value="PWD" name=""User Password"" /> 
      <!-- NOT PASSWORD --> 

      <input type="hidden" value="CREATESECURETOKEN" name="Y" /> 
      <input type="hidden" value="TRXTYPE" name="S" /> 
      <input type="hidden" value="AMT" name="1.01" /> 
      <input type="hidden" value="SECURETOKENID" name="random guid here" /> 

      <input type="submit" value="Submit"> 

     </form> 

Или

Dim collection As New NameValueCollection() 
    collection.Add("Partner", "Partner Name - Usually PayPal or Verisign") 
    collection.Add("Vendor", "Vendor Name") 
    collection.Add("User", "User Name") 
    collection.Add("PWD", "User's Password") 
    collection.Add("TRXTYPE", "Transaction type, example A, S, etc") 
    collection.Add("AMT", "Amount") 
    collection.Add("CREATESECURETOKEN", "Y") 
    collection.Add("SECURETOKENID", Guid.NewGuid().ToString().Replace("-", "")) 

    Dim wc As New WebClient() 
    Dim response As Byte() = wc.UploadValues(txtWebAddress.Text, "POST", collection) 
    wc.Dispose() 
    Dim responsetext As String = System.Text.ASCIIEncoding.ASCII.GetString(response) 

Я хотел бы поблагодарить поддержку PayPal за помощь в решении этого вопроса. Они были наиболее полезны.

+0

Это был почти идеальный вариант, но в параграфе 5 вы говорите о менеджере PayPal, однако менеджеру PayPal требуется поставщик и т. Д. ... там есть менеджер почтовой программы sandbox? У вас есть ссылка на этот менеджер PayPal? –

+0

Практическое руководство для проводника для PayPal Manager: https://ppmts.custhelp.com/app/answers/detail/a_id/929 –

0

Отметим, что с сайта Paypal База знаний,

Примечание: Хотя менеджер PayPal позволяет специальные символы, чтобы быть частью пароля, не использовать их, потому что некоторые операционные оболочки, такие как DOS или UNIX относиться к ним по-разному.Например, знак процента (%) является специальным символом внутри DOS. Пароль, такой как «PaSS% word1», усекает до «PaSS», потому что DOS отбросит все символы после второго «S».

У меня был пароль, содержащий не-буквенно-цифровой символ, и аутентификация завершилась неудачно так же, как OP.

https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ1223&actp=LIST