Как обезопасить покупки в приложении, когда пользователь входит в систему - PullRequest
0 голосов
/ 23 марта 2019

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

Теперь возникает проблема - когда пользователь войдет в систему, я передам информацию об их покупке на наш сервер. Однако что произойдет, если пользователь выйдет из нашего приложения, а затем войдет его друг? Устройство все еще подключено к App Store с использованием оригинального Apple ID, и они могут восстановить покупку, которая теперь будет связана с учетной записью их друга.

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

Я уверен, что это обычная проблема, так как ее обычно решают? Нам необходимо обеспечить безопасность покупок с iOS и Android.

P.S. Синхронизация выполняется через Firestore.

1 Ответ

3 голосов
/ 25 марта 2019

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

Если вы посмотрите на некоторые приложения для крупных подписок (Netflix, Spotify, HBO и т. Д.), Вы заметите, что у них даже нет кнопки «Восстановить покупки». Вы можете обойтись без этого, если вам потребуется вход в аккаунт, поскольку покупки можно восстановить, войдя в свой аккаунт. Однако, если у вас нет команды разработчиков и службы поддержки, такой как Netflix, кнопка «Восстановить покупки», как правило, является хорошей идеей, поскольку она может спасти вас от крайних случаев - просто проверьте, есть ли квитанция в файле для другой учетной записи, прежде чем «разблокировать» доступ .

...