Google Play Billing Deprecation

Here is the message I receive on my Google Play Developer Console. Does anyone know when this will be upgraded from version 1 to 3?

Play Billing Library Version Deprecation

We’ve detected that this app is using an old version of Google Play Billing. From November 1, 2021, all app updates must use Billing Library version 3 or newer.

This is the latest plugin version: https://docs.coronalabs.com/plugin/google-iap-billing/index.html

You just need to put this in build.settings:
"plugin.google.iap.billing"] = { publisherId = "com.coronalabs" },

And require the module this way:
local store = require ( "plugin.google.iap.billing" )

2 Likes

Yup! The iap.billing plugin uses the latest client version. Make sure to read migration notes here

After changing the plugin reference, I was able to create a new build, upload it to Google Play, but when I went in to test a purchase on device…

using store.purchase(product);

Solar2D(Corona) produced an error in my ADB console as follows:

04-02 11:13:00.443 12942 12942 E Corona : Error while purchasingAn internal error occurred.

The term ‘product’ in my code is exactly the same as it in in my LIVE version of the app, which uses the old iap plugin. So, what’s going on? It’s obviously loading the product correctly, as evidenced by my print statements:

04-02 11:13:00.317 12942 13066 I Corona : ||||$|product:g50l20
04-02 11:13:00.317 12942 13066 I Corona : ||||$|store:table: 0xc2824640
04-02 11:13:00.317 12942 13066 I Corona : ||||$|store.isActive:true
04-02 11:13:00.317 12942 13066 I Corona : ||||$|store.canMakePurchases:true

This problem has been solved, but I’d like to recommend this information be made available for other developers from making this same mistake, as developers must upgrade their IAP plugin before Nov 1, 2021.

We all know that over months and years, Google (and Apple) often change the way in which our apps communicate with their backend for many things, including In-App Purchases.

Apparently, the Google Play console does not recognize my developer email address as an acceptable user for an Internal Test unless…

  1. I add my email address to the Internal Test list
    AND/OR
  2. I go to the URL link provided for the Internal test from my Android device.

I wrote AND/OR because I did both, and I’m not sure which caused Google Play to stop causing the error.

@vlads ideally, instead of a generating an error message, the Solar2D (Corona) error could provide some details to prevent others from having to track down this issue.

How to handle the refunded flow in the new billing API? Previous iap3 plugin had ‘refunded’ state but the current one does not have one

The list of email addresses for testing license is in:
Dev console > Settings > License Test
(May be different because I have an Italian account)

To see the transaction errors/details, see https://docs.coronalabs.com/plugin/google-iap-billing/event/storeTransaction/transaction.html

I suggest you to log this whole object as string when you are testing.

I’m afraid that Solar2D can’t do much with configurations error Google-side, as for any other third party.

After making the changes to support the new Google IAP Billing, when I upload the build to Internal Test and click Review prior to Rollout, I see only 1 warning message related to Java; THAT’S NORMAL.

However, when I attempt to PROMOTE this new build to PRODUCTION, I am still getting a Google IAP Billing WARNING. Any ideas why?

Warning
We’ve detected that this app is using an old version of Google Play Billing. By November 1, 2021, all app updates must use Billing Library version 3 or newer. Update to Billing Library 3 before this date. Learn More about Billing Library 3.

1 Like

Apparently, Google removed the warning after at least a day. So, although Google did removed the warning when I created a new build supporting the new Google Billing at the time I created the build, for another game, it seemed they didn’t remove the warning until a day later, for some reason.