Stripe:订阅创建后未收集初始支付方式时如何向用户收费
订阅选择:保留现有还是新建?
- 优先用已从
trial转为active的现有订阅,除非业务逻辑强制要求重建。新建订阅会丢失原订阅的历史数据(如试用账单记录、关联的客户元数据等),而现有订阅激活后,所有关联历史都会保留,完全符合Stripe的订阅生命周期设计。 - 仅当原订阅存在无法修复的配置问题(比如错误的价格计划、无效账单周期)时,才考虑新建订阅。但要提前通过Stripe API迁移必要的元数据和客户关联信息,尽可能减少数据丢失。
支付工具选择:Payment Intents还是订阅专用方法?
- 针对现有订阅激活(从trial到active):直接用Stripe的订阅专用方法。调用
Subscription.update()接口,若需客户补充支付信息,设置payment_behavior='default_incomplete';若已有客户支付方法,直接将支付方法ID关联到订阅的default_payment_method字段即可。这种方式完全适配订阅生命周期,Stripe会自动处理后续账单生成、扣款重试等逻辑。 - 针对添加支付方法:使用
PaymentMethod.attach()接口将支付方法关联到客户,再更新订阅的default_payment_method字段。无需手动调用Payment Intents——Payment Intents主要用于一次性支付或需确认的支付场景(如3D验证),订阅场景下Stripe会自动生成对应的Payment Intents处理扣款,无需你单独调用。 - 特殊场景:若订阅激活时需立即收取首笔费用且触发3D验证,Stripe的订阅更新流程会自动启动Payment Intent的确认流程,你只需配合前端处理Stripe Elements的验证步骤即可。
内容的提问来源于stack exchange,提问作者Kenzo
相关产品推荐
相关产品推荐

