我正在PayPal中实施快速结账。
我对前两个步骤SetExpressCheckout
和GetExpressCheckout
没有任何问题。但是当我使用DoExpressCheckout
时,我遇到错误“安全标头无效”。
API凭据是相同的!
我通过将$environment
更改为live
中的DoExpressCheckout
来解决此问题。 ($environment
的差异在于它会使用https://api.sandbox.paypal.com/nvp/
代替https://api-3t.$environment.paypal.com/nvp
)
但为什么?
https://api-3t.$environment.paypal.com/nvp
是否有问题?
答案 0 :(得分:34)
https://api-3t.sandbox.paypal.com/nvp需要与https://api-3t.paypal.com/nvp所需的用户帐户不同的用户帐户。
激活沙箱帐户答案 1 :(得分:10)
我在实时环境中抛出了同样的错误。对我来说,事实证明我的API用户名末尾有一个尾随空格....我删除了空间并且工作正常....我将它们直接从PayPal粘贴到配置文件中并且必须已经在那里也复制了一个空白......所以如果你遇到这种情况,请检查尾随空格!如果用户名是在字符串中硬编码的话,这很明显,但不是因为它在java属性文件中。
请注意,如果您的凭据错误(即用户名,密码或签名错误),您也会收到此错误消息。当我将我的信息粘贴到配置文件中时,我发生了同样的问题,并且在我的签名结尾处有错误的额外字符。
答案 2 :(得分:2)
他可能不会批准结账。请参阅this article,显然目前已停用,但仍然可用here。