我正在为每位新客户创建订阅,并提供为期 1 个月的初始试用。
// Create subscription
SubscriptionCreateOptions options = new()
{
Customer = customerId,
Items = [],
TrialEnd = DateTime.UtcNow.AddMonths(1)
};
// Add subscription items
foreach (string price in Settings.ParsePriceIds())
options.Items.Add(new() { Price = price });
// Create subscription
var service = new SubscriptionService();
await service.CreateAsync(options);
TrailEnd
的文档指出:
如果设置,Trial_end 将覆盖客户所订阅计划的默认试用期。
我的问题是:如何指定一个指定试用期的计划(如文档中所述),然后在创建订阅时引用该计划?
在上面的代码中,
ParsePriceId()
从配置文件中解析任意数量的价格ID并将它们添加到订阅中。但如果我可以在 Stripe 中定义一个计划来指定所有定价和任何试验,那似乎会更容易。
在计划上指定试用是一项旧功能,不建议这样做。 对于使用旧方法的人来说,文档中提到了这一点,但您不应该构建在计划上设置试用期的新内容。
事实上,计划本身是遗留的,并已被价格取代,正如 Stripe 文档中提到的:
您现在可以使用 Prices API 更灵活地对订阅进行建模。它取代了 Plans API 并向后兼容以简化您的迁移。
也就是说,在技术上仍然可以创建计划并指定
trial_period_days
,但同样,不建议这样做。