1

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...

Andrei Herford
  • 17,570
  • 19
  • 91
  • 225

2 Answers2

1

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.

enter image description here

enc_life
  • 4,973
  • 1
  • 15
  • 27
-1

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/

apphud
  • 625
  • 4
  • 8
  • Thanks, I already re-validated the receipt and the information is the same: Two purchases which make now sense. So the question is the same: How to handle this and what might have caused this? – Andrei Herford Oct 28 '19 at 14:12