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

Проверка на стороне сервера при покупке биллинга версии 3 для покупок в Google Play (часть 2)

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

Это то, что у меня есть и что я хочу сделать:

У меня есть приложение, в котором пользователи могут приобрести несколько "элементов". Каждый элемент хранится на сервере, а элемент должен быть доступен для загрузки в приложении при покупке. Элементы - это управляемые элементы, которые можно приобрести только один раз (т.е. не потребляемые). У меня нет проблем с определением элементов в консоли разработчика Google Play, и я могу выполнить успешную покупку.

Что я не понимаю, так это то, как я могу заставить мой сервер не только подтвердить покупку (используя покупкуToken и подпись), но также знать, что это элемент X, а не элемент Y, который был приобретен? Есть ли какой-то API Google, где сервер может разговаривать с Google и спрашивать, к какому идентификатору пункта принадлежит определенная покупка? Есть ли другой способ сделать это?

4b9b3361

Ответ 1

Я ненавижу отвечать на свой вопрос, но эй, никто больше не делал! Я и мои коллеги снова посмотрели на проблему сегодня утром. Решение моей проблемы, наконец, произошло со мной, после того, как мы посмотрели, как работает проверка на стороне клиента в примере TrivialDrive. Человек, я чувствовал, что надеваю свою "тупую шляпу", когда понял, что не так.

Я думал, что это была покупкаToken и подпись, которая использовалась для проверки покупки, но таким образом не было никаких средств для проверки того, был ли приобретен товар A или пункт B.

Если вы хотите выполнить проверку на стороне сервера (или любую проверку), прежде чем сделать контент доступным для покупателя, это на самом деле оригинальные данные JSON (если вы используете классы IabHelper, вы получаете исходный JSON из Класс покупки), который вы должны использовать вместе с подписью и открытым ключом. И поскольку исходные данные JSON, которые вы передаете на свой сервер, также содержат всю информацию о покупке (например, идентификатор SKU и т.д.).

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

/Mr.Stupid отключение!