Android应用内购买免费试用订阅 - 如何避免滥用?

Xto*_*rSD 10 android subscription in-app-purchase

我已经搜索了高低,以获得有关如何最好地解决此问题的指导......我已阅读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购买和试用期.但是,使用SharedPreferences会受到相对容易的滥用.

我有一个应用程序,需要订阅全部功能.我设置了每月订阅的应用内购买产品,比如ID ="myapp.subscription.monthly",每月花费0.99美元.我想让人们有机会体验全部功能,所以我给"myapp.subscription.monthly"一个30天的试用期.

当用户第一次安装应用程序时,会提示他们购买每月订阅,他们收取0.00美元的费用并告知从现在开始30天后他们的卡将开始收取0.99美元/月的费用.

当我的应用程序调用"getPurchases()"时,将返回他们订阅的事实.

如果他们在免费试用期间取消,或者说在几个月的结算后,根据"实施"部分,对"getPurchases()"的调用不会返回任何内容:

该调用返回一个Bundle,其中包含用户拥有的所有活动订阅.一旦订阅到期而没有续订,它将不再出现在返回的Bundle中.

由于用户没有有效订阅,我的应用程序将提示他们购买订阅以获得完整功能.再次,他们将获得30天免费试用.

我已经考虑过第二个订阅产品,比如说"myapp.subscription.monthly.no.free.trial",我会把它作为可购买的商品.但是,如果用户以前没有购买过订阅,那么无法询问Google Play ,我的应用无法知道应该提供"免费试用"产品.

那么,如何避免有人只是订阅和取消一遍又一遍以获得免费30天?有没有办法向Google Play询问完整的购买历史记录?

Jer*_*VDL 5

根据文档(https://support.google.com/googleplay/answer/2476088?hl=zh-CN,试用订阅),它说:

您无法注册多个试用版.

我猜Google会自动处理这个问题


Jis*_*Dev 5

Google Play 商店会自动处理此问题

如果您的用户取消免费试用,然后尝试购买,他/她将看到 0.99 美元,而不是再次提供免费试用。但是,如果用户在取消免费试用后支付 0.99 美元,则实际计费只会在取消的免费试用期结束后开始。

如果有任何方法可以知道产品在客户端是否有免费试用版,那将会很有帮助。希望尽快将其放入 In-App Billing API。