Stripe 试用期结束时,没有付款方式会怎样

答案取决于商家在 trial_settings.end_behavior.missing_payment_method 里配置了哪个选项。Stripe 在试用优惠结束时读取这一设置,按它决定后续动作,共三种:create_invoice(默认)、cancel、pause。所以“试用结束一定扣款”并不成立——只有 create_invoice 才会尝试生成账单,cancel 或 pause 根本不会走到收款这一步。

试用结束、付款方式、配置分支
本文涉及的概念与核对环节。

三种处理方式分别发生什么

  • create_invoice(默认):Stripe 生成一张发票。如果这张发票无法支付,订阅转入 past_due 状态。
  • cancel:订阅被取消并结束。Stripe 发出 customer.subscription.deleted 事件,商家应据此停止向该客户提供产品访问。
  • pause:订阅进入暂停状态,Stripe 发出 customer.subscription.paused 事件。暂停期间不会开票,直到订阅恢复。恢复需要显式操作;资料表述为恢复“可能”生成发票和对应的 Payment Intent,并非每次恢复都必然生成。若生成了这笔款项,需付清后订阅才会离开暂停状态。

这个行为在每个试用优惠结束时都会应用一次,不是只在账户层面生效一次。

一个可复算的判断例子

假设某商家把 missing_payment_method 设为 pause,客户在试用期内始终没有绑定任何付款方式:

  1. 试用优惠到期,Stripe 读取配置,命中 pause;
  2. 订阅转入暂停,触发 customer.subscription.paused;
  3. 暂停期间不开票,也不产生扣款;
  4. 客户之后补上付款方式,商家显式恢复订阅,此时可能生成发票和 Payment Intent;
  5. 若生成了这笔款项,付清后订阅才转为活跃。

同一场景下若配置是默认的 create_invoice,第 2 步就换成生成发票;发票付不掉,订阅进入 past_due,而不是暂停。两种配置结果不同,商家的访问控制逻辑也必须跟着不同。

一个容易漏掉的覆盖规则

预计费(prebilling)会覆盖 missing_payment_method 的设置,但覆盖有前提:预计费延伸到试用结束之后。满足这一条件时,即使配置写的是 pause 或 cancel,该结束行为也不再生效,订阅在试用结束后按正常计费周期继续。也就是说,“我设了暂停,所以不会出账单”这个推断在预计费延伸到试用结束之后时不成立。

商家可以执行的核对动作

  1. 在 Dashboard 或 API 中确认每个含试用优惠的订阅(或价格配置)实际使用的 missing_payment_method 值,不要假设它是 pause。
  2. 检查是否启用了预计费、预计费是否会延伸到试用结束之后;若是,重新评估试用结束时的预期行为。
  3. 核对事件处理:收到 customer.subscription.deleted 时撤销访问;收到 customer.subscription.paused 时可按需要撤销访问,等客户补付款方式并恢复后再授予。
  4. 区分两类提醒:customer.subscription.trial_will_end 的触发时间由 Dashboard 的 Trial ending events 设置决定,默认是试用结束前 3 天,试用短于该间隔时立即触发;Stripe 托管的提醒邮件(Stripe-hosted reminder emails)则在试用结束前 7 天发出。前者是事件,后者是邮件,不能混为一谈。

另外,含无付款方式试用优惠的订阅与旧式免费试用受相同限制,其中包括不支持按量计费(metered)项目。配置前应确认订阅项目类型是否落在这一限制内。

把上述配置、预计费状态和事件处理三者对齐,才能确定试用结束时客户究竟是被取消、被暂停,还是收到一张可能付不掉的发票。

原始资料

docs.stripe.com

上一篇 Stripe 自动扣款和发送发票对付款方有什么区别