Is this possible? Converting Paid app as a yearly subscription - android

I have my paid app in Playstore and AppStore. Now as per our requirement I want to convert a paid app as a yearly subscription.
For example, Users purchase the app at $50 and that will be their first-year subscription. Is that possible?
I notice both Playstore and AppStore only have two options for downloading the app that is,
Users can download the app for free.
Users need to pay some amount to download the app, and users can use that app for a lifetime.
So there is no subscription option for downloading the app.
But Playstore and AppStore provide subscription options as In-app purchases.
To achieve my requirement, I have a thought to implement the below idea,
Once users paid and download the app, we will allow the user to use the app for one year. Then after one year, we will ask for the subscription(In-app purchase) when opening the app (without any free content in the app for the user), the user needs to pay to continue to use it. If payment is successful then I allow the user to login the app, if-else the user needs to exit the app.
Will the AppStore and PlayStore accept the above idea?
Is this possible? If not, please suggest a solution for us?
The main goal is users need to pay $50 per year.
Thanks in advance.

re the Play Store. If you want to have a subscription you need to make your app Free and then add your subscription(s).
See in Google Play console
Monetise,
Products,
App Pricing,
In-App products,
Subscriptions
App Pricing - make it Free. Note you can't change back to Paid after making it free, so make sure you understand that before making it free.
Subscriptions - Enter your subscription details and make the subscription active.
Any app that is marked as Free will have an install button on Google Play. If it is a paid app then the user will be prompted to pay for it before they can download it.
A subscription can have a trial period. The user is only charged when the trial period ends or you option to control the trial within your app via your own server etc.
I can’t comment re the Apple Store.

Related

Can an Android / IOS single app have both Subscription and Full Purchase Methods?

I am new to Android / IOS apps development with React Native. I am using react-native-iap to implement in app purchases.
I want to know whether an Android / IOS single app can have both Subscription and Full Purchase Methods ?
If yes, what will happens
When user first subscribed the app, and then try to purchase the full app ? will subscription get cancelled ?
When user purchased full app and try to do a subscription ?
Thank you.
Subscriptions and "one-time-purchases" are different.
When you buy 2 subscriptions, you can manage the replacement of one by another one. Although, the behaviour is different in iOS and android:
On the Apple App Store, you have the notion of "subscription group". If you try buying another product in the same subscription group, the previous subscription will be automatically replaced by Apple (at the next renewal date for a downgrade, immediately for a crossgrade/upgrade).
On the Google Play Store, you don't have this notion and you'll have to manage the replacement by yourself (more info on this here: Allow users to upgrade, downgrade, or change their subscription)
When you want to replace a subscription by a one-time-purchase, you can manage the "replacement" manually on the Google Play Store, but not on iOS:
On Google, you have an API to cancel a subscription: use it after your user buy the "full-app"
On Apple, such API doesn't exist and the only thing you can do for now, is explaining to your user the different steps to cancel his subscription. You can help him with this deeplink: https://apps.apple.com/account/subscriptions
Opening this URL launches iTunes or iTunes Store and displays the Manage Subscriptions page where the user can upgrade, downgrade, or cancel their subscription by disabling auto-renew
Concerning the full app => subscription, I don't know. You could refund the purchase, but it would mean you would have lost money during the corresponding period of time.

iOS/Android pay licence to use app

I am developing an application for iOS and Android and this app will be free on the store, but to use all features of the app, the user will need to pay a licence every month/year and if he doesn't pay it, he will have only a limited access to the app, with just few features. Moreover, the first month after he registers, he will have full access.
To pay the licence, it'll can be done in the app or on the website.
For that, do I need to develop a function to check on each connection my database to see if the user has paid, or is there already something done. I have look for "in app purchasing" but it seems that it works only for app where we pay once to have full features, and not every month.
Thank you :)
Regards,
There is a system in in-app-purchase for this, just check the url: https://support.apple.com/en-gb/HT202023 and "Auto-renewing subscriptions" tab
you can go for in app purchase / in app billing
iOS,
In-App Purchase lets you sell a variety of items directly within your free or paid app, including premium content, virtual goods, and subscriptions. And just like apps you sell on the App Store, you receive 70% of the purchase price.
https://developer.apple.com/in-app-purchase/
Android
Use In-app Billing to sell digital goods, including one-time items and recurring subscriptions.
Supported for any app published on Google Play. You only need a Google Play Developer Console account and a Google payments merchant account.
Checkout processing is automatically handled by Google Play, with the same look-and-feel as for app purchases.
http://developer.android.com/google/play/billing/billing_overview.html

Which user has installed an Android App?

When an user installs an Android App from Google Play, he/she has to login with a Google Account: does exists an Android API for getting which Google Account has been used for the App installation?
I would like to sell my App from Google Play, but I would give to the buyer a free trial period. I can't use subscriptions because they require a recurring payment (monthly or yearly), whereas I would set a una-tantum price.
When the trial period expire, I can use a non-consumable In-app product, but how can I manage the trial period?
Both Google Play Licensing and In-app Billing track purchase information on a per-user basis, thus they should be able to know which user has downloaded the App or who is the current user, and I too would like to know the same info in order to manage the trial period by means my web server.
If someone of you can suggest another way, I appreciate.
There is no such API to include in your app's code to keep record of user who have downloaded your app from Play Store. However before you upload your app to Play Store , you have to create a Developers account.
There google have provided Developer Console option, and this is where you will find download information for your app.

Change a Paid Android app to a Free app with in-app purchasing

I have a successful paid for application on Google Play Store and want to update this app to be a free application with in-app purchasing.
I have just completed developing the free version of the app which gives users restricted access which can then be unlocked using an in-app purchase system.
The issue i have is that all my existing users who have paid for the app will upgrade and then be prompted to pay again, which of course isn't right.
Is there any way to check the purchase history of the user, identify that they have paid for the app previously and unlock the extra features without the in-app purchase?
Thanks for any help.
Lewis
It's been a year, so the OP probably doesn't need this, but in case anyone else happens upon this one...
You could approach this a couple of ways. Obviously there is some business logic on your new in-app purchasing app to track who has/hasn't paid. So the two ways I see you being able to go about this is as follows:
Idea 1:
You could do a preliminary update to your paid app that stores a SharedPreference or some other persistence in the app (you could store the versionCode, so you know what you're upgrading from and have business logic around that). Then update to the free version, and have the free version check your shared preference and do the right thing on an update from a "paid" versionCode.
Idea 2:
You could keep both apps separate (have a paid version and a free with in-app purchases) and push an update to the paid version to have a BroadcastReceiver that doesn't really do anything other than listen to specific intents and have your in-app purchase check to see if something will receiver your custom intent. If your old paid-version exists, then they paid for it, if not they didn't. (If they paid for the paid version then uninstalled you'll have problems obviously...)
Idea 3:
You could keep both apps separate (have a paid version and a free with in-app purchases), and push an update to the paid version that just posts an Intent to open the in-app purchase app (if it's installed) with some special arguments, to let you know they opened it via a paid app and do the right thing to set them up as having paid for it in-app. That opens yourself up to some detection problems though... (Solvable but kind of clunky)
You can keep the existing paid version and create another free version.
If you really don't want to have 2 versions, just make it free and tell users something like 'Contact us if you have bought the paid version. We will give you redeem code to unlock xxx'.
https://developer.android.com/distribute/tools/launch-checklist.html#decide-price
This link seems relevant, hope it helps
On Google Play, you can publish apps as free to download or priced. Free apps can be downloaded by any Android user in Google Play. Paid apps can be downloaded only by users who are in a country that supports paid downloads and have registered a form of payment in Google Play, such as a credit card or Direct Carrier Billing.
Deciding whether you apps will be free or paid is important because, on Google Play, free apps must remain free.
Once you publish an app as a free app, you cannot change it to being a priced app. However, you can still sell in-app products and subscriptions through Google Play's In-app Billing service.
If you publish your app as a priced app, you can change it at any time to be a free app (but cannot then change it back to priced). You can also sell in-app products and subscriptions.
If your app is be priced, or if you'll be selling in-app products, you need to set up a Google payments merchant account before you can publish.
I feel the most easy way is to use theese line of codes
This gives you the old version code
SharedPreferences prefs = getSharedPreferences("Name_of_Prefs", MODE_PRIVATE);
int oldVersionCode = prefs.getInt("version_code", -1);
This gives you the current version code
int currentVersionCode = getPackageManager().getPackageInfo(getPackageName(),0).versionCode;
Now you can compare and do what you want. Don't forget to update after every time
with this line of code
prefs.edit().putInt(PREF_VERSION_CODE_KEY, currentVersionCode).commit();
In my case (affirmations counter app)
my paid app is running based on sharepreference value "lastaffirmationcount"
in my new iap app i just changed the way of I'm saving the affirmations counter values like "lastaffirmationscount_foriap"
So what i did in my free with In app purchase app is,just cross checked the "lastaffirmationcount" value is not null,if its null then it means new user,if not null then it means he is old user who bought the paid app
so the old user will not suffer forever
(Optionally Once its checked i immediately ask this user to sign in with google and saved his email as a premium user to ur database)
For Google Play there's no distinction between having paid for an app or downloading it for free. For example, if an user download an app while it's free and it's later changed to paid that user will still have full access to it, even being able to download it on other devices.
There are some lame workarounds for that:
Enable google play game services on the paid version and try to convince users to connect to it. Use google play services to store "bought while paid" information to the cloud and restore it whenever that user logins
Give all the users who've bought some key to unlock features
Create a different for the free version of the game
That said, keep in mind that many games have become free after some time. Maybe the users won't mind it that much.

How to give (already purchased) Android app to customer as a gift?

Yes, SO, I know, it's not a "programmer's" question:) But customers sometimes help us (devs) with our code, so we (devs) shold be grateful. I think answer to my question will be useful for all fellow android devs.
User has purchased my app. Refund period (15min) is over of course. Now I'd like to return money to him as a gift, because he helped me in testing a little.
If I refund the entire order in Checkout->Orders will user keep my app 'purchased'? I mean will he be able to uninstall and install it again from GooglePlay->MyApps and will app be marked "purchased"? Will Google LVL accept him to run the app?
I've done such refunds before, but then they called it "Android Market", and refund was 12h, and there were no LVL. Maybe somebody know another way to make a small gift using Google Play?
Google play has no gifting implemented currently.
Refunding the purchase will automatically uninstall the app from the user's device, and LVL will not accept him as a registered user if he sideloads it.
You can now generate and distribute promo codes for your app or game to current and new users on Google Play.
Under the Promotions tab in the Google Play Developer Console, you can set up promo codes for your apps, games, and in-app products to distribute in your own marketing campaigns (up to 500 codes per app, per quarter):
Go to your Google Play Developer Console, select your app.
Select Promotions > Add new promotion.
Follow the on-screen instructions (promotion name, start and end dates, promotion type, number of promo codes you want to create).
Select Create, select the download link.
Your codes will download to a CSV file. To share with users, you can print the codes or send a deep link allowing users to redeem the codes via email or a notification within your app.
References: https://support.google.com/googleplay/android-developer/answer/6321495
http://android-developers.blogspot.com/2016/01/create-promo-codes-for-your-apps-and-in.html
You can't give him a gift. There's no gift concept implemented in Google Play.
All we can do at this time is refund a purchase through the Google Wallet merchant account, after 48 hours (when the customer-initiated refund period expires, which may be different in the future).
If they get a refund from Google it will uninstall the app and remove their access.
If you do it personally from your Wallet merchant account, after 48 hours (or whenever the end is of the customer-initiated refund period), they still get to keep the app and get updates.
I know this is old, but have you thought about asking the customer in question to purchase the app, and then sending him/her the money via PayPal or something? Also, what if you initiate the refund process? In that case, I wouldn't expect the app to be uninstalled, as the user didn't agree to an uninstall.

Categories

Resources