如何通过Stripe API创建暂停/草稿状态的订阅?
实现Stripe Connect订阅的手动批准延迟收费方案
完全可以通过Stripe API实现这个需求,以下是两种常用的可行方案:
方案1:使用草稿订阅(Draft Subscription)
创建订阅时将其置于草稿状态,直到你手动确认后才触发首次收费:
- 创建订阅时指定
collection_method: 'charge_automatically',同时设置payment_behavior: 'default_incomplete',订阅不会立即发起收费,处于待确认的草稿状态。 - 当你需要批准订阅时,调用订阅的
confirm接口,完成订阅激活并触发首次账单收费。 - Connect场景注意:所有API请求必须携带
stripe_account参数,指定关联的Connect账户ID,确保订阅归属正确。
创建草稿订阅的API调用示例
curl https://api.stripe.com/v1/subscriptions \ -u sk_test_your_secret_key: \ -d customer=cus_xxxxxx \ -d items[0][price]=price_xxxxxx \ -d collection_method=charge_automatically \ -d payment_behavior=default_incomplete \ -d stripe_account=acct_xxxxxx
手动批准(确认订阅)的API调用示例
curl https://api.stripe.com/v1/subscriptions/sub_xxxxxx/confirm \ -u sk_test_your_secret_key: \ -d stripe_account=acct_xxxxxx
方案2:创建暂停状态的订阅
通过设置订阅的暂停规则,让订阅暂时不生成账单,手动取消暂停后再收费:
- 创建订阅时设置
pause_collection[behavior]='keep_as_draft',此时订阅会被暂停,不会自动生成账单和发起收费。 - 需要批准时,更新订阅并移除
pause_collection参数,订阅会恢复正常状态,自动生成首次账单并完成收费。
创建暂停订阅的API调用示例
curl https://api.stripe.com/v1/subscriptions \ -u sk_test_your_secret_key: \ -d customer=cus_xxxxxx \ -d items[0][price]=price_xxxxxx \ -d pause_collection[behavior]=keep_as_draft \ -d stripe_account=acct_xxxxxx
手动批准(取消暂停)的API调用示例
curl https://api.stripe.com/v1/subscriptions/sub_xxxxxx \ -u sk_test_your_secret_key: \ -d pause_collection= \ -d stripe_account=acct_xxxxxx
额外注意事项
- 草稿订阅默认有7天的有效期,到期会自动取消,需注意在有效期内完成批准操作。
- 无论哪种方案,都需要确保客户已经关联了有效的支付方式(可通过SetupIntent提前收集)。
- Connect账户的权限需配置正确,确保你的平台账户拥有创建和管理该Connect账户下订阅的权限。
内容的提问来源于stack exchange,提问作者Fez Vrasta
相关产品推荐
相关产品推荐

