【问题标题】: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=AFcWxV21C7fd0v3bYYYRCpSSRl31AIajEwSIe41AAl--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 方面问题的同一个问题的答案。

标签: c# paypal paypal-sandbox


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2010-12-15
    • 2016-07-15
    • 2014-04-05
    • 2016-09-23
    • 2010-12-30
    • 2018-05-14
    • 2014-06-15
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多