我最近切换到最新的条带API,计划已转移到产品中。一切都运转良好,但改变计划也保留了以前没有发生的旧计划。
如果我订阅了用户计划A,那么将计划更改为计划B,而不是为用户显示一个计划,而是显示两个计划。
因此,如果我尝试切换到Plan A,则会抛出错误:
Stripe.StripeException: Cannot add multiple subscription items with the same plan:
以下是我的代码,在升级之前工作正常:
public async Task SetPlan(string subscriptionId, string plan)
{
var subscriptionService = new StripeSubscriptionService();
var items = new List<StripeSubscriptionItemUpdateOption>()
{
new StripeSubscriptionItemUpdateOption() { PlanId = plan }
};
var subscriptionOptions = new StripeSubscriptionUpdateOptions()
{
CancelAtPeriodEnd = false,
Prorate = true,
Items = items
};
await subscriptionService.UpdateAsync(subscriptionId, subscriptionOptions);
}
答案 0 :(得分:1)
此处的通话是添加新项目/计划,而不是替换现有项目。
要将一个计划替换为另一个计划,您还需要在Id
中传递当前订阅项目的ID以及新计划ID,以便实现此目的。