11

我已使用应用内计费库在我的应用中添加订阅。一切正常,但我无法找到如何获得用户当前的活动订阅?

根据docs,该方法queryPurchaseHistoryAsync返回用户为每个 SKU 进行的最新购买,即使该购买已过期、取消或消耗。因此,我无法知道当前订阅是否处于活动状态。

根据这篇文章,如果我们取消订阅,当天仍将被视为有效。但我收到的订阅在 15 天前被取消。

任何帮助将不胜感激。提前致谢。

4

2 回答 2

7

要查询用户订阅,我使用此方法:

public void querySubscriptions() {
    Runnable queryToExecute = () -> {
        Purchase.PurchasesResult purchasesResult = mBillingClient.queryPurchases(BillingClient.SkuType.SUBS);

        if (mBillingClient == null ||
                purchasesResult.getResponseCode() != BillingClient.BillingResponse.OK) {
            return;
        }
        mPurchases.clear();
        onPurchasesUpdated(BillingClient.BillingResponse.OK, purchasesResult.getPurchasesList());
    };

    executeServiceRequest(queryToExecute);
}

如果您需要更多详细信息,请询问。

于 2018-11-14T12:53:39.090 回答
0

一个用户可以在任何时候拥有多个活动订阅。您可以使用方法检查订阅是否处于活动状态isAutoRenewing。这是该方法的文档

指示订阅是否自动续订。如果为 true,则订阅处于活动状态,并将在下一个计费日期自动续订。如果为 false,则表示用户已取消订阅。用户在下一个计费日期之前可以访问订阅内容,届时将失去访问权限,除非他们重新启用自动续订(或手动续订,如手动续订中所述)。如果您提供宽限期,只要宽限期未到期,所有订阅的此值都会保持设置为 true。下一个计费日期每天都会动态延长,直到宽限期结束或直到用户修复他们的付款方式。

于 2018-11-09T07:02:43.973 回答