Восстановление расходных материалов

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

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

Можно ли получить электронную почту пользователя, по которой пользователь совершает покупку после потока покупки?

Или, может быть, есть другой метод восстановления расходных покупок?

Авторизация в приложении не желательна, хоть бы и решила все проблемы!


person Nik    schedule 17.09.2013    source источник


Ответы (1)


Можно ли получить электронную почту пользователя, по которой пользователь совершает покупку после потока покупки?

Когда пользователь покупает товар в приложении, Google Кошелек присваивает транзакции уникальный и постоянный номер заказа. Google Play предоставляет вам этот номер заказа по завершении процесса покупки в качестве значения поля orderId намерения PURCHASE_STATE_CHANGED.

В своем приложении вы можете использовать номер заказа в качестве идентификатора общего назначения для транзакции покупки в приложении. После покупки вы можете использовать номер заказа как средство отслеживания транзакции в отчетах сверки и для поддержки клиентов.

см. Работа с номерами заказов для получения дополнительной информации.

Мое предложение состояло бы в том, чтобы связать пользователя с файлом orderId.

Я собираюсь угадать несколько дополнительных вопросов, которые могут у вас возникнуть:

  • Как связать пользователя с orderId?

Вероятно, простой логин/аутентификация. Вы можете использовать их учетную запись Google (она есть у каждого пользователя Android) — см. Диспетчер учетных записей Android. Это хороший подход, поскольку вашему приложению не нужно обрабатывать пароли — ура!

  • Я хочу, чтобы тот же пользователь на другом телефоне получал эти покупки/пользовательские данные...

На самом деле это невозможно без входа в систему — см. выше (или что-то, чтобы однозначно идентифицировать этого пользователя), который синхронизирует пользовательские данные из облака на новое/другое устройство.

Или, может быть, есть другой метод восстановления расходных покупок?

Вы не можете восстановить потребленную покупку с помощью Google IAP. Дважды проверьте, хотите ли вы вместо этого использовать нерасходуемые покупки :)

дополнительный источник: документация API IAP v3.

person Ally    schedule 17.09.2013
comment
в моей попытке восстановить покупку пользователя, но Pruchase.getOrderId() возвращает пустую строку для уже купленного приложения... любое предложение! Примечание. Я не загружал его в play-store, используя его из локальной системы при тестировании «Восстановления». Нужно ли мне это, это обязательно? - person CoDe; 15.09.2015
comment
@Shubh, я не думаю, что биллинг будет работать правильно, пока вы не опубликуете версию в магазине игр. Мне пришлось опубликовать альфа-версию, чтобы полностью протестировать это. - person uesports135; 19.03.2016
comment
На данный момент существует developer.android.com/google/play/billing / я не знаю, как им пользоваться - person Thaina; 25.04.2018