[英]Android InApp Billing v3 - testing with multiple devices issue
我在Android InApp計費v3上面臨一個問題。 我在playstore中創建了一個托管的inapp產品,我需要從多個設備上多次購買。 為此,我正在兩個不同的設備上測試應用程序。 我沒有在本地服務器上保留任何購買數據。 因此,每當我需要再次購買該項目時,我將查詢該項目以獲得購買狀態,並且如果該項目被購買,我將使用該項目並將再次調用購買功能。 我正在詳細說明我的錯誤情況
inventory.hasPurchase(sku)
作為false , inventory.getPurchase(sku)
作為null 。 谷歌搜索時,我發現這與Google Playstore緩存有關。 執行此操作后,手動緩存清除,我按預期獲得結果。 任何人都可以指導我上述問題。
IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
if (result.isFailure()) {
invokePurchaseError(ResponseCode.FAILED_TO_QUERY_INVENTORY, result.toString());
}
else{
if(mActionCode == RC_REQUEST_FOR_QUERYING){
boolean mIsPurchased = false;
Log.e("hasPurchase", inventory.hasPurchase(mSku)+"");
Log.e("getPurchase", inventory.getPurchase(mSku)+"");
if( inventory.hasPurchase(mSku)){
mPurchaseStatus = inventory.getPurchase(mSku);
mIsPurchased = (mPurchaseStatus != null && verifyDeveloperPayload(mPurchaseStatus));
if(mPurchaseStatus!=null){
mPurchaseStatus.getOriginalJson());
}
else{
//Not purchased
}
}
}
}
};
我遇到了同樣的問題:在第一台設備上買了托管項目,但第二台和第三台設備似乎沒有“知道”它。 對我來說,解決方案很簡單,但是:作為第一步,我在所有涉及的設備上清除了PlayStore緩存(不確定它是否有必要......)其次我在第一台設備上再次購買了該項目,但是其他的似乎也是如此無法獲取信息。 我給了整個“系統”一些時間(大約10-15分鍾)並對設備2和3進行了重新檢查。而且 - 哦,不知道! - 他們終於得到了正確的hasPurchase = true
信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.