Как мы проверяем биллинговую квитанцию Android-приложения на стороне сервера?
Я внедряю биллинг в приложении в игру Android, и мы хотим использовать сервер для хранения информации о покупке.
В соответствии с тем, что я понял до сих пор, Android Market вернет обращение к приложению в форме приемника Broadcast о статусе покупки. Но, поскольку мы сохраняем информацию о транзакции на сервере, мое приложение должно выполнить некоторый HTTP-запрос и обновить мой сервер. Существует очень высокая вероятность того, что этот HTTP-запрос может быть имитирован хакером вручную. Как проверить данные о поступлении на рынок Android из кода сервера?
Есть ли какой-либо обратный вызов Google checkout для моего сервера? Или есть способ проверить ответ IAB, предоставленный клиентом http, является подлинным, и это покупка, сделанная только в моем приложении!
В процессе IAP IOS IAP, у них есть веб-API проверки подлинности @https://sandbox.itunes.apple.com/verifyReceipt, для которого мы можем пройти
req.method = URLRequestMethod.POST;
req.data = "{\"receipt-data\" : \""+ t.receipt +"\"}";
и он говорит, что получение является правильным или нет. У нас есть что-то подобное для Android?
Ответы
Ответ 1
Обновить. Вы можете использовать метод getPurchases()
для извлечения "неиспользуемых" покупок, как описано в документах разработчика:
http://developer.android.com/google/play/billing/billing_reference.html#getPurchases
Оригинальный ответ (теперь устаревший)
API Google Checkout устарел. Теперь вы должны использовать API статуса покупки.
Если вы планируете использовать API статуса покупки, ссылка выше указывает на эти ограничения:
- Вы можете использовать API для проверки состояния отдельных элементов - массовые запросы на статус заказа не поддерживаются в настоящее время.
- Вы можете запросить информацию о заказах, размещенных после или после 12 июня 2013 года, но не для заказов, размещенных ранее.
- Вы можете запрашивать покупки любого типа элементов, созданного с помощью API In-app Billing v3, или покупки управляемых элементов, сделанных с помощью In-app Billing v1 и v2. Вы не можете использовать API статуса покупки для запроса покупки неуправляемых элементов, сделанных с помощью In-app Billing v1 или v2.
Ответ 2
EDIT: этот ответ устарел, см. ответ Dan J.
Нет обратного вызова, но Google Checkout имеет API. Ваши ответы здесь.
Ответ 3
Это старый пост, но я надеюсь помочь другим.
Существует способ проверки покупок с серверной стороны, вы должны использовать этот API остатка.
https://developers.google.com/android-publisher/api-ref/purchases/products/get