繁体   English   中英

如果用户在InApp Purchase的基于时间的订阅中更改设备当前日期怎么办?

[英]What if user changes device current date in Time based subscription for InApp Purchase?

我已在我的iOS应用程序中实现了耗材InApp Purchase。 用户必须付费才能看到内容,并且会在24小时后到期。

用户付款后,我会将current dateexpiration date发送到我的服务器。 现在,当我获取特定登录用户的内容列表时,我的服务器将返回purchase date 例如,如果用户Patrick登录到应用程序,他将能够看到内容列表。 在该Web服务中,我还将获得该用户的到期日期,并根据该时间,我将显示到期时间。 如果到期时间已过,则会在每个内容列表单元格中显示“购买”按钮。

我的应用程序最关心的是用户从设备更改其当前日期。 如果用户定期更改他/她的当前日期并且永远不会让他/她的设备有机会达到expiration date并且他/她将永远访问该内容。

克服这种情况的最佳解决方案是什么? 这是我被卡住的地方。

如果您可以要求用户在线,那么我会忽略设备时间并对您的服务器进行所有验证。

如果您支持对内容的离线访问,则需要让用户可以继续设置他们的时钟,并且永远不会在线使用您的应用。 这似乎会削弱他们设备的一般功能,所以我不会过分关注它。

所以无论哪种方式,如果你可以得到它,请按照你的服务器时间,否则只需使用设备时钟。

编辑

离线案例的更多细节:

  1. 您可以访问的唯一时钟是设备时钟。
  2. 当用户不在您的应用程序中时,用户可以控制他们的时钟。
  3. 用户无法仅针对您的应用选择性地离线,因此通过选择离线,他们无法使用其设备的任何在线功能。
  4. 同样地,更改时钟也是一个系统范围的设置,会影响他们的提醒和他们告诉时间的能力。

出于所有这些原因,假设用户不会为了获取一个应用程序的内容而减少其设备的功能是有意义的,并且在我看来,这不值得关注自己。 如果根据时间限制内容至关重要,则应将连接作为一项要求。

只需注意上次启动应用程序(将其保存为GMT)并:

  • 如果下次用户使用你的应用程序,时间(格林尼治标准时间)低于你节省的时间发出警告(不允许落后时间旅行的一些好处)
  • 在另一个落后时间旅行阻止该应用程序,直到建立在线连接,您可以检查服务器的所有内容
  • 允许前进的时间旅行(意味着用户实际上已经理解他做错了并将时间恢复到正确的值),但没有重置警告计数

请记住将日历从区域设置转换为格里高利表示(或您使用/喜欢的任何其他表示)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM