自动续订订阅:3 天试用结束后大量用户扣款失败并进入账单宽限期(美国区 / DID_FAIL_TO_RENEW)
标题:
iOS 自动续订订阅:3 天试用结束后大量用户扣款失败并进入账单宽限期(美国区 / DID_FAIL_TO_RENEW)
大家好,我是开发者,想请教一个订阅扣款/续费异常的问题。
现象(问题描述)
我的 App 提供自动续订订阅(1 个月,含 3 天免费试用)。近期观察到一个非常异常的现象:
- 约 70% 的用户在“免费试用结束 → 首次扣款续费”这个节点,出现续费失败并进入账单宽限期(Billing Grace Period)
- 在我开启宽限期以前,同样比例的用户会从“试用结束”直接变为已过期(Expired)(看起来是同一批“扣款失败”被不同策略呈现)
用户主要都是美国用户(storefront: USA),未在中国区发布。
订阅配置(App Store Connect)
- 产品类型:Auto-Renewable Subscription(自动续订订阅)
- 订阅周期:1 month
- Product ID:monthly_trial(如需可替换为实际)
- 价格(美国):$12.99 / month
- 免费试用:3 days(P3D)
- 环境:Production
- 其他:Family Sharing 未开启(如有影响也请指正)
技术与接入情况
- iOS 客户端:目前还是 StoreKit 1(存在使用 SKReceiptRefreshRequest 刷新收据的逻辑)
- 服务端:已接入 App Store Server Notifications V2,并在服务端做订阅状态更新与权益判断
- 宽限期内:目前策略是继续给用户订阅权益,并提示用户检查/更新 Apple ID 付款方式
脱敏后的通知示例(App Store Server Notifications V2)
下面是一条典型事件(仅保留关键字段,ID 做脱敏处理):
事件 1:用户开始订阅(试用)
- notificationType:SUBSCRIBED
- subtype:INITIAL_BUY
- offer:FREE_TRIAL(3 days)
- price:0
- storefront:USA(143441)
- originalTransactionId:2000029926****436
- purchaseDate(ms):1768156450000
- expiresDate(试用结束,ms):1768415650000
事件 2:试用结束尝试扣款失败,进入宽限期
- notificationType:DID_FAIL_TO_RENEW
- subtype:GRACE_PERIOD
- expirationIntent:2(Billing error)
- isInBillingRetryPeriod:true
- renewalPrice:12990(USD 价格对应 $12.99)
- renewalDate(ms):1768415650000
- gracePeriodExpiresDate(ms):1769798050000
- transaction expiresDate(ms):1769798050000
- originalTransactionId:2000029926****436
- appTransactionId:7051882678****984
(说明:以上时间戳/ID 已脱敏;如需要我也可以补充更多样本字段,但会继续脱敏。)
我想请教的问题
- 有没有人遇到过类似情况:美国区用户在试用转正时大量出现 DID_FAIL_TO_RENEW / GRACE_PERIOD?这更可能是付款方式/风控层面的正常现象,还是可能存在某段时间 App Store 扣款通道异常?
- 对于 StoreKit 1 + receipt / 服务端通知 的组合,权益判断上是否有常见踩坑点?(例如:只看 expiresDate 导致误判、对 billing retry/grace 的处理不一致等)
- 在用户处于 Billing Retry / Grace Period 时,Apple 官方建议的用户引导路径是什么?(目前仅提示用户去 Apple ID 更新付款方式)
- 是否有必要迁移到 StoreKit 2 才能更可靠地识别 .inGracePeriod / .inBillingRetryPeriod?还是说这与扣款成功率本身无关,主要只影响“我们如何判断权益”?
已做/已排查
- 已确认订阅价格与试用配置在 App Store Connect 中无误
- 目前宽限期内不降级权益
- 现象仍然存在:宽限期/扣款失败比例异常偏高(约 70%)
非常感谢大家提供排查方向或类似案例 🙏
如果需要我补充更多字段/更多样本,我也可以继续脱敏后补充。
iPhone 15 Pro Max, iOS 26