我正在使用 Stripe.net 库对 Stripe API 进行调用。
我想获得各种计划的订阅者总数,但我不确定当前的 API 和/或 Stripe.NET 库是否可以做到这一点。
谁能提供任何关于这是否可能的见解?
我正在使用 Stripe.net 库对 Stripe API 进行调用。
我想获得各种计划的订阅者总数,但我不确定当前的 API 和/或 Stripe.NET 库是否可以做到这一点。
谁能提供任何关于这是否可能的见解?
我发现这行得通:(对不起,这是 PHP)
$subscriptions = \Stripe\Subscription::all(array('limit' => 1, 'plan' => 'plan-name-here', 'status' => 'trialing|active|past_due|unpaid|all', 'include[]' => 'total_count'));
echo $subscriptions->total_count;
没有直接要求这样做,但它很容易完成。
“列出所有客户”API 调用(Stripe.Net 中StripeCustomerService
的方法)返回每个客户的完整 JSON 对象,包括他们的订阅和计划信息。您可以轻松地遍历它并建立您的订阅者数量列表。List()
请注意,如果您有很多用户,则必须分块检索客户列表。API 调用的上限为 100 条记录(默认为 10 条)并接受偏移量。为了方便遍历列表,count
Stripe 的 JSON 响应中的属性是客户记录的总数。
因此,对于基本大纲,您的策略是:
List()
List()
,偏移 100 * 迭代我了解您正在为 .NET 实现此功能,但这里有一个示例 Ruby 实现:
limit = 100
last_customer = nil
while limit == 100 do
customers = Stripe::Customer.list(limit: limit, starting_after: last_customer)
# Do stuff to with customers
# the list is in customers.data
# save the last customer to know the offset
last_customer = customers.data.last.id
end
end
如果您使用的是Stripe.net
包,则可以使用StripeSubscriptionService
来获取计划的订阅列表。因此,您不需要遍历所有客户。
var planService = new StripePlanService();
var planItems = planService.List(new StripeListOptions()
{
Limit = 10 // maximum plans to be returned
});
foreach(var planItem in planItems)
{
var subscriptionService = new StripeSubscriptionService();
var stripeSubscriptions = subscriptionService.List(new StripeSubscriptionListOptions
{
PlanId = planItem.Id
});
// Do your calculation here
}
他们现在在他们的网站上有更好的 .NET 文档。你可以在这里找到完整的信息https://stripe.com/docs/api/dotnet