为什么我的paypal api调用失败并出现错误版本不受支持?

时间:2015-03-22 15:43:15

标签: paypal paypal-sandbox

我的paypal api运行正常但最近出错了。我记录了详细信息并显示不支持版本。

但是,我确实看到了“查看您的信息”页面和“立即付款”按钮,只有在点击“立即付款”按钮后才会出现错误。

然后我尝试了paypal的doc网站的curl示例:

  

卷曲-s --insecure https://api-3t.sandbox.paypal.com/nvp -d“USER = platfo_1255077030_biz_api1.gmail.com&安培; PWD = 1255077037&安培; SIGNATURE = Abg0gYcQyxQvnf2HDJkKtA-p6pqhA1k-KTYE0Gcy1diujFio4io5Vqjf&安培; METHOD = SetExpressCheckout&安培; VERSION = 121.0&安培; PAYMENTREQUEST_0_PAYMENTACTION = SALE&安培; PAYMENTREQUEST_0_AMT = 19&安培; PAYMENTREQUEST_0_CURRENCYCODE = USD&安培; cancelUrl = http://www.example.com/cancel.html&returnUrl=http://www.example.com/success.html

它确实会带来成功。

我做了一些进一步的分析,我发现当我打电话给api-3t.sandbox.paypal.com/nvp时,返回成功并返回一个令牌ID。

然后当我致电https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=xxxxI时,请看“立即付款”按钮并允许我输入电子邮件和密码。但是,当我最终点击“立即付款”按钮时,我收到错误消息“版本不受支持”

所以我真的很困惑为什么会出现错误?

有人可以帮忙吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

在与paypal支持沟通后,我现在解决了这个问题。

显然现在每次调用paypal都需要一个版本代码(不知道它何时开始像这样,因为它对我们有效)。

在我们这边,我们有三个电话:

  1. 致电SetExpressCheckout
  2. 调用GetExpressCheckoutDetails(以检索一些信息)
  3. 致电DoExpressCheckoutPayment。
  4. 只有在SetExpressCheckout调用中才需要VersionId。

    现在我们必须将版本ID放在GetExpressCheckoutDetails和DoExpressCheckoutPayment中。

    这解决了所有问题。