[英]How to change subscription from PlanA to PlanB using Stripe with Python/Django
我可以使用以下代码为客户创建 Stripe 订阅:
subscription = stripe.Subscription.create(
customer=stripe_customer_id,
items=[
{ "plan": stripe_plan_A },
]
)
这是我在 Stripe Dashboard 上看到的。
我想将升级订阅更改为 stripe_plan_B,但同时保持 rest 的配置相同。
我已经尝试使用以下代码将计划从 stripe_plan_A 更改为 stripe_plan_B; 但是,以下命令会导致同时拥有两个订阅,而不是一个订阅。
stripe.Subscription.modify(
subscription.id,
items=[
{ "plan": selected_membership.stripe_plan_B },
]
)
正如您在下面看到的,我们可以为同一用户同时进行两个订阅。 (条纹文档说你可以有 n 个订阅)
对此有什么建议,这样我就可以在计划之间流畅地改变吗?
价格取代计划,建议使用价格来创建订阅。 我建议在此处参考迁移价格以计划迁移: https://stripe.com/docs/billing/migration/migrating-prices
您可以直接使用订阅项目 ID 更新订阅。 通过设置items[0][id] ,您表示您想要更新现有的 SubscriptionItem,并且可以更新它以使用不同的价格。 例如,
sub = stripe.Subscription.modify(
sub.id,
items=[
{"id": {{SUB_ITEM_ID}}, "price": {{PRICE_B_ID}} },
],
)
或者,您也可以删除现有的 SubscriptionItem,并将deleted
参数设置为true
,然后添加新的 SubscriptionItem。 例如,
sub = stripe.Subscription.modify(
sub.id,
items=[
{"id": {{SUB_ITEM_ID}}, "deleted": "true" },
{"price": {{PRICE_B_ID}} },
],
)
我在 Stripe 的页面中找到了以下答案,请在此处输入链接描述:
subscription = stripe.Subscription.retrieve('sub...')
stripe.Subscription.modify(
subscription.id,
cancel_at_period_end=False,
proration_behavior='create_prorations',
items=[{
'id': subscription['items']['data'][0].id,
'price': 'price_...',
}]
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.