4) If a valid subscription, the ExpirationDate is returned. Let's assume that it is a one month subscription. 5) Store expiration date in database - associated with User. 6) Return expiration date to Roku client
7) If current Roku device time is greater than expiration date stored, then check if subscription was auto-renewed.
My question is how do I go about implementing Step #7? Should I store / persist the transactionID on the backend server, and then have the Roku client make a request to the backend server, to revalidate the transaction (and get a new expiration data)?
Personally I wouldn't rely on storing / comparing an expiration date in the roku's registry. In my channel every media request to the back-end server checks the stored token to make sure the user is still a valid (current paid) member. in our case, Roku doesn't need to know or care about expiration dates, the back-end server handles that and given a unique token just responds with "yes" (valid member) or "no". Then the channel decides what to do based on that response.