我已在iOS应用中实现了耗材InApp购买。用户必须付费才能看到内容,并且会在24小时后到期。
用户付款后,我会发送current date
& expiration date
到我的服务器。现在,当我为特定登录用户获取内容列表时,我的服务器将返回purchase date
。例如,如果用户 Patrick 登录到应用程序,他将能够看到内容列表。在该Web服务中,我还将获得该用户的到期日期,并根据该时间,我将显示到期时间。如果过期时间已过,它将在每个内容列表单元格中显示“购买”按钮。
我的应用程序的主要关注点是用户从设备更改其当前日期。如果用户定期更改他/她的当前日期,并且永远不会让他/她的设备有机会到达expiration date
,他/她将永远访问该内容。
克服这种情况的最佳解决方案是什么?这是我被卡住的地方。
答案 0 :(得分:4)
如果您可以要求用户在线,那么我会忽略设备时间并对您的服务器进行所有验证。
如果您支持对内容进行离线访问,则您需要忍受用户不断设置时钟的可能性,并且永远不会在线使用您的应用。这似乎会削弱他们设备的一般功能,所以我不会过分关注它。
无论哪种方式,如果你可以得到它,请按照你的服务器时间,否则只需使用设备时钟。
修改强>
离线案例的更多细节:
出于所有这些原因,假设用户不会为了获取一个应用程序的内容而减少其设备的功能是有意义的,而且在我看来,这不值得关注自己。如果根据时间限制内容至关重要,则应将连接作为一项要求。
答案 1 :(得分:3)
只需记下上次启动应用程序(将其保存在GMT中)和:
请记住将日历从区域设置转换为格里高利表示(或您使用/喜欢的任何其他表示)。