Получить активные подписки In-app Billing Android

Я использовал библиотеку биллинга в приложении для добавления подписок в свое приложение. Все работает правильно, но я не могу найти, как мне получить текущую активную подписку пользователей?

Согласно документации, метод queryPurchaseHistoryAsync возвращает самую последнюю покупку, сделанную пользователем для каждой SKU, даже если эта покупка истекла, была отменена или потреблена. Из-за этого я не могу знать, активна ли текущая подписка или нет.

Согласно этому сообщению, если мы отменим подписку, она все равно будет считаться активной на этот день. Но я получаю подписки в ответе, которые были отменены до 15 дней.

Любая помощь будет оценена. Заранее спасибо.

2 ответа

Решение

Для запроса подписки пользователей я использую этот метод:

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);
}

Если вам нужно больше деталей, спросите.

Пользователь может иметь несколько активных подписок в любой момент. Вы можете проверить, активна ли подписка или нет isAutoRenewing method.Here это документы для этого метода

Указывает, продлевается ли подписка автоматически. Если значение равно true, подписка активна и будет автоматически продлена на следующую дату выставления счета. Если ложь, означает, что пользователь отменил подписку. Пользователь имеет доступ к контенту подписки до следующей даты выставления счета и потеряет доступ в это время, если он не включит автоматическое продление (или ручное продление, как описано в разделе Продление вручную). Если вы предлагаете льготный период, это значение остается равным true для всех подписок, пока льготный период не истек. Следующая дата выставления счета продлевается динамически каждый день до конца льготного периода или до тех пор, пока пользователь не исправит способ оплаты.

Другие вопросы по тегам