구글 인앱 빌링 ver 3 item already owned 오류시 해결방법

|
소비형 아이템의 경우 구매를 할시 오류가 나면 이미 구매한 상품이라는 오류가 뜨면서 재구매가 안되는 현상이 있습니다.
oncreate() 에서 queryInventoryAsync를 실행시킨후
getPurchase 를 호출 하고 consumeAsync를 호출하면 소비형아이템이 정상적으로 구매가 됩니다.


oncreate()
       mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
            public void onIabSetupFinished(IabResult result) {
               if (!result.isSuccess()) {
                  // Oh noes, there was a problem.
                  Log.d(TAG, "Problem setting up In-app Billing: " + result);
               }            
                  // Hooray, IAB is fully set up!
               mHelper.queryInventoryAsync(mGotInventoryListener);
            }
         });


// Listener that's called when we finish querying the items and subscriptions we own
    IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
        public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
            Log.d(TAG, "Query inventory finished.");
            if (result.isFailure()) {
        //        complain("Failed to query inventory: " + result);
                return;
            }

            // Check for gas delivery -- if we own gas, we should fill up the tank immediately
            Purchase gasPurchase = inventory.getPurchase(SKU_GAS);
            if (gasPurchase != null && verifyDeveloperPayload(gasPurchase)) {
                Log.d(TAG, "We have gas. Consuming it.");
                mHelper.consumeAsync(inventory.getPurchase(SKU_GAS), mConsumeFinishedListener);
                return;
            }
        }
    };


Trackback 0 And Comment 0
prev | 1 | ··· | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ··· | 15 | next