为啥我的贝宝 api 调用失败并出现错误版本不支持?

Posted

技术标签:

【中文标题】为啥我的贝宝 api 调用失败并出现错误版本不支持?【英文标题】:why my paypal api call fail with error Version is not supported?为什么我的贝宝 api 调用失败并出现错误版本不支持? 【发布时间】:2015-05-25 14:55:27 【问题描述】:

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

但是,我确实看到了“查看您的信息”页面和“立即付款”按钮,该错误仅在我单击“立即付款”按钮后才会发生。

然后我尝试了 paypal 文档站点的 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=@987654322 @” P>

它确实返回成功。

我做了进一步的分析,发现当我调用api-3t.sandbox.paypal.com/nvp时,返回成功,返回一个token id。

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

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

有人可以帮忙吗?

非常感谢

【问题讨论】:

不确定,但我最后尝试使用相同的 version=121.0 并且在 sandbox 中对我来说效果很好。您可以尝试清除浏览器的 cookie 并再试一次吗? 【参考方案1】:

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

显然,现在每次调用 paypal 都需要一个 versionid(不确定它什么时候开始表现得像这样,因为它对我们来说工作正常)。

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

    调用 SetExpressCheckout 调用 GetExpressCheckoutDetails(检索一些信息) 调用 DoExpressCheckoutPayment。

之前只有在 SetExpressCheckout 调用中需要 VersionId。

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

这解决了所有问题。

【讨论】:

以上是关于为啥我的贝宝 api 调用失败并出现错误版本不支持?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的贝宝 ipn 验证总是返回无效?

用于创建重复配置文件的贝宝参数出现错误,请帮助我

无法批准有效的贝宝结算协议

我的贝宝停止接受付款并给我错误

奇怪的贝宝:身份验证失败

带有可变金额订阅的贝宝标准订阅