安全标头无效错误消息
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
。
【讨论】:
以上是关于安全标头无效错误消息的主要内容,如果未能解决你的问题,请参考以下文章
Omnipay Paypal Express 结帐错误:安全标头无效