CONFIRM_NOTIFICATIONS消息提供SERVICE_UNAVAILABLE结果

时间:2011-06-29 21:48:31

标签: android in-app-purchase in-app-billing

我们在Android的应用内购买消息流的最后部分看到“服务不可用”错误,我们不知道原因。

我们已经实施了Android的应用内结算功能,而且运行良好,我们几乎可以完成整个邮件序列:

1)我们发送REQUEST_PURCHASE消息并获得0的RESPONSE_CODE

2)我们收到com.android.vending.billing.IN_APP_NOTIFY

3)我们发送GET_PURCHASE_INFORMATION消息并获得0的RESPONSE_CODE

4)我们收到com.android.vending.billing.PURCHASE_STATE_CHANGED

5)我们发送的是CONFIRM_NOTIFICATIONS。

我们查看了Google提供的示例应用(com.android.vending.billing),其中说明我们必须在CONFIRM_NOTIFICATIONS消息上提供的所有内容都是通知ID的字符串数组。我们从最后一条消息收到的响应是我们的BroadcastReceiver中的com.android.vending.billing.RESPONSE_CODE消息,其中包含响应代码值2(映射到“service unavailable”)。为什么我们从最后一条消息中得到错误?我们正在使用静态项ID android.test.purchased,如果这有所不同。

Android日志消息是:

06-29 14:20:12.054:DEBUG / iapReceive(21391):通知,notificationId android.test.purchased

06-29 14:20:12.054:DEBUG / iapSend(21391):使用notificationId发送GET_PURCHASE_INFORMATION android.test.purchased

06-29 14:20:13.994:DEBUG / iapReceive(21391):inapp_signed_data是{“nonce”:5454,“orders”:[{“notificationId”:“android.test.purchased”,“orderId”: “transactionId.android.test.purchased”, “的packageName”: “com.shinyandroid”, “的productId”: “android.test.purchased”, “purchaseTime”:1309382399381 “purchaseState”:0}]}

06-29 14:20:13.994:DEBUG / iapReceive(21391):购买状态已更改,notificationId android.test.purchased,SKU android.test.purchased

06-29 14:20:13.994:DEBUG / iapSend(21391):使用notificationId发送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 个答案:

答案 0 :(得分:1)

已经过了几个星期所以我不再100%确定我们做了什么来修复它,但我认为问题是用于签署我们上传的应用程序的密钥之间的不匹配(在测试模式下)到Android Market以及我们用来签署我们在手机上运行的应用程序的密钥。