2013-05-11 114 views
5

enter image description here 我正在開發一款帶有Google應用內結算服務的小遊戲。IAB錯誤您已擁有此商品

我參考Google示例項目的Trivial Drive。 讓我來問你關於從Google Play購買物品期間連接中斷的問題。

啓動具有普通互聯網連接的購買流程即可。

我的測試是這樣的。 一旦啓動購買流程,請斷開互聯網連接(通過拔下路由器的LAN)。 約2-3分鐘後,顯示連接超時。 在商家帳戶中,匯款已完成。 但是,當我查詢所有擁有的項目,沒有這個ID(最近購買)的擁有項目。 當我嘗試再次購買此項目時,它顯示「錯誤您已經擁有此項目」。

enter image description here

我怎樣才能解決這個問題? 有人遇到過這樣的問題嗎?

請幫忙。感謝所有意見和幫助。謝謝。

+1

我不認爲Google的商家和Play帳戶在Google方面會完全不同步;如果是這種情況,這將是廣爲人知的。但是,發生什麼是[GP IAB V3服務使用本地緩存](http://stackoverflow.com/a/14830007/1856738),因此您的應用程序在這方面需要非常強大。 - 不幸的是,你所描述的本身並不是一個問題,所以除非你描述了你在這方面的具體問題,唯一可能的建議是使你的應用程序在這方面健壯。 – 2013-05-12 14:49:59

+0

對不起,我提出問題的方式不正確。感謝您的建議。 – 2013-05-14 04:46:18

+0

我堅持相同的問題。我有一個無線連接問題導致超時錯誤,現在是「你已經擁有這個項目」的錯誤。這現在導致應用程序在啓動時崩潰。我可以在哪裏清除Google帳戶中的令牌? (這似乎應該有一個儀表板某處bc它發生很多根據StackOverflow 0.o) – NukeouT 2017-09-26 02:47:04

回答

1

Google IAP流程需要您在購買後調用consumePurchase() API。

你需要做的是調用getPurchases() API,這將返回一個購買清單以及purchaseToken。然後,您需要遍歷它們並針對所購買的未使用產品調用consumePurchase() API。

欲瞭解更多參考資料,請查看API reference

+0

感謝您的答覆,Vinay S Shenoy。 我沒有表示該項目不支持使用。 他們只是玩遊戲包。 當我調用這個方法skuList.addAll(inv.getAllOwnedSkus(itemType)); 它總是返回我擁有的產品ID。 但在上述情況下,它不包含最近購買的ID。 我想知道爲什麼Google不會將已經購買的ID(錢已轉移)返回到擁有的物品清單。 – 2013-05-11 09:34:11

+0

嗯..我還沒有和IAP API一起工作過..如果你調用'getPurchases()',它是否在API中返回? – 2013-05-11 09:42:04

+0

爲了澄清:Google IAB「要求」您在執行purcahse之後調用'consumePurchase()'實屬不正確。首先,有些項目不會被消費,其次,儘管谷歌提供了描述,但是究竟應該發佈消費的時間取決於具體情況。 – 2013-05-12 14:43:10

相關問題