如果客户重新订阅有试用期的计划会怎样?
更准确地说:
他们还能再次享受试用期吗?
我如何确定用户是否已经使用了试用期,以便我可以在没有试用期的情况下处理他们的重新订阅?
我的解决方案:
我检查客户是否取消了该计划的订阅。如果是这种情况,我会使用
trial_end
到 'now'
: 创建订阅
if len(stripe.Subscription.list(status='canceled', customer=stripe_customer_id, plan=plan_id)['data']) > 0:
stripe.Subscription.create(
customer=stripe_customer_id,
plan=plan_id,
trial_end='now')
else:
stripe.Subscription.create(
customer=stripe_customer_id,
plan=plan_id)
由于
Plan
已被 Price
取代,如果价格发生变化,仍然可以获得多次免费试用,所以我所做的就是在 metaData
上加上我本地的产品 ID,即订阅,然后迭代相关客户已取消的订阅,并检查是否有与给定 ID 匹配的项目,例如:Subscription
如果客户有很多取消的订阅,这不是最佳选择,但在我们的例子中,至少在 99% 的情况下,每个客户取消的订阅可能少于 10 个。