We are creating an app in which we have two different premium models: silver and gold. Both are monthly recurring subscriptions.
On the server we store which user has subscribed to which premium membership and the date when it will expire. At the expiration day we'll check via the Purchase.subscriptions HTTP API from the server if the subscription was renewed and remove the premium status if it wasn't.
But how should we handle subscription downgrades? Assume the user buys the more expensive gold version and then after one day downgrades to the silver version. Our server would only check after one month and recognise that the user downgraded.
The premium memberships are also usable on other platforms like iOS. That's why solutions involving the client won't properly work.
Do we have to poll the Purchase.subscriptions Api from our server on a regular basis?