Payment Retries 会按退避计划自动重新收取失败的订阅续费付款。重试成功后,订阅会恢复为
active,无需客户采取任何操作,也无需进行集成工作。什么是付款重试?
当订阅续费付款失败时,订阅会转为on_hold;如果你设置了宽限期,则会转为 past_due。启用 Payment Retries 后,Dodo Payments 会按计划使用客户已保存的付款方式重新收款,直到收款成功或恢复窗口关闭。
重试可以挽回因临时故障而损失的收入,例如卡片被临时冻结、客户稍后充值导致的资金不足,或短暂的网络错误。客户不会收到电子邮件,也无需进行任何操作。
Payment Retries 仅适用于订阅续费付款。订阅的首次付款(mandate setup)、一次性付款、套餐变更费用和按需费用不会重试。
付款重试如何工作
1
Renewal fails
订阅续费付款失败,订阅会转为
on_hold;在宽限期内则会转为 past_due。2
Retryability check
Dodo Payments 会检查失败的错误代码。Soft declines,例如资金不足、一般性拒付或处理错误、网络错误,可以重试。Hard declines 会结束重试链,因为再次尝试不会改变结果。没有错误代码的失败会被视为 hard decline。
3
Scheduled retry
如果拒付可以重试,且下一次尝试处于恢复窗口内,Dodo Payments 就会安排该次尝试。每次重试都会对客户已保存的付款方式执行 off-session 收款,并且每次延迟时间都从上一次失败开始计算。
4
Recovery
首次重试成功后,订阅会恢复为
active,下一个账单日期会顺延至成功重试后一个计费周期。如果恢复窗口在任何一次重试成功前关闭,重试会停止,订阅会保留当前状态,例如 on_hold。配置付款重试
在控制面板的 Settings → Recovery 中开启并配置 Payment Retries。
Payment Retries settings under Settings → Recovery
恢复窗口从失败续费对应的发票创建时开始计算。只有当截至某次尝试的所有延迟总和处于窗口范围内,并且窗口仍处于开放状态时,Dodo Payments 才会安排该次尝试。
重试计划
重试间隔会逐步延长。只要每次尝试都处于恢复窗口内,Dodo Payments 最多会执行 8 次尝试:订阅状态转换
重试会使订阅在以下状态之间转换:订阅取消后,其重试链会结束,不再进行后续尝试。其他所有状态(
on_hold、past_due、expired、pending、failed)都会继续重试,因为未结清的续费发票对应的是客户已经使用过的期间,属于客户欠款。如果发票通过其他方式支付,例如客户更新了付款方式,或者你将客户添加到阻止列表,重试也会停止。Subscription Webhook Payloads
查看订阅生命周期事件的完整 webhook payload schema。
可重试与不可重试的失败
最近一次失败的错误代码决定重试链是否继续:重试 hard decline 不会改变结果,因此一旦发生 hard decline,重试链就会立即结束。在这些情况下,将 Payment Retries 与Subscription Dunning结合使用,以要求客户提供新的付款方式。有关每个代码的类型,请参阅Transaction Failures。
按需重试
你无需等待下一次计划中的尝试。当订阅处于on_hold 状态时,可以在控制面板中失败付款的详情页面发送重试,或使用 POST /payments/{payment_id}/retry。手动重试独立于计划运行:不会消耗或推迟自动尝试,即使 Payment Retries 已关闭也可以使用。请参阅Manual Payment Retry。
Payment Retries 与 Dunning
Payment Retries 和 Subscription Dunning 用于恢复不同类型的失败:
同时开启两者以获得最广泛的覆盖:自动重试可以捕获短暂故障,而 dunning 可以召回需要更换付款方式的客户。
相关内容
Manual Payment Retry
立即发送重试,而不是等待下一次计划中的尝试。
Subscription Dunning
通过电子邮件提醒客户更新付款方式。
Abandoned Cart Recovery
通过恢复电子邮件挽回被放弃或失败的结账。
Subscriptions
恢复流程在这些订阅状态之间转换。
Subscription Webhooks
响应
subscription.on_hold 和 subscription.active 事件。