【发布时间】:2014-10-26 01:21:51
【问题描述】:
我已经到处搜索了有关如何最好地解决此问题的指导... 我已阅读 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()”不会返回任何内容:
该调用返回一个包含用户拥有的所有活动订阅的 Bundle。一旦订阅过期而没有续订,它将不再出现在返回的捆绑包中。
由于用户没有有效的订阅,我的应用会提示他们购买订阅以获得全部功能。同样,他们将获得 30 天的免费试用期。
我曾考虑过拥有第二个订阅产品,例如“myapp.subscription.monthly.no.free.trial”,我希望它成为可供购买的项目。但是,如果无法询问 Google Play 用户是否曾经之前购买过订阅,我的应用无法知道应该提供“无免费试用”产品。
那么,如何避免有人一遍又一遍地订阅和取消以继续获得 30 天免费?有没有办法向 Google Play 询问完整的购买历史记录?
【问题讨论】:
-
你可以加密共享首选项
标签: android in-app-purchase subscription