Auto-Renewable Subscription questions

Hey,


lets say you have an app requiring a custom login (email and password) through a signup and a monthly subscription. To access the content you need to pay first. You would validate the receipt on a server and then you will be good to go.


1) Do you check every time if the user has a valid subscription when he is requesting content from the server?

2) Lets say you buy a new device and downlaod the app again: Where would insert the restore button? At the signup page? or in the settings page? I made some research on the netflix app and I couldnt find a restore button there. I assumed you will get rejected not providing a restore button for Auto-Renewable Subscription? Without a restore you also have no local receipt to send to the server.

Thanks so much in advance 🙂

Replies

You do not need to check the receipt each time the user requests access. You can record the latest expiration date and check the receipt only if that time is in the past. The exception to that is if you fear a user will abuse the system by cancelling the subscription and requesting a refund from Apple. In that case you have to check for a cancellation_field. This happens rarely. Cancellation differs from turning off autorenewal.


The app has to have some sort of 'buy' functionality. Any 'buy' button should be a 'subscription info' button. Once tapped, it should offer the option of 'buy' or 'restore'.

thanks for the answer. Here are some follow up questions:


1) buy button: do you know an example app doing that? So we need no additional Restore button? When the user logged in with his details on a new device (so he is not pressing the buy button again) then there will be no local receipt on the device?


2) When we send/validated the receipt one time with the apple server, the receipt will get updated automatically when its renewed? So we can check the new expiration date

1) buy button: do you know an example app doing that?

I wrote that a buy button should be a 'subscription information' button. And example is my app OptionPosition+.

So we need no additional Restore button?

If you have a 'buy' you need a 'restore'. If you have an 'info' button then after that button you have both a buy option and a restore option.

When the user logged in with his details on a new device (so he is not pressing the buy button again) then there will be no local receipt on the device?

There may or may not be a local receipt. If there is a local receipt then that receipt may or may not (I think it will not but that could change) show an IAP purchase.


2) When we send/validated the receipt one time with the apple server, the receipt will get updated automatically when its renewed?

If a receipt contains an autorenewable subscription in it (and only for autorenewable IAPs) then the server will decode that receipt and also provide the information from the latest receipt for that user ID and also provide an encoded version of the latest receipt.


So we can check the new expiration date

Yes