You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Get All Subscription Statuses与Transaction.currentEntitlements返回不一致的问题咨询

iOS订阅状态接口差异与解决方案

核心结论

直接改用Get Transaction History接口来获取完整订阅记录,才能正确计算用户的权益过期日期。这不是配置遗漏,而是两个接口的设计逻辑差异导致的:

  • Get All Subscription Statuses的定位是返回订阅组内的最新交易状态——不管旧订阅是否还在有效期,它只会优先展示最新的那条订阅记录;就算月度订阅过期了,它依然会保留这条最新的过期记录,不会自动切换回未过期的旧订阅。
  • 客户端的Transaction.currentEntitlements是从用户权益视角出发,返回所有当前有效的订阅权益,只要订阅没过期就会展示,和交易顺序无关。

具体处理方式

  1. 调用Get Transaction History接口拉取用户的全量订阅交易记录
  2. 过滤出所有状态为活跃且未过期的订阅(通过expiresDate字段判断)
  3. 在这些有效订阅里取最晚的到期日期作为用户的权益过期时间——毕竟用户切换到月度后,原年度订阅的权益还在生效,直到它自己的到期日,后端必须以这个最晚日期为准。

额外提醒

  • 不需要调整App Store Server API的配置,这是接口设计的固有逻辑。
  • 处理时要留意自动续期状态:如果有开启自动续期的订阅,要结合autoRenewStatus判断后续续期情况,但核心的当前权益过期时间还是以有效订阅的expiresDate为准。

内容的提问来源于stack exchange,提问作者Can

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 09:27:35