Paypal API 响应:安全标头无效

Posted

技术标签:

【中文标题】Paypal API 响应:安全标头无效【英文标题】:Paypal API Response: Security Header Not Valid 【发布时间】:2014-06-23 14:35:30 【问题描述】:

这是我正在构建并发送到 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;

当我将这个发送到贝宝时,这是我从贝宝得到的回复:

时间戳= 2014%2d05%2d06t19%3a55%3a28z&correlationId = e06f3f16478d1&ack =失败&version = 113%2e0&build = 10762035&l_errorcode0 = 10002&l_shortmode0 = security%20error&l_longmessage0 = security%20header%20is%20 not%20valid&l_severitycode0 =错误

“安全标头无效”是什么意思?我的谷歌搜索告诉我这是一个安全问题,但我知道 USER 和 PWD 都是正确的。签名是我登录 Paypal Developer 网站后从帐户中提取的。这是错的吗?

编辑:

在检查回复时进行一些研究,如果我正在使用沙盒进行测试,这是否意味着我需要使用已创建的沙盒帐户中的用户/密码/签名,该沙盒帐户附加到我的实际贝宝开发者帐户?这就是我在沙盒和现场之间来回工作所需的全部更改吗?

【问题讨论】:

是的,安全标头无效意味着 API 凭据无效。如果您尝试使用沙盒服务器,则需要使用您的开发者帐户中的凭据。 【参考方案1】:

这并不总是意味着 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 编码的

【讨论】:

【参考方案2】:

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

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

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

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

在帖子中,我有指向 PayPal 开发人员文档的链接。它详细介绍了直播。

【讨论】:

我发现这是我的确切问题。有一个沙盒凭据必须与沙盒端点匹配。

以上是关于Paypal API 响应:安全标头无效的主要内容,如果未能解决你的问题,请参考以下文章

无法在 API Explorer 中测试方法 - 安全标头无效 - 10002 错误

错误 100002(安全错误 - 安全标头无效)

使用 NVP 的 MassPay API 返回“安全标头无效”

PayPal“安全标头无效”错误。该怎么办?

安全标头在 PayPal 批量付款中无效

paypal [错误:ACK 失败:安全标头无效]