4

In the auto-renewable subscription system, it's not possible for a user to purchase a subscription more than one time. You'd end up with a message that says like, "you're already subscribed." However, with non-renewing subscriptions, my understanding is that it is entirely up to us how we want to handle it.

So let's say our subscription length is one year. If a user purchases a subscription, and 6 months later (even though he/she still has 6 months remaining) decides to purchase another subscription, should we:

  1. Allow this, and add one year on top of his/her current expiration date, or
  2. Do not allow this with our own "you're already subscribed" message

Their documentation makes it super clear that implementation is entirely on us in the case of non-renewable subscriptions, but I can't find any rules for those implementations. Is option 1) above even allowed, or are we supposed to follow suit with the auto-renewable system with option 2) ?

EDIT: The primary concern and reason I thought to ask this question is, if we allow multiple purchases, and say we have some crazy guy who buys like 50 subscriptions (50 years), and we stop our service before 50 years are up --- what happens? Not a very realistic example, but we need to take such cases into account anyway.

CptSupermrkt
  • 6,844
  • 12
  • 56
  • 87
  • 3
    I'm voting to close this question as off-topic because it does not appear to be about programming, but about policy with your favorite hosting provider – Soren May 08 '17 at 15:52

1 Answers1

4

Yes.
My app uses Non-Renewing Subscriptions and if a user purchases a 1-Month subscription twice, iOS will allow it and I've chosen to allow it. In that case, I just add the durations together to give the user 2 months. Typically, iOS will pop up an alert (image below) telling the user "You've Already Purchased This Subscription. Tap Buy to renew or extend it."

Multiple In-App Purchase Alert

I think it would be a good idea to limit the cumulative length of a subscription. You'd have to check their account on your server and then hide or disable the purchase button in the app since once the user starts a purchase, I'm pretty sure you can't interrupt or cancel it from your server.

Andrew
  • 8,363
  • 8
  • 43
  • 71
  • 1
    Sadly, even though Apple knows that the user already has the same subscription, they do not automatically add the subscription expiration dates when overlap exists. You have to remember to do this yourself. – aroth Jul 19 '13 at 06:01
  • 1
    Right @aroth . Well, as I remember, `expiration_date` isn't even one of the keys returned from the server when dealing with Non-Renewing Subscriptions. The onus is entirely on you. – Andrew Jul 31 '13 at 20:47
  • 1
    Ah, you're correct. The code I was looking at is a combined parser for renewing and non-renewing subscriptions. It uses the `expires_date` field when handling a renewing one, and works the expiration date out using `purchase_date` and `product_id` when it is non-renewing. – aroth Aug 01 '13 at 00:12