2015-05-04 70 views
0

我正在使用Google Play IABv3,並希望能夠輕鬆測試我所做的事情(並不令人驚訝)。由於IABv3所有項目都進行了管理,並且由應用程序使用它認爲耗材的項目。在Google Play中測試非易耗品IAP項目

我不確定測試非消耗性產品的預期工作流程是什麼。爲了能夠多次測試購買流程,您需要能夠刪除以前的購買。然而,購買意圖是非消耗性的,所以我們顯然不希望添加任何消耗它的代碼(因爲它可能意外地漏過並且刪除真正的用戶購買)。

我想通過購買清算測試用戶帳戶的一些方法,我懷疑是可能的,因爲沒有「真正的」測試用戶。

建議如何做到這一點?

回答

1

您可以使用測試產品ID而不是實際項目。請記住只在調試版本中使用它。

https://developer.android.com/google/play/billing/billing_testing.html

android.test.purchased

當您的應用內結算請求與 這個產品ID,谷歌播放回應,彷彿你成功 購買的物品。該響應包含一個JSON字符串,其中包含 假購買信息(例如,僞訂單ID)。在一些 的情況下,JSON字符串被簽名並且響應包括 簽名,因此您可以使用這些響應來測試簽名驗證實現 。

android.test.canceled

當你使用這個產品ID,就好像 購買被取消了谷歌播放響應的應用程式 結算請求。當訂單處理過程中遇到錯誤 (例如無效信用卡),或者您在取消用戶訂單之前取消訂單時,可能會發生這種情況。

android.test.refunded

當 您使用這個產品ID提出應用內結算請求,谷歌播放 響應,就好像購買是退還。通過Google Play的應用內結算服務啓動的退款不能爲 。退款必須由您(商家)發起。在您通過Google電子錢包商家帳戶處理退款請求 後,退款消息會通過Google Play發送給您的應用程序 。只有當Google Play 從Google電子錢包收到已退款的通知時,纔會發生這種情況。對於 有關退款的更多信息,請參閱處理IN_APP_NOTIFY消息 和應用內結算定價。

android.test。item_unavailable

當你使用這個產品ID提出應用內結算請求,谷歌播放 響應,好像被購買的商品在 應用程序的產品列表中沒有列出。

+0

這不起作用,因爲「android.test.purchased」被視爲被管理產品,這意味着您需要在再次測試之前消耗。當然,你可以添加一個if語句直接在購買時使用它,但這會產生許多不同的不需要的副作用。 – alaeus

+0

@alaeus所以最好的解決方案是添加代碼以僅在調試版本中使用這些項目,並在真實產品ID上測試您的應用程序。您可以根據構建類型/風格創建一個類的多個不同實現。調試版本中的一個會消耗項目,但發佈版本在調用其方法時不會執行任何操作。 – tomrozb

+0

這似乎很容易出錯,因爲它只能由開發人員使用,或讓測試人員不使用發佈版本。另一個解決方案是製作一個單獨的未發佈的應用程序(使用相同的ID),用於消費所有購買。雖然這感覺過度。 – alaeus