Биллинг в приложении - Google Play выдает мне сообщение «У вас уже есть этот элемент», когда queryPurchases () возвращает пустой список - PullRequest
0 голосов
/ 24 октября 2018

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

Когда я снова попытался совершить ту же пробную покупку, Google Play выдал мне сообщение об ошибке «У вас уже есть этот товар».Указанная покупка НЕ ​​находится в моей истории заказов на панели инструментов Google Play.

Что происходит, и как мне решить эту проблему?

РЕДАКТИРОВАТЬ: очистить кэш магазина Google Play, очистить службы GoogleКэш фреймворка и переустановка приложения не работает.


РЕДАКТИРОВАТЬ 2:

Мне удалось решить эту проблему, принудительно остановив приложение Google Play Store, очистив его данные, затем перезапустивЭто.Прямо сейчас я могу только заключить, что покупки, сделанные при отключении Wi-Fi, находятся в данных приложения Play Store, а не в кеше.

Таким образом, у меня возникает вопрос: отвечает ли разработчик за обработку этого конкретного случая?(когда решение не в самом приложении), и как с ним справиться?

1 Ответ

0 голосов
/ 17 марта 2019

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

mService.getPurchaseHistory(version, packageName, "inapp", null, new Bundle());

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

...