Developing an app that people pay a monthly subscription to use. They can pay monthly or a year in advance for a reduced price.
What is the best way to make sure they are up to date?
My best guess is, when they make a payment, an expiration date is calculated and then each time they log in the app checks to see if the current date is < the expiration date.
What’s the best way to do this? What are the pitfalls? What are necessary maintenance requirements?
Setting an expiration date for their subscription is definitely the way to go. I can’t think of any pitfalls to this, and it’s probably by far the simplest solution. Also, there aren’t any real maintenance requirements – the app can simply check if the current date is before the expiration date, and if it is it runs, otherwise it outputs a message.