Braintree - 为什么通过 API 或通过沙箱创建的 braintree 交易在结算之前需要这么长时间?

问题描述 投票:0回答:2

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

payment-gateway payment payment-processing braintree
2个回答
8
投票

我在布伦特里工作。看起来我们已经回复了您的支持邮件,但我会在这里发布给有同样问题的其他人。

每个客户端库都有一种在沙盒中即时结算交易的方法。对于 PHP,它在 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 小时,但费用不会花那么长时间显示在卡上。


0
投票

自答案以来,情况略有变化。想法是一样的,但是从 2023 版本的 PHP SDK 开始,这是一种“强制结算”交易的可能方式:

use Braintree\Configuration;

Configuration::environment('sandbox');
Configuration::merchantId('yourmid');
Configuration::publicKey('yourpbk');
Configuration::privateKey('yourprk');
Configuration::gateway()->testing()->settle('transactionid');
© www.soinside.com 2019 - 2024. All rights reserved.