Stripe测试订阅已设自动扣费却未自动发起扣款求助
问题现象
测试订阅的collection_method已设置为charge_automatically,但使用测试时钟模拟新账单周期时,仅生成草稿发票,未自动发起扣款;新订阅创建或更换产品时自动付款功能正常;发票页面显示提示:
"This draft invoice was generated by a subscription, but automatic collection was turned off."
手动扣费操作无异常,事件页面显示付款计划在1427天后,此前功能正常且排除测试时钟问题,新建价格、产品及订阅后问题仍未解决。
排查与解决步骤
检查客户级别的收款设置
订阅的collection_method会继承客户对象的invoice_settings.collection_method配置,若客户级别设置为send_invoice,会覆盖订阅级别的charge_automatically。- 通过Stripe Dashboard查看客户详情的「发票设置」确认收款方式;
- 或用API查询:
stripe customers retrieve <customer_id>,若返回的invoice_settings.collection_method为send_invoice,将其修改为charge_automatically。
核查订阅的
days_until_due参数
若订阅设置了非0的days_until_due(哪怕collection_method是自动扣款),Stripe会生成草稿发票并等待到期后再扣款,1427天的异常提示大概率是该参数被错误设置。- 查看订阅详情的API响应或Dashboard中的账单设置,确认
days_until_due值,将其重置为0或移除该参数。
- 查看订阅详情的API响应或Dashboard中的账单设置,确认
检查草稿发票的
auto_advance属性
草稿发票的auto_advance若为false,会阻止系统自动推进发票状态并发起扣款。- 用API查询发票详情:
stripe invoices retrieve <invoice_id>,查看auto_advance值; - 若为
false,执行更新:stripe invoices update <invoice_id> --auto_advance true,触发自动扣款流程。
- 用API查询发票详情:
确认账户全局自动收款设置
进入Stripe Dashboard的「设置」→「账单设置」,确认“自动收取发票款项”处于开启状态,全局设置优先级会覆盖部分订阅级别的配置。排查订阅创建时的隐性参数
若创建订阅时附带了invoice_settings.days_until_due或其他影响收款逻辑的参数,可能导致后续账单周期异常。重新创建订阅时,仅保留必要参数(如collection_method: charge_automatically),避免冗余配置干扰。
内容的提问来源于stack exchange,提问作者Faizan Ahanger

