Список покупок в onPurchasesUpdated

Я впервые внедряю биллинг в приложении, поэтому меня немного смущают новые покупки.

Как указано в документации:

Когда вы вызываете launchBillingFlow (), отображается экран покупки пользовательского интерфейса Google Play. Если заказ на покупку выполнен успешно, данные ответа из Google Play сохраняются в объекте Purchase, который передается обратно соответствующему слушателю. Затем Google Play вызывает метод onPurchasesUpdated (), чтобы доставить результат заказа на покупку прослушивателю, который реализует интерфейс PurchasesUpdatedListener.

И подпись метода onPurchasesUpdated () похожа на это:

void onPurchasesUpdated(@BillingResponse int responseCode, @Nullable List<Purchase> purchases);

Мой вопрос: предоставляет ли onPurchasesUpdated() метод список ВСЕХ покупок, совершенных до настоящего момента в моем приложении, или только последних совершенных покупок?

Если он доставляет все покупки, как мне узнать о последней совершенной покупке?


person SpiralDev    schedule 08.11.2017    source источник


Ответы (1)


Как указано в предоставленных вами документах, метод предоставляет список последних Purchase объектов, инициированных либо в вашем приложении, либо в Play Store.

(...) Здесь будут указаны как покупки, инициированные вашим приложением, так и покупки, инициированные Play Store.

И если вы посмотрите на Purchase класс docs, вы можете видеть, что существует метод под названием getPurchaseTime() < / a>, который вы можете использовать, чтобы проверить, когда была совершена эта покупка. Этого достаточно, чтобы отследить, какая из них была последней покупкой.

Но вы также можете использовать другие методы этого класса для отслеживания покупок, например getOrderId().

Но если вы хотите проверить все покупки, сделанные пользователем в вашем приложении, а не только самые последние, взгляните на _ 5_ и обратите внимание на раздел Запрос приобретенных товаров в руководстве по обучению.

person Mauker    schedule 08.11.2017
comment
Спасибо. Что означают покупки, инициированные вашим приложением, и покупки, инициированные Play Store? Почему они упомянули 2 вида покупок? Разве все покупки не проходят через Play Маркет? - person SpiralDev; 08.11.2017
comment
Кроме того, вы сказали, что onPurchasesUpdated () доставляет только самые последние покупки. Но насколько они недавние? - person SpiralDev; 08.11.2017
comment
Я считаю, что это означает каждый купленный товар в последней транзакции, но мне пришлось проверить это, чтобы убедиться. Документы не так ясно об этом вопросе. И как покупки, инициированные игровым магазином, я думаю, они имеют в виду непосредственно в приложении Play Store, а не внутри вашего приложения. - person Mauker; 09.11.2017