【问题标题】:Stripe - how to list active and trialing subscriptions togetherStripe - 如何同时列出活动订阅和试用订阅
【发布时间】:2021-05-30 07:52:56
【问题描述】:

我正在使用带有 Stripe 的 NodeJ。我想以一种很好的方式检索一个客户的所有活动和试用订阅。到目前为止,我只能单独检索订阅。

const activeSubscriptionsObject = await stripe.subscriptions.list({
    customer: customerId,
    status: 'active'
  });



const trialingSubscriptionsObject = await stripe.subscriptions.list({
    customer: customerId,
    status: 'trialing'
  });

我应该怎么做才能获得同时包含试用和活动订阅的订阅对象?

【问题讨论】:

  • 您是否尝试过将值作为数组传递,如status: ['active', 'trialing'] 或逗号分隔值,如status: 'active,trialing'?我不知道它是否会起作用,不幸的是他们没有在文档中提到它。
  • @Molda 我尝试使用status: ['active', 'trialing']。它没有用。

标签: node.js stripe-payments


【解决方案1】:

您无法像您要求的那样检索两个显式状态(而不是其他状态)。这样做的方法是:

  1. 如你所愿,分别检索activetrialing,然后合并结果;或者,
  2. 使用status=all 请求列表以获取所有内容 (API ref),然后自行过滤结果。

像这样:

const allSubs = await stripe.subscriptions.list({
  customer: customerId,
  status: 'all'
});
const statuses = ['active', 'trialing'];
const trialAndActiveSubs = allSubs.data.filter(sub => statuses.includes(sub.status));

【讨论】:

  • 您的 allSubs 是一个复杂对象,格式为:stripe.com/docs/api/subscriptions/list。通过这个对象过滤不是那么容易
  • 是的,你是对的,对不起。我错过了data 层。在上面修复以使用allSubs.data.filter(...)
猜你喜欢
  • 1970-01-01
  • 2018-01-02
  • 2017-08-20
  • 2017-07-03
  • 2017-12-27
  • 2016-11-30
  • 2021-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多