检查Android中的应用程序内订阅状态

时间:2015-08-12 06:20:32

标签: java php android in-app-purchase in-app-billing

我创建了一个应用程序,其中有应用内购买,每月自动续订..在第一次成功付款时,我已经调用了一个网络服务,其中我已经让用户进入高级课程。

现在,如果用户已从谷歌服务器手动取消付款,我怎么知道该用户已取消他/她的订阅。

是否有一些PHP代码查询或从Android我必须在后台调用一些东西来检查状态?

谢谢你的推荐

3 个答案:

答案 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

下的http://developer.android.com/google/play/billing/billing_subscriptions.html

希望这可以帮到你

答案 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