Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS: How do I find out, if a user is still eligible for a free trial of an in-app purchase subscription?

We offer an auto-renewable in-app purchase subscription in our iOS app. We want to add a free trial period to our subscription now, which already works fine. In our app's "store view", we display the product info along with a button "Test now for free".

However, if a user subscribes, enjoys a nice free month, (maybe pays for some more) and then cancels, she will be able to see our "store view" again. Now Apple makes sure that the same App Store user does not get a free trial again, which is a good thing. But that's why we also don't want to ask the user to "Test now for free", but rather "Subscribe now" in this case.

So my question is: Is there are way to tell (before the user actually purchases), if he is still eligible for a free trial?

We could just check in our own user DB if a user already subscribed before, but when she registers again with our app, she will still see "Test now for free", but would not be able to, because of her App Store account that already used up the free trial period.

like image 481
Flo Avatar asked Nov 07 '16 09:11

Flo


People also ask

Can you redeem Apple free trials multiple times?

Free trials are not cumulative. Only one is granted per Apple ID. "Only one offer per Apple ID and only one offer per family if you're part of a Family Sharing group, regardless of the number of devices you or your family purchases. "

How do free trials work on Iphone?

Apple recently highlighted in its App Store a selection of apps that offered free trial subscriptions. For a set period of time, you could use the app, free of charge, before being charged the monthly or yearly subscription. It's a convenient way to try apps and then decide if they're worth paying for.


1 Answers

Two options to change the string you are displaying in the store view.

1) Server call to check if they have subscribed before. You say you already have this value so you could add it to your user schema if flexible i.e. hasSubscribed then you'll have it on the user object in the client and can do a check to see whether to display "test" or "subscribe" or just pull it across at launch and store it in memory for when you display the store view.

2) If you have the receipt on the client then check to see if that particular subscription has been purchased before.

like image 143
jeh Avatar answered Nov 08 '22 13:11

jeh