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 交易需要这么长时间才能完成?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Paypal Cordova 插件,无法使用生产或沙盒模式使其工作