【问题标题】:paypal express checkout =>Error: Security header is not validpaypal express checkout =>错误:安全标头无效
【发布时间】:2014-06-15 00:54:51
【问题描述】:

错误:安全标头无效 数组

(
    [TIMESTAMP] => 2014%2d04%2d29T07%3a24%3a29Z
    [CORRELATIONID] => 6af6749c848d6
    [ACK] => Failure
    [VERSION] => 109%2e0
    [BUILD] => 10800277
    [L_ERRORCODE0] => 10002
    [L_SHORTMESSAGE0] => Security%20error
    [L_LONGMESSAGE0] => Security%20header%20is%20not%20valid
    [L_SEVERITYCODE0] => Error
)

我一次又一次地收到此错误,无法继续前进。我检查了所有的api用户名,密码和签名,都是正确的,但主要问题是,所有的东西都已经存储在paypal沙箱帐户中,但无法返回页面。我的意思是说横切显示在沙盒帐户中,但它不能转发到显示页面。我是不是哪里错了?

【问题讨论】:

  • 我使用了正确的凭据,但如果您的电子邮件地址中有“+”,显然它不会起作用。好吧,PayPal 很烂,我们都知道。

标签: express paypal out


【解决方案1】:

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

如果您完全确定此信息,请检查您提出请求时使用的编码 - 它应该是 UTF-8 没有字节顺序标记 (BOM),例如(在 Visual C# .NET)

var requestEncoding = new UTF8Encoding(false); // UTF-8 without BOM

using (var streamWriter = new StreamWriter(request.GetRequestStream(), requestEncoding))
{
    streamWriter.Write(requestBody);
}

不是默认值,在检查了一个小时后它帮助了我

当然,请确保您的所有参数也都经过 URL 编码

【讨论】:

  • 这是我在升级旧的 paypal 解决方案时遇到的问题
【解决方案2】:

凭据错误确保您输入的 API 用户名、API 密码和 API 签名正确。有时会发生在复制和粘贴过程中不小心添加了一个空格,这会触发此错误。在 SDK 或第三方购物车的管理面板中仔细检查此设置。

错误的端点如果您将数据发送到错误的端点,则会出现此错误。确保您将实时凭据和数据发送到我们的实时端点。当您想要测试您的商店时,请确保您使用我们的测试端点和来自您的沙盒测试帐户的凭据。如果您使用第三方购物车,请确保您的商店在测试或实时模式下运行,以了解您使用的凭据。 现场直播

https://api-3t.paypal.com/nvp?&user=xxxxxxxxxx&pwd=xxxxxxxxxx&signature=xxxxxxxxxx&version=70.0&METHOD=SetExpressCheckout&RETURNURL=http://www.paypal.com/test.php&CANCELURL=http://www.paypal.com/test.php&PAYMENTACTION=Sale&AMT=50&CURRENCYCODE=USD

沙盒

https://api-3t.sandbox.paypal.com/nvp?&user=xxxxxxxxxx&pwd=xxxxxxxxxx&signature=xxxxxxxxxx&version=70.0&METHOD=SetExpressCheckout&RETURNURL=http://www.paypal.com/test.php&CANCELURL=http://www.paypal.com/test.php&PAYMENTACTION=Sale&AMT=50&CURRENCYCODE=USD

供参考link

【讨论】:

  • 请编辑您的帖子并链接到您从中复制此文本的original post
【解决方案3】:

我遇到了这个问题,因为我的登录包含“+”(加号)符号。最后,我按照http://www.zen-cart.com/showthread.php?80849-Plus-sign-%28-quot-quot-%29-in-user-name-causes-security-header-failure-in-Paypal-Express-Checkou 的描述手动将其解码为“%2B”,问题就消失了。

【讨论】:

  • 你成功了。我用谷歌搜索了很多页面,这就是帮助。非常感谢。
  • 没错。太感谢了。我喜欢将我的 gmail 与 + 一起使用来添加其他别名,并且在我删除 + 符号后解决了同样的错误。
【解决方案4】:

API_USERNAME API_PASSWORD API_SIGNATURE PAYPAL_URL

除了他们也改变这个:

** (来自沙盒 > 直播)**

【讨论】:

  • 模式选项(“sandbox”和“live”)都是小写的 - 第一次必须挖掘源代码才能找到这些选项,“live”值没有出现 任何地方在文档中。
【解决方案5】:

通常,此错误表示您未使用正确的 API 凭据。如果您确信您的凭据是正确的,请查看您的端点。沙盒凭据在生产环境中无效,实时凭据将在沙盒中产生此错误

【讨论】:

  • 当我使用以下 Golang PayPal 包时,我遇到了与原始问题相同的错误:github.com/crowdmob/paypal。如果其他人遇到类似的错误,可以在 Sandbox -> Accounts -> Profile -> API Credentials 下找到相关的 PAYPAL_TEST_USERNAME,它看起来像 username-facilitator_api1.domain.com。它不会是常规的 username-facilitator@domain.com。您还将在该页面上找到相关的 PAYPAL_TEST_PASSWORD。希望这可以节省一些时间。
  • 这是一个很好的提示。我要补充一点,您需要确保选择一个名为 username-facilitator@domain.com 的业务配置文件,否则 API 凭据选项卡不会出现在配置文件部分。这是截图slidemodel.com/images/misc/…
  • 我每年都会这样做几次,但每次都必须查一下。这次的问题是@rudolph1024 建议的:我添加了电子邮件/用户名而没有附加_api1。贝宝太可笑了。
  • 谢谢@julianm,您的回复就是我的解决方案。
猜你喜欢
  • 2012-01-04
  • 2012-01-14
  • 2020-05-19
  • 2014-04-05
  • 2011-08-17
  • 2016-06-28
  • 2023-03-03
  • 2015-07-01
  • 2016-07-15
相关资源
最近更新 更多