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

如何使用Stripe .NET SDK为订阅设置计费周期限制

如何用Stripe.NET为订阅设置计费周期限制

核心逻辑

创建订阅计划(Subscription Schedule)时,Stripe会自动生成对应的关联订阅,无需单独调用SubscriptionCreateAsync接口。你可通过订阅计划的阶段(Phase)设置两种类型的周期限制:

  • 固定付款次数:使用Iterations属性定义该阶段执行的计费周期次数
  • 具体结束日期:使用EndDate属性定义订阅的终止时间

代码示例

方式1:设置固定付款次数(比如10次)

var now = DateTime.UtcNow;
var subscriptionScheduleOptions = new SubscriptionScheduleCreateOptions
{
    Customer = model.CustomerId,
    StartDate = now,
    Phases =
    [
        new SubscriptionSchedulePhaseOptions
        {
            Items =
            [
                new SubscriptionSchedulePhaseItemOptions
                {
                    Price = model.PriceId,
                    Quantity = 1,
                },
            ],
            // 该阶段执行10次计费周期(如价格为月度计费,则自动执行10个月后结束)
            Iterations = 10,
        }
    ],
    PaymentBehavior = "allow_incomplete",
    DefaultPaymentMethod = model.PaymentMethodId,
};

var subscriptionScheduleService = new SubscriptionScheduleService();
var subscriptionSchedule = subscriptionScheduleService.Create(subscriptionScheduleOptions);

// 创建完成后,可通过以下属性获取关联的订阅对象
var associatedSubscription = subscriptionSchedule.Subscription;

方式2:设置具体结束日期(比如10个月后)

var now = DateTime.UtcNow;
var subscriptionScheduleOptions = new SubscriptionScheduleCreateOptions
{
    Customer = model.CustomerId,
    StartDate = now,
    Phases =
    [
        new SubscriptionSchedulePhaseOptions
        {
            Items =
            [
                new SubscriptionSchedulePhaseItemOptions
                {
                    Price = model.PriceId,
                    Quantity = 1,
                },
            ],
            // 设置订阅终止日期
            EndDate = now.AddMonths(10),
        }
    ],
    PaymentBehavior = "allow_incomplete",
    DefaultPaymentMethod = model.PaymentMethodId,
};

var subscriptionScheduleService = new SubscriptionScheduleService();
var subscriptionSchedule = subscriptionScheduleService.Create(subscriptionScheduleOptions);

为已有订阅添加周期限制

如果已经存在一个订阅,可通过订阅计划关联该订阅并添加限制:

var existingSubscriptionId = "your-existing-subscription-id";

var scheduleOptions = new SubscriptionScheduleCreateOptions
{
    FromSubscription = existingSubscriptionId,
    Phases =
    [
        new SubscriptionSchedulePhaseOptions
        {
            // 保留原订阅的商品配置
            Items = new List<SubscriptionSchedulePhaseItemOptions>
            {
                new SubscriptionSchedulePhaseItemOptions
                {
                    Price = model.PriceId,
                    Quantity = 1,
                }
            },
            // 设置剩余需要执行的计费周期次数
            Iterations = 5,
        }
    ]
};

var subscriptionScheduleService = new SubscriptionScheduleService();
var schedule = subscriptionScheduleService.Create(scheduleOptions);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:50:11