Pouton Gerald
Pouton Gerald

Reputation: 1625

how to tell which version of in-app billing I am using

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.

Upvotes: 3

Views: 2220

Answers (2)

WebViewer
WebViewer

Reputation: 811

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

Upvotes: 1

ianhanniballake
ianhanniballake

Reputation: 199825

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.

Upvotes: 1

Related Questions