我正在为官方组织的android应用程序构建网络服务,我们希望该应用程序将来会拥有超过500,000个用户。
该应用程序为应用程序内结算,因此免费安装。用户安装应用后,他/她必须通过验证码验证其电子邮件或手机号码,然后通过其电子邮件或手机登录应用。
登录到应用程序后,他/她可以使用免费服务,但是某些服务不是免费的,必须付费。所谓服务,通常是指他/她可以看到的一组内容。通过付费购买服务,其内容将下载到本地数据库,然后他/她可以在没有互联网连接的情况下以离线模式使用该应用程序。
这是问题所在:
如果用户在其移动设备上为某些服务付费,将其称为mobile1
,然后断开与互联网的连接,则可以在此移动设备上以离线模式访问所有内容。现在,如果他/她在mobile2
中为其朋友安装了该应用程序,并通过其帐户登录到该应用程序,则可以在mobile2
中访问服务,因为他/她的电话处于脱机状态,位于同时,两个人可以在付款后使用服务。这种情况可以扩展到许多安装。
我需要设计一个方案来防止这种情况的发生。
解决方案(不是很好)
我可以在第一个登录名(或注册名)中保存第一个手机的imei,然后仅在该帐户位于数据库中具有相同imei的手机上时才允许该帐户登录。这意味着如果用户手机死了,他/她将无法使用该应用,而必须再次付费,这使它成为了一个糟糕的解决方案。
在第一个登录名(或注册名)中保存第一个手机的imei,但限制通过具有不同imei的手机登录的次数。因此,例如,仅3个不同的手机允许用户通过其帐户登录该应用。在这种情况下,它可能会损失很多付款。
在设计此方案时,我会请您帮忙。
谢谢。