Paypal“SetExpressCheckout”API 方法已停止使用沙盒卖家账户
Posted
技术标签:
【中文标题】Paypal“SetExpressCheckout”API 方法已停止使用沙盒卖家账户【英文标题】:Paypal "SetExpressCheckout" API method has stopped working with sandbox seller account 【发布时间】:2013-08-04 04:45:10 【问题描述】:我的应用程序使用 SetExpressCheckout paypal 经典 API 方法。当我在真实环境中使用真实账户时,它运行良好。
以前使用测试帐户可以正常工作,但几周前它已停止正常工作。在某些时候,我的应用程序使用 php 中的 curl 调用“SetExpressCheckout”API 方法。当我使用我一直用于测试的测试卖家帐户时,我总是收到以下错误:
SetExpressCheckout API call failed.
Detailed Error Message: Security header is not valid
Short Error Message: Security error
Error Code: 10002
Error Severity Code: Error
我知道贝宝最近重组了它的“开发者网络”,这个问题似乎是由这个引起的,但我没有证据。我使用的 API 现在称为“经典”API。
我已阅读文档,它说我现在必须创建一个新的“真实”贝宝帐户,然后使用它登录到https://developer.paypal.com。我做到了。
登录到开发者网站后,有一项功能允许我们导入旧沙盒帐户中使用的所有测试买家和卖家帐户。我这样做了,我的旧测试帐户出现在列表中。
其中一个是我用来测试的测试卖家账户。当我检查该帐户的详细信息时,用于向 paypal API 进行身份验证的用户名、密码和签名都在那里。如果我使用它们,它仍然会返回以前的错误。
还有一个功能允许我创建测试帐户。我创建了一个新卖家,但仍然收到相同的错误消息。
当我在谷歌上搜索这个问题时,大多数答案都说用户名、密码或签名有误,或者其中有隐藏的空格。那不是我的情况。
我不知道如何解决这个问题。我想知道 API 端点是否已更改。我目前使用“https://api-3t.paypal.com/nvp”进行测试。我正在使用 NVP API,版本 64。
简而言之: 1)我的测试帐户曾经工作 2)代码没有被修改 3) 真实账户曾经工作并且仍然有效。 4) 但是测试买家账户已经停止工作 5) 该问题按时间顺序与贝宝“开发者网络”重组相吻合。 6)我不知道到底发生了什么变化,可能会导致这种情况。 7) 有谁知道发生了什么变化并可能导致这种情况(查询字符串中的新参数?端点 URL 已更改?)? 8) 根据我之前的描述,我好像误会了什么,又是什么?
【问题讨论】:
【参考方案1】:我目前使用“https://api-3t.paypal.com/nvp”进行测试。
那是你的问题。您使用的是测试凭据,但使用的是实时 API 端点。 将您的端点更改为https://api-3t.sandbox.paypal.com/nvp,一切都应该没问题。
【讨论】:
没错。有一个“if”条件检查变量。如果该变量 === 为“1”,则将使用沙盒端点。否则,将使用实时端点。但是,另一位程序员将该变量的类型从字符串更改为整数。因此,代码总是会进入“else”分支。【参考方案2】:安全标头无效意味着您的凭据不正确。我从来没有见过不是这种情况的错误。
如果您使用沙盒凭据进行测试,您需要确保您访问了正确的端点并使用了正确的凭据。
很多时候人们不小心设置了沙盒凭据,然后将它们发送到实时端点,反之亦然。如果您点击了正确的端点并且您的凭据确实正确,则不会出现此错误。
【讨论】:
以上是关于Paypal“SetExpressCheckout”API 方法已停止使用沙盒卖家账户的主要内容,如果未能解决你的问题,请参考以下文章
找不到 PayPal SetExpressCheckout 方法
Paypal SANDBOX SetExpressCheckout 停止工作
Paypal“SetExpressCheckout”API 方法已停止使用沙盒卖家账户
Paypal SetExpressCheckout 数字商品