在 Android 检查应用内订阅的状态

Check the status of In-App Subscription in Android

我创建了一个应用程序,其中包含每月自动续订的应用程序内购买。在第一次成功付款时,我调用了一个网络服务,在该服务中我让用户付费 class.

现在如果用户从 google 服务器手动取消了付款,我怎么知道用户已经取消了 his/her 订阅。

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

提前谢谢你

您可以通过

在应用内查看购买的订阅

编辑: 订阅使用 "subs",应用内购买使用 "inapp" 例如:

应用内购买:mService.getPurchases(3, getPackageName(), "inapp", null);

订阅:mService.getPurchases(3, getPackageName(), "subs", null);

另见 Querying for Purchased Items http://developer.android.com/google/play/billing/billing_integrate.html

因此,您可以在您的应用中执行一项任务,检查用户是否仍有订阅。如果没有,您可以删除高级状态。此外,此信息可能对您有用:

When the user cancels a subscription, Google Play does not offer a refund for the current billing cycle. Instead, it allows the user to have access to the canceled subscription until the end of the current billing cycle, at which time it terminates the subscription. For example, if a user purchases a monthly subscription and cancels it on the 15th day of the cycle, Google Play will consider the subscription valid until the end of the 30th day (or other day, depending on the month).

来源:http://developer.android.com/google/play/billing/billing_subscriptions.htmlsubscription cancelled

希望对您有所帮助

Edit2: 由于我的回答中提到的AIDL库在未来被弃用和停用,建议切换到新的Google Play Billing Library.

我还没有测试过,但是你可以使用 INAPP_PURCHASE_DATA 中的 autoRenewing 字段吗?

If true, the subscription is active, and will automatically renew on the next billing date. If false, indicates that the user has canceled the subscription.

http://developer.android.com/google/play/billing/billing_reference.html#getBuyIntent

显然,已添加或至少记录了 autoRenewing 字段 in the beginning of 2015

检查 getPurchases() 方法 here。或者,如果您使用 Android Studio 并下载了源代码,只需在 IInAppBillingService.getPurchases 方法

上按 Ctrl + Q