Сообщение CONFIRM_NOTIFICATIONS дает результат SERVICE_UNAVAILABLE - PullRequest
1 голос
/ 30 июня 2011

Мы видим ошибку «служба недоступна» в последней части потока сообщений о покупках в приложении Android, и мы не знаем, почему.

Мы внедрили Android-биллинг в приложении, и все работает достаточно хорошо, чтобы мы почти полностью проходили последовательность сообщений:

1) Мы отправляем сообщение REQUEST_PURCHASE и получаем RESPONSE_CODE0 назад

2) Мы получаем com.android.vending.billing.IN_APP_NOTIFY

3) Мы отправляем сообщение GET_PURCHASE_INFORMATION, а также получаем RESPONSE_CODE 0 назад

4) Мы получаем com.android.vending.billing.PURCHASE_STATE_CHANGED

5) Мы отправляем сообщение CONFIRM_NOTIFICATIONS.

Мы рассмотрели пример приложения (com.android.vending.billing), которое Googleобеспечивает, что говорит, что все, что мы должны предоставить в сообщении CONFIRM_NOTIFICATIONS, это массив строк идентификаторов уведомлений.Ответ, который мы получаем от этого последнего сообщения, - это сообщение com.android.vending.billing.RESPONSE_CODE в нашем BroadcastReceiver, которое содержит значение кода ответа 2 (которое отображается на «услуга недоступна»).Почему мы получаем ошибку из этого последнего сообщения?Мы используем статический идентификатор элемента android.test.purchased, если это имеет значение.

Сообщения журнала Android:

06-29 14: 20: 12.054: DEBUG / iapReceive(21391): уведомление, уведомление ID android.test.purchased

06-29 14: 20: 12.054: DEBUG / iapSend (21391): отправка GET_PURCHASE_INFORMATION с уведомлением ID android.test.purchased

06-29 14: 20: 13.994: DEBUG / iapReceive (21391): inapp_signed_data равно {"nonce": 5454, "orders": [{"tificationId ":" android.test.purchased "," orderId ": "actionId.android.test.purchased "," packageName ":" com.shinyandroid "," productId ":" android.test.purchased "," purchaseTime ": 1309382399381," purchaseState ": 0}]}

06-29 14: 20: 13.994: DEBUG / iapReceive (21391): состояние покупки изменено, уведомление ID android.test.purchased, SKU android.test.purchased

06-29 14: 20: 13.994: DEBUG / iapSend (21391): отправка CONFIRM_NOTIFICATIONS с уведомлением android.test.purchased

06-29 14: 20: 14.845: DEBUG / vending (18344):[51] RequestRunnable.run (): получено исключение ApiException из асинхронного запроса: ошибка из серверной части.Request = com.android.vending.model.AckNotificationsRequest, Response = BAD_REQUEST

06-29 14: 20: 16.104: DEBUG / vending (18344): [51] RequestRunnable.run (): получено исключение ApiException из асинхроннойЗапрос: Ошибка от бэкэнда.Request = com.android.vending.model.AckNotificationsRequest, Response = BAD_REQUEST

06-29 14: 20: 18.274: DEBUG / vending (18344): [51] RequestRunnable.run (): получено исключение ApiException из асинхроннойЗапрос: Ошибка от бэкэнда.Request = com.android.vending.model.AckNotificationsRequest, Response = BAD_REQUEST

06-29 14: 20: 20.824: DEBUG / vending (18344): [51] RequestRunnable.run (): получено исключение ApiException из асинхроннойЗапрос: Ошибка от бэкэнда.Request = com.android.vending.model.AckNotificationsRequest, Response = BAD_REQUEST

06-29 14: 20: 26.854: DEBUG / vending (18344): [51] RequestRunnable.run (): получено исключение ApiException из асинхроннойЗапрос: Ошибка от бэкэнда.Request = com.android.vending.model.AckNotificationsRequest, Response = BAD_REQUEST

06-29 14: 20: 26.854: WARN / vending (18344): [51] AsynchInAppAckNotifications.onException (): ошибка сервера в InAppAckNotificationsRequest: com.android.vending.api.ApiException: ошибка от серверной части.Request = com.android.vending.model.AckNotificationsRequest, Response = BAD_REQUEST

06-29 14: 20: 26.904: DEBUG / iapReceive (21391): асинхронный код ответа, requestId 5225550415890630760, responseCodeIndex 2

1 Ответ

1 голос
/ 20 августа 2011

Прошло пару недель, поэтому я больше не уверен на 100%, что мы сделали, чтобы исправить это, но я считаю, что проблема заключалась в несоответствии между ключом, который использовался для подписи загруженного нами приложения (в тестовом режиме)на Android Market и ключ, который мы использовали для подписи приложения, которое мы запустили на телефоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...