2017-05-31 52 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

相關問題