PayPal快速结账 => 错误:安全头部无效。

43

错误:安全头部无效 Array

(
    [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沙盒账户中,但它不能返回到页面。我的意思是说,在沙盒账户中显示交易,但它不能发送到显示页面。我做错了什么吗?

我不断遇到这个错误,无法继续。我已检查所有API的用户名、密码和签名,均正确。问题是,所有信息都已在PayPal沙盒账户中存储,但无法显示在页面上。虽然在沙盒账户中显示了交易记录,但无法在显示页面上呈现。我是否哪里出错了?


我使用了正确的凭据,但显然如果您的电子邮件地址中有“+”符号,它将无法正常工作。好吧 PayPal 真的糟透了,我们都知道这一点。 - Maciej Krawczyk
5个回答

74

通常,这个错误意味着您没有使用正确的API凭据。如果您确信您的凭据是正确的,请查看您的终端节点。沙盒凭证将无法在生产环境中使用,并且实际凭证会在沙盒中产生此错误。


10
当我使用以下的Golang PayPal软件包https://github.com/crowdmob/paypal时,我遇到了与原问题相同的错误。如果其他人遇到类似的错误,请注意PAYPAL_TEST_USERNAME可以在沙盒(Sandbox)->帐户(Accounts)->个人资料(Profile)-> API凭据中找到,它看起来像username-facilitator_api1.domain.com,而不是普通的username-facilitator@domain.com。您还将在该页面上找到相关的PAYPAL_TEST_PASSWORD。希望这能为某些人节省时间。 - rudolph1024
4
这是个好建议。我想补充一点,你需要确保选择一个以用户名方便器@域名.com结尾的“商业”档案,否则API凭据选项卡将不会出现在档案部分中。这里有一张截图http://slidemodel.com/images/misc/paypal-blur-credentials-screenshot.png - julianm
4
我每年都要做这个,但每次都得查一下。这次问题就像 @rudolph1024 建议的那样:我添加了电子邮件/用户名,但没有添加 _api1 后缀。PayPal 真是荒谬。 - phillyslick
谢谢你,@julianm,你的回复对我来说是解决方案。 - AlejandroDG
我建议还要检查从PayPal页面复制的值前后是否有空格。 - pmaruszczyk

9
我遇到了一个问题,因为我的登录名包含加号"+"符号。最后,我手动将它解码为"%2B",如此处所述,问题得以解决。

你做得很好。我搜索了许多页面,这就是帮助我的东西。非常感谢。 - Piohen
没错。非常感谢。我喜欢使用我的 Gmail 带有 + 来添加额外的别名,删除 + 符号后同样的错误得到了解决。 - Bobz

2

这并不总是意味着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解决方案时遇到的问题。 - J King

1

API_USERNAME API_PASSWORD API_SIGNATURE PAYPAL_URL

除此之外,还需要更改以下内容:

** (从沙盒 > 正式环境)**


模式选项(“sandbox”和“live”)都是小写的 - 第一次查找这些选项时必须深入源代码,而“live”值在文档中根本没有出现。 - brichins

1

凭证错误请确保您已正确输入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


1
请编辑您的帖子并链接到您复制此文本的原始帖子 - machineaddict

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接