3

As far as my users go, is there a difference between using version 2 or version 3 of in-app billing in Google Play? Right now I am in the console, thinking I am using version 3. But I see three options: managed, unmanaged, subscription. However, version 3 is supposed to only have two options: managed and subscription.

My API, I think, is using version 3, which is what I want. But the console is confusing me. So how do I make sure I am indeed using version 3?

The reason this is not so simple is because in version 3, managed goods can be re-purchased once consumed; whereas in version 2, managed goods are once in a lifetime. I am hoping to get answers from people who have actually successfully used version 3; so I won't go into discussion of unmanaged goods. Thanks.

Pouton Gerald
  • 1,625
  • 22
  • 32

2 Answers2

1

In-App items are shared between version 2 and version 3 (i.e., a managed item can be purchased via the v2 or v3 methods). If you'd like to use version 3 (and you should, 100% of the time), then you'd want to make sure you are following the Implementing In-App Billing V3 Guide.

ianhanniballake
  • 191,609
  • 30
  • 470
  • 443
  • But in the console, when you click, say, managed it shows the description that pertains to v2. Are you certain such is the case? – Pouton Gerald May 02 '13 at 05:45
  • @PoutonGerald - the description in the console for managed items **also** applies to v3. Managed items can only be purchased once per account (you must consume them before users can purchase them again in v3). Google does store the transaction information for each purchase. What are you seeing that is v2 specific? – ianhanniballake May 02 '13 at 14:34
1

This question is ~10 years old but I need a detailed methodical approach to tell the In-app Billing API/SDK/library version that is used by my 10+ years old app.

The most relevant clues I found so far:

  1. In-app Billing Version Notes: As of December 2012, there were only 3 In-app Billing versions: 1, 2, 3.
  2. Unity Forum: As of January 2021, Google Billing library v3 is still the latest & greatest. Any reference to a version higher than 3, is an older naming convention.
  3. SO answer: In-app Billing Version 3 provides a new Android Interface Definition Language (AIDL) file named IInAppBillingService.aidl.

I am more looking for the version I last used 10+ years ago, not the one currently supported by (or active against) Google, so I grep-ed my source code and found the following references:

protected Bundle makeRequestBundle(String method) {
  Bundle request = new Bundle();
  request.putString("BILLING_REQUEST", method);
  request.putInt("API_VERSION", 1);
  request.putString("PACKAGE_NAME", getPackageName());
  return request;
}

This hints at using version 1 all along.

Also, I am using IMarketBillingService.aidl in my code, not IInAppBillingService.aidl. This means that my In-app Billing use is truly ancient and I must update it to keep up with Google Play.

And... as of November 2022, version 4 (or newer) must be used:

enter image description here

WebViewer
  • 761
  • 7
  • 21