Android IAB V3查询拥有的项目返回正数,但是消费返回项目不归属

时间:2013-04-19 11:08:47

标签: android in-app-billing

我已经在我的应用程序中使用了android IAB V3。在购买和消费物品后立即查询自有物品时,IABHelper返回我仍然拥有该物品。但在调用消耗时,它返回该项不归属。我在下面给出我的logcat输出。

04-19 15:57:43.668: D/IabHelper(2757): Starting async operation: refresh inventory
04-19 15:57:43.678: D/IabHelper(2757): Querying owned items...
04-19 15:57:43.688: D/IabHelper(2757): Package name: com.games.mygame
04-19 15:57:43.688: D/IabHelper(2757): Calling getPurchases with continuation token: null
04-19 15:57:43.728: D/IabHelper(2757): Owned items response: 0
04-19 15:57:43.758: D/IabHelper(2757): Sku is owned: com.games.pack1
04-19 15:57:43.768: D/IabHelper(2757): Continuation token: null
04-19 15:57:43.768: D/IabHelper(2757): Querying SKU details.
04-19 15:57:43.838: D/IabHelper(2757): Got sku details: SkuDetails:{"title":"Coin Pack 1 (My Game)","price":"Rs. 105.69","type":"inapp","description":"Pack of 50000 coins.","productId":"com.games.pack1"}
04-19 15:57:43.838: D/IabHelper(2757): Ending async operation: refresh inventory
04-19 15:57:46.931: D/IabHelper(2757): Ending async operation: 
04-19 15:57:46.931: D/IabHelper(2757): Starting async operation: consume
04-19 15:57:46.931: D/IabHelper(2757): Consuming sku: com.games.pack1, token: wykaaffjpwmehhfdkgmzsbpb.AO-J1OxWZjidethjntgfks3C1tpo6TfiMgWyAc8ycTZWsr7UcaHidKIFRaH-K6L_aa2SYGFc3mq8kLBVajj3mtXQcw8oy8-GAT8aSBLJA_aP3AsnjEKSQ1Ot0OqTBDKJWRduiz
04-19 15:57:47.642: D/IabHelper(2757): Error consuming consuming sku com.games.pack1. 8:Item not owned
04-19 15:57:47.642: D/IabHelper(2757): Ending async operation: consume

我必须等几分钟才能再次购买此商品。这是因为Google Play的本地缓存。有没有人遇到过这个问题。任何人都可以告诉我可能出现的问题以及如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

答案是在应用内结算文档http://developer.android.com/google/play/billing/api.html#consume

这是由本地缓存引起的。 由于Google Play客户端现在可以在设备上本地缓存应用内结算信息,因此您可以使用版本3 API更频繁地查询此信息,例如通过getPurchases调用。与以前版本的API不同,许多版本3 API调用将通过缓存查找而不是通过与Google Play的网络连接进行服务,这显着加快了API的响应时间。这就是为什么他们建议根据消费功能的响应而不是根据所拥有的物品来奖励购买物品。