IOS storekit subscription free trial not working - ios

I've got a subscription product for my IOS app; I want to change it to allow a free trial. I've edited the subscription in Itunes Connect to allow a free trial, however when I try to subscribe to the product, I get the standard message about buying a sub, not the free trial message. Is there any specific thing that I need to do to trigger the free trial, or do I need to create a new subscription product from scratch for it to pick up the free trial, instead of editing?

In order for free trails to work, the app needs to be a newsstand app.
Free trails are individually tied to a specific user and any individual user can only get the trial once. After the initial trial, It will ask for money. Try creating a new account and then trying with that account.
Read the Documentation At the following places:
Apple Developer(Requires Login)
StoreKit on iOS - autorenewable subscription - How to know whether it is a free trial or not?

Related

Is it allowed to force users to Subscribe via Free Trial AutoRenewable Subscription, or else, cant use the App at all?

Let's say once you install the app and open it for the first time.
You are presented with a PayWall, that you cant skip.
In order to use the app, you have to Subscribe via a FREE TRIAL Subscription.
Once the free trial ends it will automatically charge the user for the Subscription price.
Unless they cancel it before, making the app useless forever until they decide to pay the Subscription.
Does Apple allow that ?
Apple's website about business models states the following about the freemium model:
[It offers] the option to pay to enhance or customize the experience.
Therefore, I don't think that Apple will allow you to implement a freemium app without providing actually free content.
The auto-renewal of the free trial into a paid subscription is the "normal" behavior of Apple's free trial.
A lot of applications are doing this, the most famous one is probably Disney+. No (more) free trial, they ask you to register then subscribe.

Proper way of Apple in app purchase with free trial in flutter

I am coding in Flutter, and I want to implement an auto-renewable subscription with a 3day free trial period.
Unfortunately, I did not find any exact documentation or advice, how can I test it.
What I tried:
1) I created an auto-renewable product in the apple developer console.
2) inside this product I have chosen the “add promotional offer”, where I selected the “free trial”
Everything was easy and clear, but when I start my application for testing this, it only displays the normal price, and I find nowhere the free trial part. So I can not test it.
When I call the subscribe method, it will show me the normal price to charge. When I subscribe to my sandbox user, I do not see anything about the free trial in the validation JSON.
Is this normal? Could it be possible, that the free trial feature is available only in production?
Or what did I forget?
You can change the settings of the in-app purchase item from app/play store, there is an option to add an introductory/trial offer where you can mention the trial period. In the code, you can deliver the item accordingly.

How do I handle a free trial before BUY (not subscribe) using In App Purchase on ios

I want to offer a free trial and the option to BUY (Non-Consumable In-App Purchase) on my ios app. I can see that I can offer a trial and then SUBSCRIBE (Auto-Renewable Subscription), but I personally don't like having to pay over and over for a simple app, but I do want to try it first. Is there a way to achieve the same thing when setting the option to buy? I realize I could track the first usage after download, but this presents a couple of issues:
Will Apple now approve apps for a trial period - previously they have been rejected, but that was before IAP and subscribe was available at all!
How do I prevent the user deleting the app (and any data I might store to know they have activated a trial) and then downloading again?
Or do I have to succumb to the pernicious "subscribe" model or release a "light" version with an upgrade? The last time I went "light", Apple insisted I make so much functionality available, I may well have not bothered with the full version - but that was a while ago.
Apple now allows you to add a free trial for Non-Subscription apps. It's a 0 price plan for fixed days. After this trial expires, you can show the non-subscription plan for purchase. The downside is user need to do a purchase again after trials end. But offering a free trial is a good user experience.
Non-subscription apps may offer a free time-based trial period before
presenting a full unlock option by setting up a Non-Consumable IAP
item at Price Tier 0 that follows the naming convention: "14-day
Trial." Prior to the start of the trial, your app must clearly
identify its duration, the content or services that will no longer be
accessible when the trial ends, and any downstream charges the user
would need to pay for full functionality.
Dont prevent the user from deleting the app. Just store the data online when user hits the trial button, you can store a flag in the web services which can be zero or one based on the user.
One way you could do this if you only care about iOS 11 is using the new DeviceCheck API. It's pretty limited in functionality (it lets you track 2 bits, or 4 cases, total) but should persist between install.

Does free trial period for In App Purchases in iOS only work once?

We are integration IAP in our iOS11 app and want to give new users some start offerings with a long free trial period.
My implementation alternatives are:
Use auto-renewable subscription with a generous free trial (like 2 months for monthly subscription), and rely on Apple that a user that cancels can't restart and get 2 months again. Is this correct?
or
Make two IAPs, present the one with free trial to new users and present the one without free trails to a user that has canceled or stopped the free trail version. But users might find the IAP on App store (specially now when Apple will start feature IAP) and buy it anyway?
What is the best thing to do?
I'm managing an application with InApp Purchase and auto-renewable subscription.
As far as I know, InApp Purchase is linked to user AppStore account, and free trial can be consume only once per account.
If you present the same product after a free trial period, the user will resume your auto-renewable subscription and not benefit the free trial again.
So in my mind the first option is the best.
However if you would like to implement the second one, you should know that the new IAP management feature in your product store page allow you to show and hide the subscriptions you want.
For more information about this new feature, take a look at the WWDC video : What's New in StoreKit

Refund of iOS in-app purchase - triggered by developer, not end user

Case:
Our iOS app offers selling of custom made recipe packages that would be created for each user specifically. For example - user buys package of recipes, but for each user this package would be created individually, based on users preferences and needs, by someone from the app team. This package should be created in 5 days for example. If app team fails to create this package and deliver to end user in 5 days, automatic refund should be triggered and end user should receive money back that he spent on this in app purchase, thus invalidating purchased custom package.
Problem:
Is this kind of scenario even possible in Apple / iOS world? Can app developer trigger refund process of one specific purchase that end user made? If user isn't satisfied with specific purchase, could app developer trigger this is refund process if he has reference to transaction receipt?
P.S. We aren't really selling custom recipe packages, this was just an example scenario to help to understand this refund scenario case. ;)
EDIT:
If such scenario isn't possible via Apple refund, are there some examples of this kind of purchase model, implemented in some other way? It's hard to wrap my mind that only way for end user to get refund for something is to write Apple and that also needs to be done by user itself.
If you get paid using Apple services (in-app purchases) then NO, it isn't possible for an Apple Developer (business or individual) to refund App Store customers.
The only option is to direct customers to iTunes Store Customer Support as officially stated in the iTunes Connect screenshot below:
To increase the chances for your customers in getting refunded you could provide them with an e-mail stating that you would like them to receive a refund which they could show to the iTunes Support employee.
As a colleague stated, an option would be to use an external payment processor like PayPal which would allow you to manage refunds, but I think this will greatly increase the work needed since you will need to manage almost everything regarding payments on your own.
Also note that this option is highly restricted by Apple to only physical services or goods and sometimes Apple does not approve apps providing services through third-party payment processors. So.. you should be very careful what path you choose to take.
If the recipes you're providing to your customers are in digital format and users receive them in your app, you can be 100% sure that Apple will force you to use the in-app purchase system.
If such scenario isn't possible via Apple refund, are there some
examples of this kind of purchase model, implemented in some other
way?
In some cases you can use payment through PayPal (for example). We did it in our application where we had to take money of users and return it after a certain period. Check if you case is suitable for using third-party payment systems. Because (for example) Apple will restrict your app if you want to sell in-game content via Paypal, not with in-app purchase.
One very simple alternative would be to have your users buy virtual currency in your app that they can then spend on their recipe-package-orders. Since you are managing their virtual currency account balance, you can easily refund, give volume-discounts, etc. as you please. The only thing that will still be hard then is to have users return their virtual currency to get back their actual money.
There is no api for allowing users to refund a purchase (otherwise guess what can happen).
More info here

Resources