我四处寻找关于如何最好地解决这个问题的指导...... 我已阅读 Google Play 应用内订阅 ( http://developer.android.com/google/play/billing/billing_subscriptions.html ) 和关于实现订阅 ( http://developer.android.com/google/play/billing/billing_integrate.html#Subs ) 的部分,但我仍然没有找到一种方法避免滥用。
我在这里也看到了相关问题 - Google Inapp purchasing and trial period .但是,使用 SharedPreferences 相对容易被滥用。
我有一个应用需要订阅才能获得全部功能。我设置了按月订阅的应用内购买产品,比如 ID = "myapp.subscription.monthly",费用为 0.99 美元/月。 我想让人们有机会体验全部功能,所以我给“myapp.subscription.monthly”提供了 30 天的试用期。
当用户首次安装该应用时,系统会提示他们购买每月订阅,向他们收取 0.00 美元,并告知从现在起 30 天后,他们的卡将开始收取每月 0.99 美元的费用。
当我的应用程序调用“getPurchases()”时,将返回他们已订阅的事实。
如果他们在免费试用期间取消,或者说在计费几个月后,根据“实现”部分,调用“getPurchases()”不会返回任何结果:
The call returns a Bundle with all the active subscriptions owned by the user. Once a subscription expires without renewal, it will no longer appear in the returned Bundle.
由于用户没有有效的订阅,我的应用会提示他们购买订阅以获得全部功能。同样,他们将获得 30 天的免费试用期。
我想过要有第二个订阅产品,比如“myapp.subscription.monthly.no.free.trial”,我会把它作为可供购买的商品。但是,如果没有办法询问 Google Play 用户是否曾经之前购买过订阅,我的应用就不知道应该提供“无免费试用”产品。
那么,如何避免有人只是一遍又一遍地订阅和取消以继续获得 30 天的免费试用期呢?有没有办法向 Google Play 询问完整的购买历史记录?
最佳答案
根据文档(https://support.google.com/googleplay/answer/2476088?hl=en,试用订阅),它说:
You can't sign up for multiple trials.
我猜 Google 会自动处理这个问题
关于Android 应用内购买免费试用订阅 - 如何避免滥用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25612177/