Paypal API响应:安全头无效

本文关键字:无效 安全 API 响应 Paypal | 更新日期: 2023-09-27 18:01:55

这是我正在构建并发送给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% 2 d05 % 2 d06t19 % 3 a55 % 3 a28z& CORRELATIONID = e06f3f16478d1& ACK = Failure&版本= 113% 2 e0&构建= 10762035,L_ERRORCODE0 = 10002, L_SHORTMESSAGE0 =安全% 20误差放大器;L_LONGMESSAGE0 =安全% 20头% 20 % 20不是% 20 valid& L_SEVERITYCODE0 =错误

这个"安全头无效"是什么意思?我的谷歌搜索告诉我这是一个安全问题,但我知道USER和PWD都是正确的。签名是我在登录Paypal开发者网站后从账户中取出的。这有错吗?

编辑:

在检查回复的同时做一些研究,如果我正在用沙盒测试,这是否意味着我需要使用一个用户/PWD/签名,从一个创建的沙盒帐户附加到我的实际paypal开发人员帐户?这就是我在沙盒和现场之间来回切换所需要改变的吗?

Paypal API响应:安全头无效

无论何时收到此消息,都意味着使用了无效的API凭据。确保API凭证中没有添加空格,并且复制了完整的签名。

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

如果您使用沙盒凭证和活动端点,那么您将收到此消息。如果对沙箱端点使用活动凭据,情况也是如此。

这是另一个相同问题的Stack Post的链接

在帖子中,我有链接到PayPal开发人员文档。它的细节正在进行中。

这并不总是意味着无效的API凭证或错误的端点

如果你对这个信息绝对确定,检查你正在请求的编码-它应该是UTF-8 没有字节顺序标记(BOM),例如

var requestEncoding = new UTF8Encoding(false); // UTF-8 without BOM
using (var streamWriter = new StreamWriter(request.GetRequestStream(), requestEncoding))
{
    streamWriter.Write(requestBody);
}

这是而不是的默认值,它帮助我检查了一个小时的所有

当然,也要确保所有的参数都是url编码的