Ошибка аутентификации PayPal PayFlow Pro - PullRequest
0 голосов
/ 28 мая 2020

Я установил тестовую учетную запись для PayPal Payflow Pro, но у меня проблемы с аутентификацией. Если я не использую cURL, API возвращает «Ошибка аутентификации пользователя». Я уверен, что передаю ту же информацию, которую я скопировал и вставил из рабочего cURL в PostMan и. net. Я пытаюсь воспроизвести пример вызова API из: https://developer.paypal.com/docs/payflow/gs-ppa-hosted-pages/#make -your-first-call

Я был бы признателен ie за любую помощь с этим.

cURL Example

Ошибка почтальона:

Postman failure

. Net сбой:

enter image description here

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Есть ли в вашем пароле специальные символы?

Попробуйте использовать теги длины для ваших параметров NVP: https://developer.paypal.com/docs/payflow/integration-guide/simple-transaction/#use -special-characters-in-values ​​

Также убедитесь, что SecureTokenID уникален в каждом запросе

Также не думайте, что вы должны использовать значения кодировки URL для Payflow

0 голосов
/ 28 мая 2020

На случай, если кто-то захочет точно узнать, как я изменил Postman и. net на работу. Еще раз спасибо Preston PHX!

Текст текста: PARTNER = PayPal & VENDOR = & USER = & PWD = & TRXTYPE = S & AMT = 40 & CREATESECURETOKEN = Y & SECURETOKENID = enter image description here

* 10011 *. *. * 10 Код:
private string GetSecureToken(string amount, string trxtype)
{
var secure = new SecureTokenRequest(true)
{
    PARTNER = PartnerId,
    VENDOR = VendorId,
    USER = User,
    PWD = Password,
    AMT = amount,
    TRXTYPE = trxtype
    //CREATESECURETOKEN is set by boolean in SecureTokenRequest constructor
    //SECURETOKENID is set in SecureTokenRequest constructor using new Guid to string
};

var client = new RestClient(Uri);

var request = new RestRequest(Method.POST);

var parameterDict = new Dictionary<string,string>()
{
    {nameof(secure.PARTNER), secure.PARTNER},
    {nameof(secure.VENDOR), secure.VENDOR},
    {nameof(secure.USER), secure.USER},
    {nameof(secure.PWD), secure.PWD},
    {nameof(secure.TRXTYPE), secure.TRXTYPE},
    {nameof(secure.AMT), secure.AMT},
    {nameof(secure.CREATESECURETOKEN), secure.CREATESECURETOKEN},
    {nameof(secure.SECURETOKENID), secure.SECURETOKENID},
};

var parameterList = parameterDict.Select(kvp
    => $"{kvp.Key}={kvp.Value}").ToList();

var postBody = string.Join("&", parameterList);

request.AddParameter("text", postBody, ParameterType.RequestBody);

var response = client.Execute(request);

var responseContent = response.IsSuccessful
    ? response.Content
    : $"{response.StatusCode} : {response.ErrorMessage}";

return responseContent;
}
...