【问题标题】:Class 'Transaction' not found while calling braintree refund调用braintree退款时未找到“交易”类
【发布时间】:2019-03-06 10:25:46
【问题描述】:

我正在将 Braintree 支付集成到我的应用程序中。我已成功创建交易,现在正在处理退款功能,refund() 方法在“交易”类中,所以我尝试使用“交易::退款()”调用,但它没有被调用,而是显示“交易”类'未找到错误

我的代码:

require_once('../assets/plugins/braintree/includes/braintree_init.php');
---------
---------
if(post('refund_mode') == 'braintree'){
  include_once '/var/www/vhosts/my_app_name/assets/plugins/braintree/vendor/braintree/braintree_php/lib/Braintree/Transaction.php'; 
  $result = Transaction::refund($braintree_transaction_id, $refund_amount);
  echo "<pre>"; print_r($result);exit;
}

这是调用refund() 方法的正确方法,如果不是,如何调用refund() 方法?谁能帮我看看我的错误是什么?

【问题讨论】:

    标签: braintree braintree-sandbox


    【解决方案1】:

    完全披露,我在 Braintree 工作。如果您还有任何问题,我建议您联系support

    语法与您键入的内容非常接近,尽管它确实取决于您使用的 Braintree 的 PHP SDK 库的版本。在较新的版本中,您将需要使用实例方法,而不是类方法来执行退款。如果您使用的是最新版本的 SDK,您的请求可能如下所示:

    $result = $gateway->transaction()->refund($braintree_transaction_id, $refund_amount);
    

    但是,如果您使用的是旧版本的 SDK,您的请求将类似于以下内容:

    $result = Braintree_Transaction::refund($braintree_transaction_id, $refund_amount);
    

    我建议检查您使用的 SDK 版本。如果它较旧,我发现最好阅读 class methods vs instance methods 以了解差异。否则,引用 Braintree's developer documentation 可以证明有助于构建 API 请求。

    【讨论】:

    • 感谢回复,我当天就已经修好了。我使用的是旧版本的 SDK 所以我用Braintree_Transaction::refund() 替换了Transaction::refund,也不需要用'include_once' 包含'Transaction' 文件。无论如何,我接受您的回答,因为您已经解释了为什么我们应该使用 Braintree_Transaction::refund 而不是普通的 Transaction::refund
    猜你喜欢
    • 2015-03-08
    • 2018-04-08
    • 2023-02-24
    • 2018-12-13
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    相关资源
    最近更新 更多