2017-05-31 55 views
1

我只能购买一件商品(“productitem1”)。如果我购买了这件商品,我不能再购买。但我需要购买它几次。在我的Google Play控制台中,我只能选择“托管的应用内商品”和“子商品”。我已将其设置为“托管的应用内商品”。我如何多次购买Google Play产品商品?

@Override 
protected void onActivityResult(int request, int response, Intent data) { 
    if (request == 42) { 
     int responseCode = data.getIntExtra("RESPONSE_CODE", 0); 
     String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA"); 
     String dataSignature = data.getStringExtra("INAPP_DATE_SIGNATURE"); 
     if (response == RESULT_OK) { 
      try { 
       JSONObject jo = new JSONObject(purchaseData); 
       String productId = jo.getString("productId"); 
       Toast.makeText(this, "OK", Toast.LENGTH_SHORT).show(); 
      } catch (JSONException e) { 
       Log.e(getClass().getSimpleName(), "JSONException", e); 
      } 
     } 
    } 
} 

btnBuy.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      final String name = "productitem1"; 
      try { 
       Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(), name, "inapp", ""); 
       if(buyIntentBundle.getInt("RESPONSE_CODE")==0) { 
        PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT"); 
        startIntentSenderForResult(
          pendingIntent.getIntentSender(), 42, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0)); 
       } 
      } catch (Exception e) { 
       Log.e(Start.this.getClass().getSimpleName(),"Exception:",e); 
      } 

     } 
    }); 

回答

1

之前,你可以买到具有相同SKU的另一个项目,你需要消耗使用的来自应用内结算API提供的方法之一样IabHelper.consumeAsync()

mHelper.consumeAsync(inventory.getPurchase(SKU_ITEM), mConsumeFinishedListener); 

IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = 
      new IabHelper.OnConsumeFinishedListener() { 
    public void onConsumeFinished(Purchase purchase, IabResult result) { 
     if (result.isSuccess()) { 
      // provision the in-app purchase to the user 
      // (for example, credit 50 gold coins to player's character) 
     } else { 
      // handle error 
     } 
    } 
}; 

此处了解详情:https://developer.android.com/training/in-app-billing/purchase-iab-products.html#Consume

+0

我得到的错误:无法解析符号“mHelper”和无法解析符号“IabHelper” – SilverBlue

+0

你如何购买物品?请在你的问题中增加一些代码,我们可以看到你正在使用哪个版本的购买库(很明显,mHelper是一个'IabHelper'实例) – MatPag

+0

我在我的问题帖子中购买了代码。我从谷歌导入了实际的文件。所有采购都能正常工作,但我只能一次购买所有商品,而不是多个。 – SilverBlue

相关问题