检索Braintree客户的订阅

17

我想要收集一个Braintree客户的所有订阅信息。当我浏览到网关中客户页面时,可以看到他们的订阅,但似乎不存在像subscriptions这样的方法适用于Braintree::Customer,也无法通过customer_id搜索Braintree::Subscriptions

有一些绕路的方式可以访问客户的所有订阅,但非常缓慢。例如,我可以检索客户的所有交易记录,并为每个交易获取subscription_id(如果存在),然后使用该ID检索订阅信息。 这将涉及与Braintree API的大量通信,因此我希望有更有效的解决方案。

哦,我是在Rails中编写程序,但是这个问题似乎并不特定于Rails。

1个回答

30

我在 Braintree 工作。

顾客有一个包含credit_cards 数组的,每个信用卡都有一个subscriptions 数组。因此,如果您想获得某个客户的所有订阅,可以执行以下操作:

customer.credit_cards.map(&:subscriptions).flatten

1
需要更改什么才能考虑通过PayPal订阅? - Christoph Geschwind
3
在 Ruby 中,您可以执行 customer.payment_methods.map(&:subscriptions).flatten 以获取它们所有的付款方式,或者使用 customer.credit_cardscustomer.paypal_accounts 分别获取它们。 - agf
3
订阅有一个付款方式令牌,因此您可以查找付款方式。付款方式有客户ID,因此您可以查找客户。请参考以下链接:@SonnyParlin Subscriptions have a payment method tokenPayment methods have a customer id,以及find a payment methodfind a customer的页面。 - agf
3
我正在将node.js与braintree订阅集成。Braintree提供了很好的文档,但是缺少一个完整的实现订阅流程的指南,这使我花费了一整天的时间来弄清楚它。因此,我撰写了一份指南,以帮助任何想要在其服务中使用braintree订阅的人,您可以在这里找到指南:http://enormers.com/blog/a-brief-guide-to-implement-braintree-subscription-with-node-js-and-mongodb/。 - Mark Thien
1
@agf 你们为什么不能在订阅响应对象中放置客户ID呢?我们遇到了一个问题,即迁移与旧应用程序相关的数据时,有数百个已取消的订阅没有payment_method_token,因此我们无法将订阅与客户关联起来。Braintree的控制面板中也没有与订阅相关的客户信息,所以我想即使API也不知道它们属于谁。 - trueinViso
显示剩余15条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接