расходные материалы IAP: разграничение двух разных пользователей приложения по одной учетной записи iTunes - PullRequest
1 голос
/ 14 апреля 2020

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

Я обеспокоен следующей ситуацией:

Пользователь A входит в приложение и покупает несколько драгоценных камней. Приложение отправляет транзакцию в App Store. Приложение получает состояние транзакции как «Куплено». Приложение отправляет запрос на сервер, чтобы обновить количество драгоценных камней в БД. В этот момент серверный вызов завершится неудачно, и пользователь A не получит никаких драгоценных камней, и, следовательно, транзакция не может быть установлена ​​как «завершенная».

В этот момент пользователь A выходит из системы, а пользователь B входит в систему. Поскольку предыдущая транзакция не была завершена, приложение при повторном запуске получит эту транзакцию и снова попытается отправить запрос на сервер для присуждения Пользователь приобрел драгоценные камни. Но теперь драгоценные камни будут неправильно предоставлены пользователю B вместо A через мой серверный вызов.

Теперь, как я могу отличить упомянутую транзакцию от пользователя A вместо B? Придется ли мне обрабатывать это локально на стороне приложения; ie хранить уникальный идентификатор транзакции для идентификатора пользователя? В таком случае, как я буду отличать предыдущую ожидающую транзакцию от новой транзакции.
Является ли проверка получения на стороне сервера решением? Несмотря на это, квитанция не будет содержать пользовательскую информацию, касающуюся действительной учетной записи приложения пользователя, которая сделала запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...