Купленная подписка не возвращается в инвентарь
Я адаптировал play_billing
Пример Google Extras в Android SDK, чтобы использовать собственное имя пакета приложения и открытый ключ. Мне удалось приобрести управляемый элемент, а также подписку через приложение.
Тем не менее, когда я вызываю такие методы, как Inventory.getAllPurchases()
подписка не возвращается в инвентарь пользователя, даже после перезапуска и переустановки приложения.
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inventory)
{
if(result.isFailure())
{
log.error("In-app billing inventory query failed: " + result);
return;
}
for(Purchase purchase : inventory.getAllPurchases())
{
log.info("Purchase: " + purchase.getSku());
}
}
Выход:
Purchase: premium
Обычная, разовая покупка (premium
) выводится как видите, но подписка покупается (paid_app
) не является. Когда я пытаюсь купить подписку снова, он говорит, что я уже купил ее:
Я перепробовал все, что знаю, но не могу понять это. Поскольку обычный элемент работает, как задумано, я не понимаю, почему подписка не возвращается, если я не совсем уверен в том, как это должно работать.
У меня APK загружен как черновик. У меня есть адрес электронной почты на телефоне в списке тестеров; электронная почта НЕ является моей электронной почтой для разработчиков. Моя подписка активна. Телефон, на котором я тестирую, имеет последнюю версию Google Play.
Изменить: Все еще не повезло. Тем не менее, вот еще одно обновление на случай, если это актуально. Когда я захожу в Google Кошелек, ни одна из транзакций не отображается (якобы потому, что это тестовые транзакции). А для моей тестовой учетной записи пользователя, когда я захожу в Google Play по подписке, она не указана. Тем не менее, это не позволит мне купить снова. Таким образом, купленные подписки не только не отображаются, когда я запрашиваю их, но они также нигде не могут быть отменены, чтобы проверить снова.
Любые идеи здесь будут с благодарностью.
1 ответ
Понял это случайно, когда наткнулся на этот ответ и решил попробовать обновленный код, связанный там.
Видимо play_billing
образец, указанный в менеджере SDK, устарел, а все классы в util
пакет должен быть заменен util
пакеты из этого современного проекта.
После того, как я заменил старый util
пакет с новым, моя подписка перечисляется вместе с обычным premium
вещь!!!
Purchase: paid_app
Purchase: premium