我们的应用使用不可续订订阅来提供对内容的访问,为期一年。订阅收据存储在iCloud(如果可用)和设备密钥链中。有时会调用WS来验证收据,但不会记录交易。
我们的问题是,如果用户向后更改时钟(例如将日期设置为2010),我们的订阅不会在一年后过期,而是在三年后(2013-2010)过期。
我们的解决方案是说,持续时间超过一年的订阅是欺诈性的,并且收据已被清除并且生命仍在继续。
然而,我的老板现在抱怨用户将时钟设置为过去六个月(不到一年就可以,但订阅持续1。5年而不是有效的一年)。
有没有更好的方法来处理设备时钟篡改,还是我们不得不忍受(我相信)?
答案 0 :(得分:1)
如果您的应用从服务器获取内容,那么您可以存储“设备标识符”列表以及到期日期。
当您的服务器上,客户端在订阅过期时没有发言权。
答案 1 :(得分:0)
正如我在上面的评论中所说,我会使用受信任的服务器检查时间,而不是使用本地时间。同样重要的是,一旦收据到期,立即将其删除或将其标记为已过期,以便他们无法关闭网络访问并回滚时间以便使用它。