Android InApp Billing v3 - 测试多个设备问题

Bas*_*sil 5 android in-app-purchase in-app-billing

我在Android InApp计费v3上面临一个问题.我在playstore中创建了一个托管的inapp产品,我需要从多个设备上多次购买.为此,我正在两个不同的设备上测试应用程序.我没有在本地服务器上保留任何购买数据.因此,每当我需要再次购买该项目时,我将查询该项目以获得购买状态,并且如果该项目被购买,我将使用该项目并将再次调用购买功能.我正在详细说明我的错误情况

  1. 第一台设备上,我完成了付款,并获得了成功结果.
  2. 在同一台设备上,如果我查询购买详情,它会给出确切的信息.
  3. 如果我在第二个设备上查询的话.它给人的 inventory.hasPurchase(sku)虚假inventory.getPurchase(sku).

谷歌搜索时,我发现这与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
                        }

                    }

                }
        }
    };
Run Code Online (Sandbox Code Playgroud)