Paypal API响应:安全标头无效

时间:2014-05-06 20:00:24

标签: c# visual-studio paypal httpwebresponse

这是我正在构建并发送给Paypal的字符串。

        string paypalMessage = "https://api-3t.sandbox.paypal.com/nvp?";

        paypalMessage += "USER=" + USER;
        paypalMessage += "&PWD=" + PWD;
        paypalMessage += "&VERSION=" + VERSION;
        paypalMessage += "&SIGNATURE=" + SIGNATURE;
        paypalMessage += "&METHOD=" + METHOD;
        paypalMessage += "&IPADDRESS=" + IPADDRESS;
        paypalMessage += "&ACCT=" + ACCT;
        paypalMessage += "&EXPDATE=" + EXPDATE;
        paypalMessage += "&CVV2=" + CVV2;
        paypalMessage += "&FIRSTNAME=" + FIRSTNAME;
        paypalMessage += "&LASTNAME=" + LASTNAME;
        paypalMessage += "&STREET=" + STREET;
        paypalMessage += "&CITY=" + CITY;
        paypalMessage += "&STATE=" + STATE;
        paypalMessage += "&COUNTRYCODE=" + COUNTRYCODE;
        paypalMessage += "&ZIP=" + ZIP;
        paypalMessage += "&AMT=" + AMT;

        return paypalMessage;

当我发送给PayPal时,这是我从Paypal获得的回复:

  

TIMESTAMP = 2014%2d05%2d06T19%3a55%3a28Z&安培;的correlationID = e06f3f16478d1&安培; ACK =失败&安培; VERSION = 113%2E0&安培; BUILD = 10762035&安培; L_ERRORCODE0 = 10002&安培; L_SHORTMESSAGE0 =安全%20error&安培; L_LONGMESSAGE0 =安全%20header%图20是%20not%20valid&安培; L_SEVERITYCODE0 =错误

这个"安全标头无效"意思?我的谷歌搜索告诉我它的安全性,但我知道USER和PWD都是正确的。 Signature是我登录Paypal Developer网站后从帐户中取出的。这是错的吗?

编辑:

在检查回复时进行一些研究,如果我使用Sandbox进行测试,是否意味着我需要使用附加到我的实际paypal开发者帐户的已创建Sandbox帐户中的USER / PWD / SIGNATURE?这是否需要改变才能在沙箱和现场之间来回切换?

2 个答案:

答案 0 :(得分:0)

每当收到此消息时,或者意味着使用了无效的API凭据。确保您的API凭据中没有添加的空格,并且已复制完整的签名。

另一个选项是您的端点和凭据不匹配。

如果您使用沙盒凭据和实时终端,则会收到此消息。如果您使用沙盒端点的实时凭据,则相同。

Here is a link to another Stack Post with the Same Issue

在帖子中,我有PayPal开发者文档的链接。详细信息上线。

答案 1 :(得分:0)

它并不总是指无效的API凭据或错误的端点

如果您对此信息完全确定,请检查您提出请求的编码 - 它应为UTF-8 不带字节顺序标记(BOM),例如

var requestEncoding = new UTF8Encoding(false); // UTF-8 without BOM

using (var streamWriter = new StreamWriter(request.GetRequestStream(), requestEncoding))
{
    streamWriter.Write(requestBody);
}

这是一个默认值,经过一个小时的检查后,它帮助了我

当然,请确保所有参数都经过网址编码