我如何多次购买Google Play产品?

时间:2017-05-31 14:10:19

标签: java android android-studio developer-console

我只能购买一件商品(“productitem1”)。如果我购买了这件商品,我就不能再购买了。但我需要多次购买它。在我的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 个答案:

答案 0 :(得分:2)

在您购买具有相同SKU的其他商品之前,您需要使用应用内结算API中的一种方法来使用它,例如language: 'fr'

IabHelper.consumeAsync()

此处有更多信息:https://developer.android.com/training/in-app-billing/purchase-iab-products.html#Consume