安全标头无效错误消息

Posted

技术标签:

【中文标题】安全标头无效错误消息【英文标题】:Security header is not valid error message 【发布时间】:2017-08-23 07:01:35 【问题描述】:

我收到了这条消息

TIMESTAMP=2017-03-29T16:36:41Z&CORRELATIONID=9d5672f086c52&ACK=失败&VERSION=204&BUILD=31674279&L_ERRORCODE0=10002&L_SHORTMESSAGE0=安全错误&L_LONGMESSAGE0=安全标头无效&L_SEVERITYCODE0=错误

我确定我使用了正确的凭据,我已经从沙盒帐户、View API Signature 页面复制了它们。

我正在尝试使用 URL https://api-3t.sandbox.paypal.com/nvp 连接到沙盒环境。 这是我的有效载荷的样子:

METHOD=MassPay&
USR=usr_api1.name.com&
PWD=9M8SWRPX6JMXDHAP&
SIGNATURE=AFcWxV21C7fd0v3bYYYRCps-s-rl31AIajEwSIe41AAl--j033rVmjUPI7&
VERSION=204&
RECEIVERTYPE=EmailAddress&
CURRENCYCODE=USD&
L_EMAIL0=some.user%40company.com&
L_AMT0=25

我启用了 TLS1.2。除了不正确的凭据之外,是否有任何方法可以跟踪问题?或者也许我必须设置我的测试/开发帐户?顺便说一句,我的开发帐户不是 Business,但测试帐户是 Business 而不是 Client。

这是发出请求的代码:

var sb = new StringBuilder();
foreach (var field in dic)

    sb.Append($"field.Key=HttpUtility.UrlEncode(field.Value)&");

sb.Remove(sb.Length - 1, 1);
var payload = sb.ToString().Trim();

var req = WebRequest.Create(SandBoxHost + "?" + payload);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12;

using (var resp = req.GetResponse())

【问题讨论】:

我知道你说你很确定,但在 15 年多的时间里,我一直在研究 PayPal API,我已经看到这个错误数千次,而且总是以某种方式无效凭据.仔细检查这些值,并确保您没有将沙箱凭据发送到实时端点,反之亦然。 @AndrewAngell 我看到了关于 PayPal 方面问题的同一个问题的答案。 【参考方案1】:

凭据和 URL 正确。但是,我发现如果您的沙盒企业帐户没有经过验证的信用卡,您将无法通过 txt 文件发送批量付款。您需要在创建新沙盒用户时指定这一时刻。如果您不指定信用卡,我猜它也无法与 API 一起使用。

真正的问题在于其中一个字段名称。我用USR 代替USER

【讨论】:

以上是关于安全标头无效错误消息的主要内容,如果未能解决你的问题,请参考以下文章

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

Omnipay Paypal Express 结帐错误:安全标头无效

10002 在实时模式下调用 DoCapture 时,安全标头无效错误

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

安全标头无效 - 贝宝错误 - WHMCS

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