Braintree订阅交易,如何检测是否跳过了结算?

时间:2016-11-04 13:03:36

标签: transactions braintree subscriptions braintree-data braintree-sandbox

我正在使用braintree java sdk进行订阅。

我有一个订阅对象,我想获得此订阅的所有交易列表。

我知道有一个名为getTransactions()的方法,但这不会返回出现在我的braintree保险库中的所有交易。

任何人都可以告诉我如何获得交易清单,包括金额为0.0的跳过交易?

在查看braintree保险库中的下标时,您可以看到状态“Billing Skipped”,如何在我自己的应用程序中使用java生成这样的列表? braintree是如何做到这一点的?

Transactions List Produced In Braintree Vault

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

如果您想通过Braintree的API跟踪跳过的结算事件,您将无法直接查询订阅对象。订阅对象确实包含一系列关联的事务,但是这不会报告跳过的计费事件。您在控制面板中看到的计费跳过事件是仅存在于控制面板中且不能通过API直接获得的工件。 Braintree的API不允许使用zero amount transaction,因此无法通过API中的事务对象传递此事件。

如果您想要实现一种方法来检测订阅何时完全在API中创建跳过的结算事件,我们建议使用Braintree webhooks并专门设置解析以检测subscription_charged_successfully webhook。此webhook将发送到您服务器的URL,以便成功进行交易以及计费跳过事件。此webhook本身将包含时间戳,种类和发送的订阅对象。使用它来检测计费跳过事件的最佳方法是将来自webhook的时间戳与来自订阅对象的事务数组的第一个事务进行比较(数组中的第一个事务将始终是最新的事务),并查看事务的created_at时间戳。如果日期不匹配,那么您将知道此webhook是由于结算跳过事件而发送的。