如何在Stripe中预定义含试用周期的订阅计划并在创建订阅时引用?
如何在Stripe中预定义含试用周期的订阅计划并在创建订阅时引用?
我来帮你一步步理清楚这个问题,其实在Stripe里预定义带试用周期的订阅计划(关联产品与价格),再在代码里引用是很省心的操作,具体步骤如下:
第一步:在Stripe后台创建带默认试用周期的订阅计划
你需要先在Stripe控制面板里创建产品,并配置好带试用规则的订阅价格:
- 登录Stripe后台,进入「产品(Products)」页面,点击「创建产品」
- 填写产品基础信息后,在「定价」板块选择「订阅」类型
- 找到「试用周期」选项,设置你想要的默认试用时长(比如1个月),完成后保存配置
- 配置完成后,这个产品对应的价格会自动绑定你设置的试用规则,你可以在价格详情页复制它的
Price ID(格式一般为price_xxxxxx)
第二步:在代码中引用这个预定义的计划(Price ID)
回到你的代码里,不需要再手动设置TrialEnd,直接使用这个带默认试用的Price ID即可,代码可以简化成这样:
// Create subscription SubscriptionCreateOptions options = new() { Customer = customerId, Items = [] }; // 添加预定义好的带试用规则的Price ID options.Items.Add(new() { Price = "你的预定义Price ID" }); // Create subscription var service = new SubscriptionService(); await service.CreateAsync(options);
如果你的配置文件里已经存储了这个预定义的Price ID,那Settings.ParsePriceIds()直接返回该ID即可,原来的循环逻辑也能正常工作。
关于文档中「TrialEnd覆盖计划默认试用」的说明
正如你看到的文档描述:
If set, trial_end will override the default trial period of the plan the customer is being subscribed to.
如果你的代码里设置了TrialEnd,它会覆盖你在Stripe后台给计划设置的默认试用周期。所以如果想使用计划的默认试用规则,就不要在代码里设置TrialEnd;如果需要给特定用户自定义试用时长,再手动设置TrialEnd即可,它会优先生效。
这样一来,你就可以把所有定价和试用规则统一在Stripe后台管理,不用在代码里硬编码这些规则,后续维护会方便很多~
备注:内容来源于stack exchange,提问作者Jonathan Wood
相关产品推荐
相关产品推荐

