在Android中订阅了应用内续订广播

时间:2016-02-11 09:45:42

标签: android android-inapp-purchase

我为in-app purchase产品实施了subscription,它工作正常。我为每种产品订了1个月的订阅,并且会在1个月后续订。

现在我的问题是有没有办法获得更新的产品清单和续订日期?

谷歌是否提供任何类型的服务或活动,通过这些服务或事件我们可以了解更新。

2 个答案:

答案 0 :(得分:6)

不幸的是,In-app Billing API v3没有提供任何事件或方式来通知订阅续订或取消。

您唯一能做的就是手动查询API以检索当前激活的订阅。 (这适用于Android API以及基于http的API ...)

执行此操作的方法来自Android客户端:

  • 像往常一样查询广告资源,以获取IabHelper#queryInventory(boolean querySkuDetails, List<String> moreItemSkus, List<String> moreSubsSkus)

  • 的产品列表
  • 如果用户有有效订阅,您可以使用IabHelper#getPurchase(String sku)获取有关该订阅的信息。购买将包含有关订阅状态和时间的信息。 (doc here

要使用Google Play Developer API(来自您的服务员)执行此操作,您必须使用get,信息将在ressource返回。

答案 1 :(得分:1)

没有得到答案但得到的东西我和你们分享。经过大量研究后,我发现没有广播或服务,我们可以通过它来了解产品的更新或取消。

使用billingService.getPurchases我购买了所有当前用户。

Bundle bundle = billingService.getPurchases(3, getPackageName(), "subs", null);

这将为我提供订阅项目列表,其中包含以下详细信息。

 INAPP_PURCHASE_ITEM_LIST
 RESPONSE_CODE
 INAPP_PURCHASE_DATA_LIST
 INAPP_DATA_SIGNATURE_LIST

从上面的细节我得到了aurenew状态,购买日期,orderId,packageName,purchaseTime,purchaseState,purchaseToken。

从所有信息至少我知道什么时候购买产品,天气自动更新开启/关闭。

如果用户将从Google Play商店取消autoRenew,他/她的周期链将会完成,并会在订阅结束日期之前获得优惠。

如果autoRenew为false,则在达到订阅结束日期后,用户将无法获得与该产品/购买/订阅相关的任何优惠。