我已使用应用内结算库在应用中添加订阅。一切正常,但是我找不到如何获得用户当前有效的订阅?
根据docs,方法queryPurchaseHistoryAsync
会返回用户针对每个SKU进行的最新购买,即使该购买已过期,取消或消耗。因此,我不知道当前的订阅是否处于活动状态。
根据this帖子,如果我们取消订阅,则该订阅仍将被视为当天有效。但是我得到的响应中的订阅已在15天之前被取消。
任何帮助将不胜感激。预先感谢。
答案 0 :(得分:3)
要查询用户订阅,我使用此方法:
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);
}
如果您需要更多详细信息,请询问。
答案 1 :(得分:0)
用户可以随时激活多个订阅。您可以使用isAutoRenewing
方法检查订阅是否处于活动状态。这是该方法的文档
指示订阅是否自动续订。如果为true,则订阅处于活动状态,并且将在下一个计费日期自动续订。如果为false,则表示用户已取消订阅。用户可以在下一个计费日期之前访问订阅内容,除非该用户重新启用自动更新(或手动更新,如“手动更新”中所述),否则届时将失去访问权限。如果您提供宽限期,则只要未超过宽限期,所有订阅的此值都将设置为true。下一个帐单日期会每天动态延长,直到宽限期结束或用户确定其付款方式为止。