Страница 1 из 1

покупки в приложении

Добавлено: 26 апр 2014, 18:49
парень
Добрый день форумчане!

Вопрос внутри-покупок в приложении.

[syntax=java] Purchase premiumPurchase = inventory.getPurchase(SKU_PREMIUM);
mIsPremium = (premiumPurchase != null && verifyDeveloperPayload(premiumPurchase));[/syntax]

это маленький кусочек из апи покупок вроде версии 3.0 с сайта разработчиков.
Мы отправляем запрос на гугл, а в ответе - mIsPremium - это ключ, которым определено куплен ли в приложение премиум доступ.

Если на устройстве один аккаунт - будет true (если приложение покупалось)
Если два и более - будет false(даже если куплен на один акк). И это фейл...

Сначала я сделал просто:

отправляю запрос: если возвращается true, записываю в переменную по которой в приложении идет процесс сверки премиум\непремиум. А при следующем запуске не делать проверку на предмет покупок. Но тут вопрос безопастности, - переменные в SharedPreferences можно ведь спокойно просмотреть и изменить? И таким образом мое платное - становится бесплатным?

И этот вариант тоже не подходит...

Re: покупки в приложении

Добавлено: 28 апр 2014, 10:52
altwin
Эти переменные можно именовать динамически при каждом запуске выполняя проверку, вариантов усложнения жизни злоумышленникам масса, 100% защиты не существует, потому SharedPreferences вполне нормальный выбор. Ну или вы можете построить свою систему проверок и распространять приложение не через play.. Или просто запретить использовать несколько аккаунтов на одном девайсе. Как бы вообще поддержка нескольких аков в billing репортировалась, как баг :) https://code.google.com/p/android/issue ... l?id=53307

P.S. ну и как бы вы можете сохранить настройки удаленно и обращаться только при смене аккаунта к ним.