Question

I'm having two versions of my app. Free and Pro. I'm going to remove the free version and change status of the Pro version from paid to free and use in app billing to unlock advanced features instead of having two different apps. Users already paid should start off with all features enabled.

Is there a way to check if a user has purchased the app after changing it to free?

From what I have read, LVL can't do this.

Is it possible with IAB v3?

Was it helpful?

Solution

There are several postsbelow here on StackOverflow concerning this topic. The short answer is that there's no fool-proof way to do it.

Some possibilities:

  • Check for some prexisting object exclusively from the Pro Version(db, pref, etc)

    This won't work for new devices, only if it's a simple upgrade on an existing install

  • Use the old Pro app itself as the "key" to unlock(check PackageManager)

    Suffers from the same problem as above, and even uglier

  • Create a unique id for each Pro customer, save it server-side and check on startup

    Necessitates internet access for validation, not very secure, users hate data collection

A hybrid of more than one method would probably work best, but it depends highly on the implementation. No matter what you come up with, there will be some issues, and I don't think there's a way to 100% cover every existing customer.


How to migrate from a paid android application to an application paid for with in-app billing?

Converting an Android application from a free/paid model to in-app paid unlocking

Changing paid Android App to free with In App Billing - grandfathering existing customers

How can I use the paid version of my app as a "key" to the free version?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top