Подтвердить что ты не робот

Вопросы безопасности и дизайна в приложениях

У меня есть несколько вопросов, связанных с Android In-App Billing:

  • Можно ли совершить покупку у нерыночного приложения? Я понимаю, что это будет уязвимость, но у меня нет возможности узнать, возможно ли это или нет.

  • Как я могу получить состояние покупки для определенного продукта? Насколько я понимаю, это можно сделать с помощью запроса RESTORE_TRANSACTIONS, но его не рекомендуется использовать очень часто. Это не теоретическая проблема. Мое приложение позволяет пользователям покупать контент, используя биллинг в приложении. Содержимое можно загрузить с сервера, и сервер должен разрешить загрузку контента только в том случае, если он был приобретен. Но он не может проверить, был ли приобретен контент или нет, без использования подписанного ответа от Android Market.

  • Как я могу получить цену и описание товара на Android Market? Кажется, что я знаю ответ, и это "не может быть сделано", но, возможно, я ошибаюсь. Было бы очень полезно иметь возможность получить цену товара.

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

4b9b3361

Ответ 1

В порядке:

1- Нет. Процесс выставления счетов в приложении является частью рынка. Если приложение поступит из других источников, для Market не существует возможности проверить подлинность/подлинность приложения.

2- Это ваша ответственность за сохранение состояния покупки для определенного продукта. Из doc:

Вы должны настроить базу данных или какой-либо другой механизм для хранения информации о покупке пользователей.

RESTORE_TRANSACTIONS следует зарезервировать для переустановок или первоначальных установок на устройстве.

3 К сожалению, в это время вы правы. Выполните запрос на функцию!

Тем временем один из вариантов - создать веб-сайт с appengine, хранить списки всего вашего контента и цены там, а затем вручную синхронизировать цены, указанные на вашем сервере приложений, с обновленными ценами на Market. Затем ваше приложение Android вытащит данные с сервера AppEngine. Это намного лучше, чем значения цены жесткого кодирования в самом приложении, так как вам не нужно, чтобы все сразу обновляли приложение, чтобы видеть точные цены, когда вы что-то меняете. Единственное предостережение этого метода заключается в том, что если пользователь находится в другой стране, биллинг в приложении отобразит приблизительную цену в их родной валюте, и вам не удастся точно определить, какая цена будет отображаться для них.

Связанный, один из Адвокатов разработчиков Android дает возможность поговорить о LVL/IAP в IO, названном "Уклоняющиеся пираты и останавливая вампиров, используя библиотеку проверки лицензии, In-App Billing и App Engine". - Конечно, стоит посмотреть, когда они выпустят сеансовые видеоролики на веб-сайте.