Play Billing Library v1.0: в результате запроса queryPurchases отсутствует обновленная подписка - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть приложение для Android, предлагающее автоматическое продление подписок с помощью биллинга в приложении, используя https://developer.android.com/google/play/billing/billing_library.html.

. Я использую слегка измененный BillingManager.java из https://github.com/googlesamples/android-play-billing/, чтобы помочь с покупкой.управление.

Ранее, до выпуска (около 4-8 недель назад), когда бы ни заканчивалась пробная версия подписки и автоматически обновлялась подписка, я продолжал получать соответствующий объект Покупка в списках покупок при запросе покупок.:

PurchasesResult subscriptionResult = mBillingClient.queryPurchases(SkuType.SUBS);
List<Purchase> list = purchasesResult.getPurchasesList();

(см. QueryPurchases здесь )

К значению OrderID добавлено увеличенное значение счетчика в соответствии с числом продлений, произошедших с момента первоначального заказа (какописанные в разделе Номера для заказов на подписку здесь ).

В последние несколько дней создается впечатление, что всякий раз, когда подписка клиента преобразуется в оплаченную пробную или обновляется впоследствии, queryPurchases возвращает ноль Покупки после этого.Я ожидаю получить один объект «Покупка» для пользователей с активной подпиской (и некоторое время назад получал это во время тестирования - у меня есть данные в моей БД, чтобы подтвердить это.)

В результате приложение больше не работаетобращается к нашему внутреннему серверу, чтобы обновить срок действия подписки, и пользователям отказывают в доступе к функциям, за которые они были начислены - не очень.

Я могу просмотреть заказ клиента (с увеличенным OrderID) в консоли Google Play и подпискеотображается как действительный (и не отменяется), а токен покупки доступен и может быть проверен.

У кого-нибудь есть идеи, почему queryPurchases перестал бы возвращать действительную покупку после первого продления?(Покупка возвращается как ожидается до даты продления.)

Я использую текущую клиентскую библиотеку для выставления счетов следующим образом:

implementation 'com.android.billingclient:billing:1.0'

(В качестве обходного пути я могу исправитьэто на заднем плане, периодически перепроверяя все представленные токены покупки, но я бы предпочел сделать это по требованию, вызванному приложением, которое ранее работало нормально.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...