Express Checkout错误消息:“安全标头无效”

我正在PayPal中使用Express Checkout

前两个步骤, SetExpressCheckoutSetExpressCheckout没有问题。 但是,当我使用DoExpressCheckout ,我遇到错误“安全标头是无效的”。

API凭证是一样的!

我已经通过更改$environment来修复它,使其liveDoExpressCheckout 。 ( $environment的区别在于它将使用https://api.sandbox.paypal.com/nvp/而不是https://api-3t.$environment.paypal.com/nvp

但为什么?

https://api-3t.$environment.paypal.com/nvp有什么问题吗?

我曾经为现场环境抛出同样的错误。 对我来说,事实certificate,我的API用户名的末尾有一个尾随的空间….我删除了空间,它工作得很好….我把他们直接从PayPal粘贴到configuration文件,必须在那里复制一个空白…所以如果这发生在你身上,检查尾随空格! 如果用户名在string中被硬编码,这将是显而易见的,但不是因为它在java属性文件中。

请注意,如果您的凭据错误(例如,用户名,密码或签名不正确),您也会收到此错误。 当我把我的信息粘贴到一个configuration文件中,并且在我的签名末尾有错误的字符时,我也遇到了同样的问题。

他可能不允许结账。 参考这篇文章 ,显然是现在,但仍然可以在这里 。