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

Ответить
парень
Сообщения: 223
Зарегистрирован: 30 мар 2013, 22:52

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

Сообщение парень » 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 можно ведь спокойно просмотреть и изменить? И таким образом мое платное - становится бесплатным?

И этот вариант тоже не подходит...
Мой первенец: MyMoney. Менеджер расходов

Бьем рекорды русских топов :)

Могу ответить на любые вопросы по маркетингу и развитию.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

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

Сообщение altwin » 28 апр 2014, 10:52

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

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

Ответить