PayPal Express Checkout возвращается - заголовок безопасности недействителен - PullRequest
3 голосов
/ 23 ноября 2011

Это, вероятно, задавали тысячу раз ... Но я уверен, что у меня все конечные точки и учетные данные правильные. Он работал вчера.

Security error:
Error no: 10002
Error message: Security header is not valid

Сейчас я тестирую сервер песочницы.

Всякий раз, когда я пробую testURL в своем браузере, я получаю ACK = Успех с токеном, но я получаю сообщение об ошибке «Заголовок безопасности недействителен», когда он проходит через код.

Это работало несколько часов назад, но по какой-то причине я продолжаю получать ту же ошибку сейчас.

с использованием пользователя / pwd и подписи из учетной записи песочницы

https://api-3t.sandbox.paypal.com/nvp
USER=xxxxxxxxxxxxxxxxxxxx
PWD=XXXXXXXXXXXXX
SIGNATURE=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

У меня есть следующий тестовый код:

        String testURL = "https://api-3t.sandbox.paypal.com/nvp?USER=xxxxxxxxxxxxxxxxxxxx&PWD=XXXXXXXXXXXXX&SIGNATURE=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX&VERSION=84.0-2276209&PAYMENTREQUEST_0_PAYMENTACTION=Sale&PAYMENTREQUEST_0_AMT=15&RETURNURL=https%3a%2f%2fdomain.com%2fCheckout.aspx&CANCELURL=https%3a%2f%2fdomain.com%2fCheckout.aspx&METHOD=SetExpressCheckout";

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(testURL);
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";


        //Send the request to PayPal and get the response
        StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
        streamOut.Write(testURL);
        streamOut.Close();
        // get resposne
        StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
        string strResponse = HttpUtility.UrlDecode(streamIn.ReadToEnd());
        streamIn.Close();

HTTPREsponse при отправке кода

TIMESTAMP=2011-11-22T23:25:34Z&CORRELATIONID=392047cb78388&ACK=Failure&VERSION=84.000000&BUILD=2271164&L_ERRORCODE0=10002&L_SHORTMESSAGE0=Security error&L_LONGMESSAGE0=Security header is not valid&L_SEVERITYCODE0=Error

HttpResponse если я просто скопирую, вставьте testURL в браузер

TOKEN=EC%2d4JW15968AV8121546&TIMESTAMP=2011%2d11%2d22T22%3a59%3a27Z&CORRELATIONID=c790299fd9ac7&ACK=Success&VERSION=84%2e000000&BUILD=2271164

Я пытался не UrlEncode переменных в тестовом URL ... та же проблема

заранее спасибо

1 Ответ

0 голосов
/ 23 ноября 2011

ОК, это может быть ошибка на стороне Paypal.

если я изменю testUrl с

String testURL = "https://api -3t.sandbox.paypal.com / nvp? USER = XXX & PWD = YYY & SIGNATURE = ZZZ & VERSION = ....... & METHOD = SetExpressCheckout";

до

String testURL = "https://api -3t.sandbox.paypal.com / nvp? & x = y & USER = XXX & PWD = YYY & SIGNATURE = ZZZ & VERSION = ....... & METHOD = SetExpressCheckout";

работает

См. Жирную часть со случайной первой переменной строки запроса. Похоже, что PayPal игнорирует первый параметр строки запроса, когда он отправляется из codebehind (это будет user = xxx, если перед ним не было x = y).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...