我创建了一个应用程序,其中有应用内购买,每月自动续订..在第一次成功付款时,我已经调用了一个网络服务,其中我已经让用户进入高级课程。
现在,如果用户已从谷歌服务器手动取消付款,我怎么知道该用户已取消他/她的订阅。
是否有一些PHP代码查询或从Android我必须在后台调用一些东西来检查状态?
谢谢你的推荐
答案 0 :(得分:7)
您可以通过
查看应用内购买的订阅编辑:对于订阅,使用" subs",对于inapp-purchases使用" inapp" e.g:
Inapp-Purchases:mService.getPurchases(3, getPackageName(), "inapp", null);
订阅:mService.getPurchases(3, getPackageName(), "subs", null);
另请参阅http://developer.android.com/google/play/billing/billing_integrate.html
上的Querying for Purchased Items
因此,您可以在应用中实施一项任务,检查用户是否仍有订阅。如果没有,您可以删除高级状态。此外,这些信息可能对您有用:
当用户取消订阅时,Google Play不会为当前结算周期提供退款。相反,它允许用户访问已取消的订阅,直到当前结算周期结束,此时它终止订阅。例如,如果用户购买了每月订阅并在周期的第15天取消订阅,则Google Play会认为订阅有效,直到第30天结束(或其他日期,具体取决于月份)。
来源:subscription cancelled
希望这可以帮到你
答案 1 :(得分:7)
我还没有对此进行过测试,但您可以使用INAPP_PURCHASE_DATA中的autoRenewing
字段吗?
如果为true,则订阅处于有效状态,并将在下一个结算日期自动续订。 如果为false,则表示用户已取消订阅。
http://developer.android.com/google/play/billing/billing_reference.html#getBuyIntent
显然,autoRenewing
字段已添加或至少已记录in the beginning of 2015。
答案 2 :(得分:0)
检查getPurchases()方法here。或者,如果您使用Android Studio并下载了源代码,请在Ctrl
方法上按Q
+ IInAppBillingService.getPurchases