Как хранить данные о подписке для выставления счетов в приложении Android?

Я пытаюсь внедрить биллинг в приложении, где единственное, что продает мое приложение, — это ежемесячная подписка. Я в значительной степени скопировал пример Dungeons, который предоставляет Android, и он работает, но он кажется слишком сложным для единственной вещи, которую я должен продать (и я знаю, что в любом случае не должен копировать его).

В примере Dungeons есть класс PurchaseDatabase, который отслеживает все покупки пользователя. Поскольку в моем приложении есть только одна покупка, а не база данных, кажется, что было бы более разумно просто иметь что-то вроде SharedPreference/boolean «isPurchased» и обновлять/проверять это при запуске приложения. , Я действительно мало знаю о безопасности, но это, кажется, просто звонит в тревожные звоночки и, вероятно, будет очень легко взломать.

Итак, как мне сохранить/восстановить этот фрагмент данных? В любом случае, что мне нужно сохранять и отслеживать?

Изменить: найдено это Оплата в приложении. Как хранить информацию о том, что пользователь заплатил? . Казалось бы, я должен использовать SharedPreference, но этот вопрос остается в силе: мне просто сохранить логическое значение «isPurchased» или я должен отслеживать orderId, developerPayload и т. д.?


person Kalina    schedule 04.09.2012    source источник


Ответы (1)


Если вы просто сохраните флажок в общих настройках, любой пользователь с рутированным устройством может перевернуть флажок по своему желанию и быть «подписанным» без оплаты. Так что вы должны, по крайней мере, сделать некоторые обфускации. Вот пример того, как это сделать. . Кроме того, существует API для проверки состояния подписки, поэтому вам следует периодически убедитесь, что подписка действительна.

person Nikolay Elenkov    schedule 05.09.2012
comment
Большое спасибо за это! Я все утро изучал API, но не очень понимаю, как его использовать, поскольку Google не предоставляет примеров кода... Не могли бы вы привести пример того, каким должен быть код? - person Kalina; 05.09.2012
comment
Здесь: code.google.com/p/google- API-java-клиент/вики/ - person Nikolay Elenkov; 05.09.2012
comment
API кажется слишком сложным... Мне нужно зарегистрироваться и скачать API, настроить OAuth и загрузить, настроить и работать с клиентской библиотекой, или изучить REST и сделать свой собственный синтаксический анализ... Все это только для того, чтобы найти из одного значения? Это метод, который вы рекомендуете? - person Kalina; 06.09.2012
comment
На самом деле не так уж сложно: после аутентификации вы выполняете один GET и получаете очень простой объект JSON. Другого способа онлайн-проверки нет, поэтому либо используйте его, либо откажитесь от онлайн-проверки. - person Nikolay Elenkov; 06.09.2012
comment
как мы должны называть пользовательские покупки? - person Namikaze Minato; 23.06.2020