SegaZero
@SegaZero

Как реализовать In-App покупки для разных логинов на одном устройстве?

Есть приложение с авторизацией в свой аккаунт (как в фб или вк или почта, etc). Есть возможность купить после авторизации ряд дополнительных довесков. Хотелось бы сделать, чтобы довески, купленные пользователем А не являлись таковыми для пользователя Б на одном и том же айфоне.
Как?
Пока в голове есть только 3 возможных решения и все потенционально на грани reject'a:
1) покупать виртуальную валюту и на неё тут же покупать уже довески
плюсы: удобная привязка к логину, не нужно восстанавливать покупки
минусы: пока точно не верен, но вроде в правилах к consumables говорится что внутренняя валюта должна как-то отображаться. Плюс непонятно, как валидировать consumable покупки, если верить stackoverflow, consumable не свалидируешь на сервере, а это значит полагаться на клиента, что не есть хорошо.
2) покупать с динамическим product id, приплюсовывать к id сам логин и отфильтровывать все не относящиеся
плюсы - валидируется сервером
минусы - одному богу известно как это сделать в itunes connect. насколько я понимаю, там можно вводить только статичные product id
3) опираться на инфу с сервера и, даже если довесок куплен в другом логине, игнорировать его и отображать как некупленный. ну и, соответственно, предпринимать повторную покупку?
плюсы - не нашёл
минусы - я так понимаю, эпл так просто не даст купить второй раз уже купленное, а это потенциально потеря денег

Кто может подсказать, как лучше поступить?
  • Вопрос задан
  • 2834 просмотра
Пригласить эксперта
Ответы на вопрос 1
Makaveli
@Makaveli
Зачем динамический product id? Просто обрабатывая покупку - запоминайте её на своём сервере.

Если у вас есть Логин или другой уникальный идентификатор пользователя, то вы по нему на сервере просто проверяете - был ли куплен довесок на этом аккаунте или нет. Если нет - отправляете запрос на покупку In-app purchase, по завершению которой запоминаете это на своём сервере. Таким образом люди не смогут перелогинившись получить ваш довесок.

Также не забудьте про функцию восстановления покупки. Если человек залогинился и у него довеска не обнаружено - он должен нажать кнопку "восстановить покупку", после чего приложение смотрит на своём сервере - покупал ли он ранее эту покупку, плюс проверяет это ещё механизмами Apple.

Насчёт покупки "второй раз купленного" - как раз у них есть 2 типа покупок внутренних, один из которых вы выбираете при добавлении её в iTunes Connect:

a80af58119da4bb5b80561946236aef8.png

Один из них - одноразовая покупка, другой - просто покупка. Подходит, например, для покупки внутриигровой валюты.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы