Non-renewal of the purchase in the purchase application - multiple purchase on the same item possible?


I'm little perplexed.

Let's say my app has two subscription options. One is "$0.99 / 1 year" another one is "$2.99 / Forever"

What really happens if a user buys $0.99 option twice?

I have searched and found this stackoverflow article that has an accepted answer saying "Yes, when the user buys a non-renewing subscription a second (or third, etc) time, the are charged again."

But Apple docs says "If the user attempts to purchase a product that’s already been purchased, rather than using your app’s restoration interface, the App Store creates a regular transaction instead of a restore transaction. The user isn’t charged again for the product."

Which one is correct?

I tested with some real app from app store, buying them twice and it seems that they don't charge me twice.

So, may I trust the above Apple doc %100?

If so, I will have another question.

Let's say a user had bought 1 year option and a year passed so it has expired. The user buy 1 year option again, however, App Store do not charge the user again since it's been bought before? Then how can I sell the same item again? (in case non-renewal subscription)

There are three different types of in-app purchase available:

  1. Non-consumable purchases
  2. Consumable purchases
  3. Subscriptions

And there are two types of subscriptions:

  1. Auto renewing subscriptions
  2. Non-renewing subscriptions.

Non-consumable items can only be purchased once. The user has the ability to restore this purchase and an attempt to purchase it a second time will result be treated like restoration; the user won't be charge a second time.

Your "$2.99 forever" product falls under this category, since a subscription would be for a limited time. Once the user has purchased this product then you should prevent them from purchasing the subscription products by disabling them in your store interface.

For your "$0.99/year" option you can use auto-renewing or non-renewing subscriptions.

If you use auto-renewing subscriptions then Apple will take care of "purchasing" the product again when the expiration date is reached and if the user attempts to purchase a second time while they already have a subscription active a payment won't be processed.

If you use non-renewing subscription then it is your responsibility to handle subscription expiration and allowing the user to restore their active subscriptions on another device. In this case you could take a couple of approaches:

  • If the user has an active subscription don't allow them to purchase any more subscriptions by disabling the purchase option in your store interface in your app
  • Allow them to purchase a second (or third etc) time and extend the expiration date accordingly. e.g. If they purchase today, the subscription would expire in August 2017. If they purchase a new subscription before the old one expires, extend the date so it now expires in August 2018.