как синхронизировать покупку непотребных материалов с сервером многопользовательской онлайн-игры

Мы разрабатываем мобильную многопользовательскую онлайн-игру для платформ iOS.

В нашей игре игрок может приобрести и активировать режим «PRO», ​​чтобы получить дополнительные преимущества.

Итак, мы создали «нерасходованный» тип покупок в приложении. потому что режим «PRO» - это своего рода одноразовый, навсегда активированный элемент. Мы активируем его и сохраним необходимые данные на сервере, но нам также понадобится информация о том, «кто только что приобрел этот предмет из игрового магазина itunes».

У меня вопрос: как мы можем синхронизировать appleid пользователя и игровую учетную запись на сервере? appleid - это частная переменная, которую мы не можем получить из SDK.

Мы также не можем использовать identifierForVendor, потому что кто-то может входить в систему и выходить из нее с разными учетными записями на одном устройстве.

Есть ли выход из этой ситуации? Или вы посоветуете мне поменять этот элемент как «расходный» и выполнять все работы на стороне сервера? (Полагаю, эта ситуация также может создать какие-то проблемы в будущем)

РЕДАКТИРОВАТЬ: Как я могу это определить: кто-то удаляет приложение, переустанавливает, входит на игровой сервер с другой учетной записью и восстанавливает режим PRO для этой учетной записи (он может легко сделать это, вероятно, многие его друзья, которые играют в игру) Интересно, как могу ли я сопоставить appleuser ‹==> gameuser в этой ситуации?


person Rephisto    schedule 07.10.2013    source источник
comment
Вы используете Game Center для многопользовательских игр ???   -  person Nilesh Patel    schedule 08.10.2013
comment
нет, но я нашел решение, скоро опубликую.   -  person Rephisto    schedule 08.10.2013


Ответы (2)


Вы можете реализовать метод «restoreCompletedTransactions» для своих нерасходуемых предметов.

Это готовая к использованию механика от Apple, которая позволяет пользователю восстанавливать покупки - вы просто предоставляете кнопку и реализацию.

Также проверьте: https://developer.apple.com/in-app-purchase/In-App-Purchase-Guidelines.pdf

person Grzegorz Krukowski    schedule 07.10.2013
comment
Как я могу обнаружить, что кто-то удаляет приложение, переустанавливает его, входит на игровой сервер с другой учетной записью и восстанавливает режим PRO для этой учетной записи (он может легко сделать это, вероятно, многие его друзья, которые играют в игру) Интересно, как я могу соответствует appleuser ‹==› gameuser? - person Rephisto; 07.10.2013

Я нашел решение

Это объясняется в разделе Модель серверного продукта.

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

https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/StoreKitGuide/APIOverview/OverviewoftheStoreKitAPI.html#//apple_ref/doc/uid/TP40008267-CH100-SW11

person Rephisto    schedule 08.10.2013