Paypal express checkout 使用 NVP 上线 - “安全标头无效”

Posted

技术标签:

【中文标题】Paypal express checkout 使用 NVP 上线 - “安全标头无效”【英文标题】:Paypal express checkout going live using NVP - "Security header is not valid" 【发布时间】:2012-01-14 21:05:04 【问题描述】:

我将 Paypal 快速结账功能集成到我们的电子商务系统(NVP 版本 76.0,php 5.2)中,该系统具有定制的结账流程。 在开发模式下(使用沙箱详细信息)一切正常,但是当我将签名信息(用户名、密码、api_signature 和贝宝 url)切换到实时贝宝帐户信息时,它停止工作。它总是以错误代码响应:10002 和消息:安全标头无效 如果我切换回沙盒详细信息,它会再次开始工作。

这是错误示例:

TIMESTAMP: 2011-12-06T19:09:31Z
CORRELATIONID: cb966ebeb254d
ACK: Failure
VERSION: 76.0
BUILD: 2271164
L_ERRORCODE0: 10002
L_SHORTMESSAGE0: Security error
L_LONGMESSAGE0: Security header is not valid
L_SEVERITYCODE0: Error

我发现一些关于堆栈溢出的帖子有同样问题的人,但解决方案不起作用@Paypal 我做了一些挖掘(在谷歌上),发现很多人遇到这个问题,但没有明确的解决方案或一个线程,将概述您上线时需要更改的内容,因为仅更改上述详细信息(以及贝宝快速结帐文档中的)似乎不起作用。

有没有人找到解决这个问题的方法,或者我只是错过了什么?

【问题讨论】:

【参考方案1】:

好的,所以我找到了答案:

我联系了 Paypal 支持,即使在概述了问题之后,他们仍然没有提供解决方案,但至少那里的回复让我知道了实际问题所在。 当您将系统投入使用时,您不仅需要更改:

API_USERNAME
API_PASSWORD
API_SIGNATURE
PAYPAL_URL

带有实时详细信息(来自 Sandbox > Live),但您必须进行更改:

API_ENDPOINT

他们没有在文档中提供。 我发现,当您切换到 live 时(取决于您拥有的 paypal SDK 版本),您必须将端点更改为在此列表中找到的端点 API Endpoints

我不得不使用的是:

Environment: Live
Authentication: API Signature
Calling: Name-Value Pair
Endpoint: https://api-3t.paypal.com/nvp

【讨论】:

无论是否使用 SDK,您都必须更改端点。 我现在明白了,但文档中没有概述,也没有给出正确的实时端点 url 的正确示例,即使在联系 PayPal 支持后,他们也无法为我提供正确的端点网址。 您联系了哪个支持人员?如有任何 API 相关问题,您应联系商家技术服务; paypal.com/mts @Robert 我通过发布与我的问题相关的票证联系了贝宝支持,他们返回的解决方案不起作用,并记住响应速度不快,我不得不启动网站,我无法与贝宝交谈并等待他们帮助解决问题,如果他们需要一天时间才能回复我。尤其是当他们返回的解决方案不起作用并且其他人已经在网上发布了相同的东西并且它对他们也不起作用时,因此他们需要整理那里的文档或至少为 SDK 下载添加适当的解释在自述文件中。 您是否像我提到的那样通过paypal.com/mts 联系了PayPal MTS?常规客户服务将无法提供帮助。 PayPal MTS 是您应该联系以获取开发者相关支持的部门。

以上是关于Paypal express checkout 使用 NVP 上线 - “安全标头无效”的主要内容,如果未能解决你的问题,请参考以下文章

php 更改YITH PayPal Express Checkout for WooCommerce的Set Express Checkout Request参数

PayPal Express Checkout 通行证 transactionID

如何为 PayPal Express Checkout 配置 IPN?

如何访问 Paypal Express Checkout 的响应?

paypal express checkout - 400 错误请求

Paypal Express Checkout / React - 发送产品信息