Paypal 错误 - getTransactionFee 方法不存在
Posted
技术标签:
【中文标题】Paypal 错误 - getTransactionFee 方法不存在【英文标题】:Paypal error - getTransactionFee method does not exist 【发布时间】:2015-04-30 12:46:57 【问题描述】:我有一个内置自定义购物车的自定义网站。我正在使用 Paypal API 标准付款方法将购物车信息发送到 Paypal,然后通过返回 URL 返回到我的 order_process.php 页面。返回到我的网站后,代码会更新我们数据库中的信息,以便为会员注册活动、为他们提供会员资格等。
在 Paypal 标记我们的帐户之前一切正常,因为在短时间内收到大量付款。
我与 Paypal 的主管进行了交谈,他们从我们的帐户中取消了标记。
我们没有进行任何更改,但现在该网站无法正常运行。它将信息发送到 Paypal,成功完成付款并返回我们的网站。
一旦到达代码行
$result = execute_payment($_SESSION["payment_id"], $_GET["PayerID"]);
它因错误而崩溃:“方法 PayPal\Api\Sale::getTransactionFee() 不存在”
我与 Paypal 谈过很多次,他们一直说他们会给我回电话,没有回电话。我已经广泛地用谷歌搜索了这个错误,但在这个主题上找不到任何东西。我不知道接下来要尝试什么,这导致了很多中断,因为我们正在处理大量事务。我将站点切换到开发域并尝试使用沙盒模式,但仍然收到相同的错误消息。
任何帮助都将不胜感激。
【问题讨论】:
不能用提供的有限代码做很多事情。您的Paypal\Api\Sale
是否还完好无损?听起来有人搞砸了那个类,或者它不再被引用。 PHP 错误日志提到缺少参考?
【参考方案1】:
我们的网站也刚刚开始显示这种行为,我不明白发生了什么。上周这个时候它工作得很好。
也许我需要下载新版本的 PayPal PHP SDK!?!?
救命!
-- 更新:在 PHP SDK wiki 上发现:“看到此错误:paypal/vendor/paypal/rest-api-sdk-php 中的方法 PayPal\Api\Sale::getTransactionFee() 不存在” /lib/PayPal/Common/PPReflectionUtil.php:73,请将SDK升级到最新版本v1.2.1。”
见https://github.com/paypal/PayPal-PHP-SDK/wiki
我已经下载了新的 SDK,现在正在集成它。完成后会更新...
-- 另一个更新:更新了我们的测试站点以使用 PHP SDK 1.2.1 版,并且在沙箱中一切正常。不确定您使用的是哪种语言/SDK,但可能值得更新?
【讨论】:
很高兴听到我不是这艘船上唯一的人!希望这个帖子能给我们提供一个解决方案。 @Chris 这个响应非常好,但它确实属于 OP 下的评论。通常不鼓励“我去”的答案。 谢谢,我目前正在更新,完成后会告诉你结果。 刚刚更新到 1.2.1 版就可以了!感谢您的帮助! 更新到 v1.2.1 可以解决这个问题。发现了一个错误,导致新的支付对象没有被优雅地处理,并导致损坏。很抱歉,因为之前在集成测试中没有发现它,所以暂时通知一下。不过,这个问题现在已经得到修复,SDK 可以在不破坏当前集成的情况下处理这些问题。【参考方案2】:我刚刚与 Paypal 的一位工程师交谈过。显然他们更新了一些代码并且意识到了这个问题。他们目前正在努力解决这个问题。
【讨论】:
太棒了,我只是喜欢第三方供应商破坏生产代码,并且“工作”了一个多星期。 嘿@Beachhouse!我们在发现问题的同一天发布了更新版本的 SDK 来解决问题。你可以看看下面的评论:更新到v1.3.1 可以解决这个问题。发现了一个错误,导致新的支付对象没有被优雅地处理,并导致损坏。很抱歉,因为之前在集成测试中没有发现它,所以暂时通知一下。不过,这个问题现在已经得到修复,并且 SDK 可以在不破坏当前集成的情况下处理这些问题。以上是关于Paypal 错误 - getTransactionFee 方法不存在的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PayPal Manager 中获取 PayPal 缺少错误代码?
PayPal Sandbox 500 代理错误 - PayPal 自适应