沙盒交易结算如何触发webhook?

How do I trigger a webhook for transaction settlement in sandbox?

我正在尝试为我的 braintree 集成创建一个新的 webhook 端点。我在控制面板中添加了一个端点。我正在使用 Python 库并创建了一堆交易。另外,我使用测试网关手动结算了交易。但我没有收到 webhook 通知。 webhook 何时触发,我=有没有办法手动触发它?

完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系 support.

Transaction -> Disbursed 网络钩子在交易结算时触发,并且 braintree 已开始将资金从他们的账户转移到您的账户。虽然在控制面板中手动结算交易会启动该过程,但它不会立即触发 webhook。

没有任何方法可以手动触发它,braintree 在控制面板中有 sample payloads and a way to trigger a "Check" webhook

为了回答您评论中的问题,此类 webhook 不涵盖作废的交易。

我也问了一个与 Braintree 支持类似的问题,答案可能对其他人有用,即使我决定使用 Stripe(经过所有测试后我发现 stripe 好多了;)。

问题

嗨,

只是集成了 Braintree,但找不到我应该如何获得交易确认(意味着它已正确“收费”)。当我创建一个“transaction.sale”(包括 submitForSettlement)时,我总是得到(沙箱)一个指示状态“已提交结算”的响应,并且直到 Braintree 全局处理它(晚上, ETC。)。我也找不到相关的 webhook 来获得付款确认(因为我目前正在使用 PayPal - IPN)。

When/how 我能否收到付款确认信息,以便“交付”购买的商品?通过检查您的文档,就好像您要到第二天才能得到确认……它究竟是如何工作的?

谢谢!


回答

嗨纳乔,

感谢联系!

Braintree 交易要经过几个步骤,其中第二个步骤是提交结算。这意味着钱已经开始从客户账户中移动,并且是交易提交后的即时状态;提交后不可能立即获得 'settled' 或 'complete' 状态。处于此状态的交易通常会在 24 小时内进入结算,然后结算,但这可能取决于您的处理银行。

从提交结算到结算时交易失败的情况非常少见,因为金额在提交结算之前已经被授权。授权交易意味着资金在客户账户中被搁置一段时间,具体时间取决于付款方式,直到结算为止。我们会立即从处理银行获得有关授权是否成功的响应,您将在 Braintree_Transaction 响应对象中看到。

因此,您通常可以依靠提交结算的状态来反映有效、成功的交易。

我们不为交易提供 webhooks - 相反,我们的 API 旨在通过响应对象提供即时反馈。因此,我们只为非 API 调用触发的异步事件(例如订阅计费或支付资金)提供网络挂钩。我们鼓励我们的客户利用我们的 API 响应,以及我们的报告系统和全面的搜索呼叫选项,以获得他们需要的任何额外功能。

如果您想提取交易的更新状态,例如确认付款已结算,您可以使用 Transaction.find() API 请求,传入交易 ID 并读入来自响应对象的状态。这可以很容易地 运行 作为一个脚本,它遍历前几天的交易 ID 并每天更新每个交易的状态。

我希望这能更清楚地解释交易过程并为您提供一些选择!

亲切的问候, 布伦特里


万一有帮助!

我也向 Braintree 问了同样的问题,我得到了相同的答案来检查 Transaction::find() 的交易,然后询问了 [=54 后交易未结算的可能性=]状态,这里是回复,非常清楚和完整:


嗨阿尔班,

感谢您提出这个问题!乐于助人。

结算被拒绝:

在极少数情况下,已提交结算的交易会进入结算拒绝状态。对于销售,这只会发生在 PayPal 交易中。对于退款,PayPal 和信用卡交易都可能发生。

如果处理者拒绝解决销售或退款请求并且结果不成功,则会发生这种情况。发生这种情况的原因有很多,但处理商结算响应代码可能包含有关交易被拒绝原因的更多信息。同样,这种状态很少见,只有某些类型的交易会受到影响。

  • PayPal 销售:我们建议在向客户发货或提供服务之前检查所有 PayPal 销售交易的结算状态。要减少这些类型的拒绝,请在创建时或创建后 3 天内提交您的 PayPal 交易以进行结算。
  • PayPal 退款:我们建议联系 PayPal 了解有关被拒绝的退款的详细信息。
  • 信用卡退款:结算拒绝可以是硬的也可以是软的,就像授权一样。在支持立即拒绝退款的地区,如果处理方硬拒绝,我们将 return 结算拒绝。

结算待定:

此状态表示交易尚未完全结算。这种状态很少见,并不总是表示结算有问题。只有某些类型的交易会受到影响。

--> PayPal 销售:

  • 如果使用多个部分结算:结算待定是交易流程的正常部分。父授权将保持此状态,直到所有子交易都已结算或授权到期。有关更多详细信息,请参阅多次部分结算参考。
  • 如果不使用多次部分结算:几乎所有的 Settlement Pending PayPal 交易都会在没有干预的情况下进行结算,所以我们总是 return 一个成功的结果。一般来说,您可以预期这些会在几天内更新为已结算,因为我们会通过 PayPal 确认它们的状态。在极少数情况下,我们无法解决结算待处理交易,我们会与您联系以解决问题。

--> 信用卡、Android Pay 和 Apple Pay 销售:如果您已联系我们启用使用此状态的特定 API 功能,您将只会看到结算待授权。

我希望能提供见识,Alban!如果还有其他问题,请告诉我们。

最好的, xxxxx。 布伦特里