Auto-renewable handling of magazine app with 2 issues every year - ios

I have a magazine app and want to implement auto-renewable subscriptions. There are 2 issues released every year. The first issue is released in april and the second issue a half year later in october.
If I implement a one-year subscription, how do I handle the subscription?
Here are my problems:
First: the user subscribed in August and is getting the april issue. Then in october the user is getting the october issue. In april next year the user has still a valid subscription but shouldn't get the april issue because his subscription ends in august. He only get the new april issue, if he renew the subscription.
My second problem is: I don't know if the user is renewing his subscription until august and can't deliver the new issue in april.
I hope you can understand the described problem and have some tips to put me in the right direction.

Related

Free trial length changing in iOS subscription package

We use auto-renewable subscriptions in our application and we set free trials as an introductory offer. But we haven't experienced what if the trial length changes yet.
If we change the free trial length of an existing subscription package, are the existing users notified via e-mail or notifications?
For example we are applying 7-days free trial for our subscription now, what if we change this period with 3-days? Will the subscribers in the trial period (let's say he is on the 5th day of free trial) be notified? In other words, will the existing subscribers in trial period continue with 7 days and new subscribers start with 3 days to trial period?
Is there anyone who has experienced this before?
Thanks for all replies in advance.
AppStore generate a receipt for every IAP separately so, subscription start date and end date are there. If someone registered for 7 days and 3 days has passed. when you changed trial period to 3 days it does not affect the previous trial period. They still use 7 day trial until the "their" trial period end.

iOS Subscription: How to handle INTERACTIVE_RENEWAL notification 10 minutes after INITIAL_BUY?

My server received a INTERACTIVE_RENEWAL notification for a (unsupported) 6 month subscription from the iOS App Store just 10 minutes after it received INITIAL_BUY notification for a 3 months subscription.
How should I handle this?
The long story:
A month ago I have released a new version of my app introducing auto renewing subscriptions. I have created different subscription products, e.g.
com.my.app.subscripton.3months
com.my.app.subscripton.6months
com.my.app.subscripton.12months
The final version of the app which was released to the store only offers the 3 months and 12 months subscriptions. The 6 months subscription ID still exists in code but there is no UI element to purchases this subscription (double checked!)
My server now received the following App Store Update Notification messages within 10 minutes:
02:00 - INITIAL_BUY of product com.my.app.subscripton.3months. Expires on 2020-01-28 02:00:00
02:10 - INTERACTIVE_RENEWAL of product com.my.app.subscripton.6months. Expires on 2020-04-28 02:10:00
How should I handle this? Obviously it makes no sense, that a 3 month subscription is renewed after 10 Minutes...
According to the docs an INTERACTIVE_RENEWAL means:
Indicates the customer renewed a subscription interactively, either by using your app’s interface, or on the App Store in account settings. Make service available immediately.
Since the apps UI does not provide an option to purchase the 6 months subscription this has to be done by the account settings. But where do I find a purchase feature in the account settings?
Even if such a feature exists somewhere in the settings, how can a 3 month subscription renew with 6 months just after 10 minutes?
EDIT: The information from the notification is correct. I re-validated the receipt and the store replied with the latest receipt information which includes to IAP items (3 and 6 months subscriptions) purchased within 10 minutes.
So the information is correct but makes obviously no sense...
In the App Store subscription management page users will be able to see all of the product options for the Subscription Group that they're subscribed to (see image).
It's not uncommon for more savy iOS users to navigate to this page shortly after purchasing a subscription to see if there is a lower priced option available.
As far as handling these events, what you you trying to do exactly? All you really need to determine if someone is subscribed is the product_id and expiration_date. If possible you can log the entire event body somewhere (in case you need it later) then update your user record with whatever values you need from the event. These may be:
Access level (most apps have one access level e.g. "premium")
Product Id
Expiration date
Auto-renew status
With this setup the actual event type becomes irrelevant, you're just updating the fields you need with the values from the latest event.
It's Apphud again. We are using Apple Notifications just to trigger additional receipt validation.
How to handle in your case? Make receipt validation and check whether subscription is active.
These notifications only tell you that something has changed in user's receipt. You have to check manually what has changed and update user subscription status after receipt validation complete.
Here is more info about notifications: https://blog.apphud.com/subscriptions-notifications/

iOS subscription trial modal

I am developing an update to an iOS app with a renewing subscription including a 7 day trial.
When I tap on the Free Trial button while testing my app, I see a Subscription confirmation message that says "1 year for $4.99 starting now" and no mention of the trial.
Other apps I looked at display a Trial confirmation modal that says "Free for 1 month starting now."
How do I display the Trial confirmation instead of the Subscription confirmation?
You are not in charge of the text that is displayed in these views. Please, ensure that you specified the free trial period in subscription's introductory price page. If so, you will see the free trial message as on the second screen in the released application, just not in a Sandbox environment.

Is there a way to check if a user had an active subscription at a point in the past?

When I restore the user's purchases in ther iOS device, they can access the content if the subscription is currently active. What I want to do is grant access to the content published in the past if they had an active subscription then.
Example:
Anne purchases a 6 month subscription to a magazine on January 1st. When it ends she doesn't renew it. Then in October she has to format the iPad and reinstall the app. When she wants to download the February issue, is there a way to know that the subscription was active then?
You should check in app receipt, where you can find Subscription original Purchase date and subscription Expiration or Cancellation Date. Here is documentation

Apple Auto Renewal In-App Purchase Expiry Time

I am making an app with auto renew in-app purchase. It is my first time with this api so I am bit confused about the auto renewal logics.
Would be grateful if you guys can help me with these 2 logics-
1) When a user buys a new subscription, does the expiry equal to the date or date/time.
For example - I buy a subscription for a month today at 2.00pm. Will it expire next month at 2.00pm or at midnight. Means it just renew the subscription by date or by the time you purchase it.
2) During Auto renewal, as mentioned in apple docs, apple starts trying to renew the subscription 24 hours before the expiry date. If the user somehow cancels auto renewal between these 24 hours will apple still renew his subscription or the cancellation will take affect immediately (assuming his subscription hasn't already been renewed).
please somebody answer it. Thanks a lot in advance.

Resources