You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stripe SubscriptionItemUsageRecordService.Create()使用疑问及文档缺失求助

Stripe 计量使用量添加相关问题解答

1. 如何获取CreateAsync的parentId参数值

CreateAsync的第一个参数parentId对应的是订阅项目ID(subscription_item ID),而非客户ID。获取方式如下:

  • 通过Stripe Dashboard:找到对应客户的订阅,进入订阅详情页,在「价格」区域可找到对应的subscription_item ID
  • 通过API获取:先根据客户ID查询该客户的所有订阅,再从订阅的items列表中提取目标计量价格对应的id字段,示例代码:
var subscriptionService = new SubscriptionService();
var subscriptions = await subscriptionService.ListAsync(new SubscriptionListOptions
{
    Customer = "你的客户ID"
});

// 实际根据业务逻辑筛选目标订阅项目,此处仅作示例
var targetSubscriptionItemId = subscriptions.Data.First().Items.Data.First().Id;

2. 正确判断调用成功/失败的方式

Stripe .NET SDK采用异常优先的错误处理设计,不会返回null:

  • 调用成功时,CreateAsync会返回有效的UsageRecord对象,包含使用记录的详细信息
  • 调用失败时(如参数错误、权限不足、资源不存在等),会抛出StripeException,可通过捕获该异常处理错误,示例:
try
{
    var options = new SubscriptionItemUsageRecordCreateOptions
    {
        Quantity = count,
        Timestamp = DateTime.UtcNow
    };
    var service = new SubscriptionItemUsageRecordService();
    UsageRecord usageRecord = await service.CreateAsync(targetSubscriptionItemId, options);
    // 执行到此处说明调用成功,可基于usageRecord做后续操作
}
catch (StripeException e)
{
    // 根据错误信息或错误码做针对性处理
    Console.WriteLine($"调用失败:{e.Error.Message},错误码:{e.Error.Code}");
}

Stripe SDK约定用异常传递API层面的错误,并非文档不完善,所有业务或请求错误都会以结构化的StripeException抛出。

内容的提问来源于stack exchange,提问作者Jonathan Wood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 07:32:14