We are adding subscriptions to our app and I am trying to figure out the best way to verify the user has an active subscription.
Does Google Wallet server calls back on every renewal of a subscription?
The above link answered one of my questions. Basically, an auto-renewing subscription is treated as a subscription with no end date. Google will only notify the the subscription has canceled. I assume google will notify the app that the cancellation has occurred which will then send the request to the server. I don't believe google will notify the server directly since I don't recall ever setting up any endpoints. Now, that doesn't seem that reliable. It seems like a user could easily manipulate the process to not allow the app to send the request to the server (which is seen with a few of the in app purchasing hacks).
Now the only solution I can think of is to have my server pool google every time a subscription is close to expiring. Probably a day after the subscription expired. (give them one free day in case the purchase takes longer).