#android
#Android
Вопрос:
Я внедряю биллинг в приложении для Android, и у меня возник вопрос об обработке намерения IN_APP_NOTIFY. Есть ли способ определить, какой исходный запрос вызвал это намерение? Например, если я отправлю несколько запросов в службу Market, как мой BroadcastReceiver узнает, какой запрос вызвал намерение?
Спасибо
Шраван
Ответ №1:
Кажется, что вы можете использовать notificationId для отслеживания различных намерений. Смотрите http://developer.android.com/guide/market/billing/billing_reference.html для получения более подробной информации.
Ответ №2:
Я думаю, что у меня та же проблема: когда пользователь инициирует покупку в моем приложении, я хочу иметь возможность определить, было ли полученное IN_APP_NOTIFY вызвано этой конкретной покупкой или оно было вызвано предыдущей неподтвержденной транзакцией. Поле notification_id IN_APP_NOTIFY в этом отношении бесполезно, и IN_APP_NOTIFY не предоставляет нам поле request_id, которое было бы полезно. Даже данные, полученные от PURCHASE_STATE_CHANGED, не позволяют с уверенностью знать, что конкретная инициированная покупка была полностью обработана Android Market. Можно попытаться сгенерировать какой-то уникальный токен во время покупки, сохранить его в поле developerPayload во время покупки, а затем позже использовать его как какой-то идентификатор запроса при получении PURCHASE_STATE_CHANGED.