Я создаю приложение, которое позволяет покупать цифровые товары. Поскольку у нас есть много доступных предметов, мы не можем использовать расходные материалы, поэтому мы определяем расходные материалы для различных ценовых категорий (2 €, 3 € и т. Д.).
Когда пользователь хочет купить определенный товар, я получаю расходный продукт для этой конкретной ценовой категории и начинаю покупку для этого расходного материала. Затем я хочу отправить квитанцию на мой сервер, проверить ее и разблокировать соответствующий товар.
Вот где я не уверен, как это реализовать. Чтобы получить квитанцию о транзакции, мне нужно прослушать PaymentQueue, поэтому я получаю квитанцию асинхронно и без контекста из фактической покупки.
Как связать квитанцию с предметом, приобретенным пользователем?
Из того, что я знаю, есть два варианта:
- Прикрепите данные к моей покупке, которые я могу прочитать из квитанции. Это возможно? Это был бы идеальный сценарий.
- Сохраните список идентификаторов товаров, которые пользователь начал покупать, и когда я получаю квитанцию (или много квитанций) из своей очереди, я просто просматриваю идентификаторы товаров и отправляю их на свой сервер. Когда покупка завершена, я удаляю идентификатор товара из своего списка. Это жизнеспособное решение? Может ли быть проблема с несколькими устройствами, когда устройство получает квитанцию, хотя оно не инициировало платеж?