Autore Topic: In app billing v3  (Letto 622 volte)

Offline kikko088

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    OSx e Win
In app billing v3
« il: 24 Febbraio 2014, 21:46:32 CET »
0
Ciao a tutti, sto cercando di implementare l'in app billing, ho seguito questo tutorial e il grosso è fatto, il problema è che una volta comprato l'in-app (seguendo quel tutorial) questo non viene consumato e se cerco di riprenderlo mi dice che è gia stato acquistato:

questo è il codice utilizzato:

Codice: [Seleziona]
@Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_in_app_billing);
               
                buyButton = (Button)findViewById(R.id.buyMe);
                clickButton = (Button)findViewById(R.id.clickMe);       
                clickButton.setEnabled(false);
               
            mHelper = new IabHelper(this, base64EncodedPublicKey);
            mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
                         public void onIabSetupFinished(IabResult result) {
                                 if (!result.isSuccess()) {
                                         Log.d(TAG, "In-app Billing setup failed: " + result);
                                 }
                                 else {             
                                         Log.d(TAG, "In-app Billing is set up OK");
                                 }
                         }
            });
           

        }
       
        public void buttonClicked (View view){       
                clickButton.setEnabled(false);
                buyButton.setEnabled(true);
        }

         public void buyClick(View view) {
                 mHelper.launchPurchaseFlow(this, ITEM_SKU, 10001 ,mPurchaseFinishedListener, "");
         }

       
         IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
                 public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
                        
                         if (result.isFailure()) {
                                 // Handle failure
                                   Log.d("Error, mReceivedInventoryListener: ",result.getMessage());
                         }
                         else {
                                 mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU), mConsumeFinishedListener);
                         }       
                 }
         };
                
        IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
                public void onIabPurchaseFinished(IabResult result,Purchase purchase) {       
                        if (result.isFailure()) {                       
                                Log.d("Error, mPurchaseFinishedListener: ",result.getMessage());
                                return;
                        }     
                        else if (purchase.getSku().equals(ITEM_SKU)) {
                                consumeItem();
                                buyButton.setEnabled(false);
                        }   
        }};
   
           IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {
                   public void onConsumeFinished(Purchase purchase, IabResult result) {
                           if (result.isSuccess()) {                             
                                   clickButton.setEnabled(true);
                           }
                           else {
                                   Log.d("Error, mConsumeFinishedListener: ",result.getMessage());
                           }
                   }
           };
               
        public void consumeItem() {
                 mHelper.queryInventoryAsync(mReceivedInventoryListener);
         }
       
        @Override
        protected void onActivityResult(int requestCode, int resultCode,Intent data) {
              if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {     
                    super.onActivityResult(requestCode, resultCode, data);
              }
        }

        @Override
        public void onDestroy() {
                super.onDestroy();
                if (mHelper != null) mHelper.dispose();
                mHelper = null;
        }
}

potreste darmi qualche dritta su come risolvere il problema?

LogCat

Citazione
02-24 21:45:45.668: E/IabHelper(11056): In-app billing error: Unable to buy item, Error response: 7:Item Already Owned
02-24 21:45:45.668: D/Error, mPurchaseFinishedListener:(11056): Unable to buy item (response: 7:Item Already Owned)