Braintree - 为啥通过 API 或沙盒创建的 Braintree 交易需要这么长时间才能完成?

Posted

技术标签:

【中文标题】Braintree - 为啥通过 API 或沙盒创建的 Braintree 交易需要这么长时间才能完成?【英文标题】:Braintree - Why braintree transactions created via API, or via sandbox, take so much time before settled?Braintree - 为什么通过 API 或沙盒创建的 Braintree 交易需要这么长时间才能完成? 【发布时间】:2015-06-01 08:04:57 【问题描述】:

每当我通过 Braintree API 或他们的沙箱创建交易时,它都会经历许多状态,例如已授权、已提交结算、已结算……所有这些大约需要 24 小时。我想问有没有一种方法可以让我在沙盒/api 中创建一个交易并立即解决或争议。我不知道为什么要花这么多时间……例如在网上购物时,我的信用卡会立即被扣款。如何通过 Braintree 支付沙箱实现相同的目标?

【问题讨论】:

【参考方案1】:

我在布伦特里工作。看起来我们已经回复了您的support email,但我会在此处为遇到相同问题的其他人发布此信息。

每个客户端库都有一种在沙盒中即时结算交易的方法。对于php, it's in the TestHelper:

class Braintree_TestHelper

    . . .

    public static function settle($transactionId)
        
            $http = new Braintree_Http(Braintree_Configuration::$global);
            $path = Braintree_Configuration::$global->merchantPath() . '/transactions/' . $transactionId . '/settle';
            $http->put($path);
        

    . . .

在生产中,您进行的任何交易通常都会立即显示为信用卡上的费用,但这不是“永久性的”,并且在交易完成之前资金不会真正移动。换句话说,即使结算可能需要 24 小时,费用也不会花很长时间才能显示在卡上。

【讨论】:

我遵循了这种解决交易的方法。它解决了沙盒上的交易,但它没有调用我在沙盒上设置的“已支付交易”webhook。有什么理由吗?当交易在没有 api 调用的情况下完成时,webhook 会被正确调用。 即使您手动触发结算,付款也会按设定的时间表进行。您应该会在 04:15 UTC 之后的某个时间收到 webhook。 @agf 你能解释一下吗?我正在将 Braintree 与作曲家(自动加载和其他东西)一起使用,而 Braintree_TestHelper::settle('someid'); 不起作用,我应该单独包含该类。另外,这个settle 方法可以在任何地方使用吗?交易 id 必须是有效的交易对象?谢谢 对不起,“不起作用”我的意思是Fatal error: Class 'Braintree_TestHelper' not found @viarnes 是的,您必须单独要求测试助手。

以上是关于Braintree - 为啥通过 API 或沙盒创建的 Braintree 交易需要这么长时间才能完成?的主要内容,如果未能解决你的问题,请参考以下文章

用braintree生产账户接受paypal

使用 Paypal Cordova 插件,无法使用生产或沙盒模式使其工作

在 PayPal REST API 中查找 Braintree 计费协议 ID

Braintree沙盒账户不显示交易

WIN沙盒功能与VMWARE冲突解决方法

Braintree 的沙盒 PayPal 集成(使用 JS 和 PHP)