2012-05-24 66 views
2

我們剛剛在亞馬遜Android商店中推出了我們的遊戲,其新的應用內購買SDK。我們看到一些銷售導致用戶沒有獲得他們付費的虛擬物品。我已經複製了一次會導致每次都會發生這種情況的用例。亞馬遜應用內購買Bug

基本上,用戶啓動和IAP,他們被帶到亞馬遜購買對話框,他們進行購買,他們被給予亞馬遜的購買確認對話框。
如果用戶點擊了對話框上的關閉按鈕或屏幕底部的選項欄上的後退按鈕(使用Kindle Fire),對話框關閉,IAP進程將消息發送到購買的應用程序取得成功。我收到消息並處理它,一切都很好。
但是,如果用戶點擊「主頁」按鈕,購買確認關閉並且用戶被轉儲到主屏幕,則應用程序永遠不會收到購買成功消息。

我試圖得到一些解決方法,因爲用戶不會在乎亞馬遜的IAP實現中的消息收據的變幻莫測,他們只是在乎他們付出了他們沒有得到的東西。我們有1個非消費品,這不是問題,因爲我們的應用程序在啓動時檢查以前的購買。但消費品是另一個問題。你不能恢復這些。

有沒有人遇到過這個問題,並且有解決方法嗎?

回答

1

實際上有2個應用程序正在執行購買。購買由您的應用程序啓動,但由另一個應用程序的設備中的亞馬遜IAP組件執行。如果您按回家按鈕,這會將應用程序置於後臺,並且通常由於Android的積極的內存管理,應用程序會進入休眠階段甚至死亡,具體取決於設備上的資源利用率。這會導致購買無法訪問您的應用。

亞馬遜有一個解決方法。如此處所述 - https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs-v2/implementing-iap-2.0,實施onPurchaseUpdateResponse(),該應用程序重新啓動時將獲取待定購買。有一個小的時間延遲,可以防止立即「獲取未決購買」。

此外,請確保在向用戶完成項目後調用notifyFullfilment()。不這樣做仍然會導致您的應用程序工作;但它可能會對您的貨幣化產生負面影響(有不同的原因,我不會詳細討論)。