Braintree - 为什么通过API或沙箱创建的braintree事务在结算之前需要花费很多时间?

Har*_*man 3 payment payment-gateway braintree payment-processing

无论何时,我通过Braintree API或通过他们的沙箱创建交易,它都会经历许多状态,例如授权,提交结算,已结算......所有这些都需要24小时左右.我想问一下,我可以通过哪种方式在sandbox/api中创建一个事务,并立即解决或争议.我不知道为什么需要这么多时间...例如在网上购物时我的信用卡会立即收费.如何通过braintree支付沙箱实现同样的目标?

agf*_*agf 7

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

每个客户端库都有一种方法可以立即在Sandbox中解决事务.对于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);
        }

    . . .
}
Run Code Online (Sandbox Code Playgroud)

在生产中,您运行的任何交易通常会立即显示为信用卡上的费用,但它不是"永久性的",并且在交易结算之前,资金实际上不会移动.换句话说,即使结算可能需要24小时,但收费也不会花费很长时间才能显示在卡上.