【问题标题】:iOS in-app purchase of auto-renewing subscriptions: how do we compute the renewal duration?iOS 应用内购买自动续订订阅:我们如何计算续订持续时间?
【发布时间】:2019-01-21 23:46:01
【问题描述】:
在我们的 iOS 应用中,通过应用内购买自动续订订阅可以访问某些附加功能。我们的服务器想检查每个帐户的应用内购买收据,看看它是否过期或成功续订。这是为了决定继续允许(该帐户用户)访问这些附加功能。
在服务器上,我们如何计算续订之间的持续时间?每个月可能有 28、29、30 或 31 天。因此,如果有人在 1 月 29 日订阅,应用商店是否会在 2 月 29 日补足续订,或者使用其他算法,例如,从月底开始的天数(如果在“下半年”),那么可能是 2 月 26 日或27(取决于今年 2 月是 28 天还是 29 天)?我们找不到有关 Apple 使用什么算法来计算这些持续时间的信息。如果有人知道或知道在哪里可以找到它,您能告诉我们吗?谢谢!
【问题讨论】:
标签:
ios
in-app-purchase
subscription
【解决方案1】:
每月订阅基于日历月,并将在初始订阅的每月周年纪念日续订。这意味着有时用户可以以相同的价格获得 31 天,有时是 28 天。
如果该月的天数少于周年纪念日,它将在该月的最后一天更新;如果初始订阅是在 1 月 29 日进行的,则续订将在 2 月 28 日(如果是闰年,则为 29 日)进行。
收据包含当前订阅期的到期日期。假设不是闰年,从 1 月 29 日开始的订阅将以 2 月 28 日为到期日。您可以使用此到期日期作为让您的服务器检查续订的依据;您可以在到期日期前 24 小时左右开始检查是否续订。
来自In App Purchase Programming Guide
订阅续订过程在到期日期前十天开始。在这十天内,App Store 会检查是否存在任何可能延迟或阻止订阅自动续订的计费问题,例如:
- 客户的付款方式不再有效,
- 自用户购买订阅后产品价格上涨,
- 该产品不再可用。
App Store 可能会通知用户任何问题,以便他们在订阅到期前解决问题,避免订阅服务中断。
在订阅到期前的 24 小时内,App Store 开始尝试自动续订。 App Store 会在一段时间内多次尝试自动续订订阅,但如果尝试失败次数过多,最终会停止。