Non-renewing subscription repurchase reminder and start/end day setting

Hi all,


We are trying to set up a non-renewing subscription item via IAP. We are wondering:


A. Since Apple/Storekit will not help us manage this item, how do we set up the start and end date of such non-renewing subscription item?


B. We understand that when users try to repurchase this non-renewing item, App store will tell our user “You have already purchased this subscription, do you want to renew or extend it?” . Does anyone know during which time will this reminder appear? Will it appear when the first bought item is till effective or it appears even the first bought item got expired?


Any thoughts? Thank you!

Replies

What you might want instead is a Consumable Purchase. This means once the user has purchased they have "consumed" it (or eventually will consume it) and it can't be restored like a Non-Consumable purchase can be. Good example of a Consumable would be Coins in a game. They buy 10,000 and thats it. They can't get 10,000 more by hitting Restore.


But in your case, you could create a Consumable purchase for X amount of use of the app. That could be as simple as noting the date in the app using the User Defaults and just checking every time they use the app if they are still within a defined window of that start time. Only problem is there's no recovery if the app is completely deleted. But that also implies they are okay giving up access to your service.


Alternatively, you could also save their vendor identifier (unique ID based on your app and their device) to a database when the Consumable is bought then do a similar check to what I describe above. Little bit more of a benefit to doing that, since the time they purchased could be recovered if they deleted the app and reinstalled it.


Point is, if your product isn't really a Subscription (ie. you don't want it to renew), I don't see the benefit of making it one.

> A. Since Apple/Storekit will not help us manage this item, how do we set up the start and end date of such non-renewing subscription item?


Usually the start date is the date of the purchase and the end date is a fixed time (the subscription duration) later. If the user has a current subscription then the start date is unchanged and the end date is that fixed time added to their current end date. You need to create a means for the user to 'restore' the subscription if they buy a new device or delete the app and reinstall it. The easiest way to do that is by writing the start and end date to the user's iCloud key-value file. A different implementation of non-renewing subscriptions requires that the user restoreCompletedTransactions or refresh their receipt on their device. Then it decodes the receipt and parses through the various dates in all the receipts creating a history of the user's subscribed-to and not-subscribed-to time periods. That parsing must be done because the user can overlap renewals.


B. We understand that when users try to repurchase this non-renewing item, App store will tell our user “You have already purchased this subscription, do you want to renew or extend it?” . Does anyone know during which time will this reminder appear? Will it appear when the first bought item is till effective or it appears even the first bought item got expired?


This appears forever. That's why it says "renew OR extend" - the App Store has no idea whether the user bought a 1 month or 3 years subscription so the App Store does not know if the subscription is currently ongoing or if it has expired.

PBK, do you think there's still an advantage to using a subscription at all if its not meant to renew?

Thank you for the response! We've been discussing between consumables and non-renewing items for a while and as this item is designed with different price structure for different types of users, it might better be a non-renewing product. As of using coins, is it a violation of the review guideline to use coins to purchase a "non-consumable item"?

I see. That makes sense. Thank you PBK!

Depending on the business model there might be. Unlike "consumable" purchases, "non-renewing" subscriptions will stay recorded in the receipt indefinitely so it is possible to know if the user has previously purchased an item or not. (Can't be done with consumable purchases)