Как я могу безопасно управлять транзакциями биллинга внутри приложения на внешнем сервере?

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

Цель моего приложения - получать / анализировать и отображать данные с моего собственного сервера, а также документацию на http://developer.android.com/guide/market/billing/billing_best_practices.html говорится:

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

У меня вопрос, как лучше всего это сделать с точки зрения реального рабочего процесса?

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

Если это будет подтверждено, сервер отправит ответ приложению, что запрошенные функции «лицензированы», Первоначально я думал, что каждый раз, когда проверка будет успешной, время этой проверки будет сохраняться. Затем приложение продолжит работу с разблокированными функциями, скажем, 48 часов после последней успешной проверки. Проблема в том, как надежно сохранить это значение времени? Опять же, рутированные пользователи могут просто изменить значение, и приложение не станет мудрым.

Кто-нибудь разработал серверную систему для управления покупками в приложении и может предложить несколько предложений?

7
задан chuz 23 May 2011 в 01:32
поделиться