如何从Stripe中检索非活动(已取消)订阅

Bar*_*SIH 8 stripe-payments stripe.net

我想确认客户订阅已被取消.该条纹API文档仅指返回"主动"订阅.如何获得所有订阅的列表?

列出订阅

您可以看到客户的有效订阅列表.

GET https://api.stripe.com/v1/customers/{CUSTOMER_ID}/subscriptions
Run Code Online (Sandbox Code Playgroud)

检索客户的订阅

默认情况下,您可以直接在客户对象上查看存储在客户上的10个最新活动订阅,但您也可以检索有关客户的特定活动订阅的详细信息.

GET https://api.stripe.com/v1/customers/{CUSTOMER_ID}/subscriptions/{SUBSCRIPTION_ID}
Run Code Online (Sandbox Code Playgroud)

bet*_*son 8

截至 7/06/16 API 更新:

您现在可以通过在列出订阅时指定 status=canceled 或 status=all 来查看取消的订阅。此外,您现在可以通过其 ID 检索已取消的订阅。

https://stripe.com/docs/upgrades#api-changelog

因此,例如,如果您使用 ruby​​ API,您应该能够像这样获取取消的订阅:

Stripe::Subscription.all(status: 'canceled')
Run Code Online (Sandbox Code Playgroud)

并按照您在上面的要求获取所有订阅的列表,如下所示:

Stripe::Subscription.all(status: 'all')
Run Code Online (Sandbox Code Playgroud)

  • 我们的大部分代码使用旧版本的 API,因此我们的条带帐户仍设置为该版本,因此要在我们的新项目中使用新版本,我必须在能够取消之前使用 stripe.setApiVersion(versionString) 调用订阅。参考:https://stripe.com/docs/api#versioning (4认同)
  • 使用“已取消”或“全部”作为状态时,仍会出现“无效状态:必须是试用、活动、过期或未付款之一” (3认同)

Lar*_*man 5

对不起,这里有困惑!Stripe仅返回活动订阅; API不会返回已取消的API.但是,您可以通过在webhook URL中查看该事件来了解订阅已取消.而且,如果您的网站正在取消取消请求(而不是因付款失败而自动取消),如果该请求失败,我们会抛出异常.

希望有所帮助,拉里

PS我在Stripe的支持工作.

  • 这似乎是糟糕的设计 - 如果我们直接通过ID查询它们,我们至少应该能够通过API检索取消的订阅. (14认同)
  • 同样在Python库中,返回的异常是:`stripe.error.InvalidRequestError`.有一个更明确的异常,如`stripe.error.CancelledSubscription`会更有帮助. (2认同)
  • 我相信从 2016 年开始,情况已不再如此。请参阅:https://stripe.com/docs/upgrades#2016-07-06。 (2认同)