Hi :)
Our team wants to update the way subscriptions are handled in our app. For now the iOS devices are between our and App Store servers. We want to change it so the servers will communicate directly between themselves. I have to do some research and write tasks for developers and I struggle a bit with understanding it.
My question is if is it needed to handle singed transaction info on iOS device and then send it to our server? We want to use App Store Server Notifications for handling subscriptions overall. I have watched a video from WWDC and the first time subscription purchase is described. But I guess I am a beginner and do not really understand it. So basically how I understand it is that a customer buys subscription and App Store server gets this information. And then I have no clue what these two things below do but I am wondering if we could do not implement them and base our server just on SUBSCRIBED notification. So basically it would look like this: What do you think about it? I would really appreciate any feedback and help. I am not sure if it is possible to implement this the way I have drawn it on this image and if so if this is a good practice.
I do not know if that information is needed but our users can buy the premium service on other platforms as well. So we have to keep that info on our server and update iOS app about user's premium service state from our server.
Have a nice day! Szymon
For first time buys that occur in app, I'm unclear why you wouldn't want to validate the purchase right then. At the very least locally you would want to entitle/unlock service ASAP. Waiting for a server notification in this scenario is an unnecessary delay and latency that will only negatively impact the customer experience.
The only reason server notifications exists for initial purchases is there are edge cases where a customers first-time-ever-with-your-app initial purchase is outside of your app due to promo code or Subscription offer code redemption.
You can rely on server notifications to update your server backend but it is always good to ensure your client and server sync on status occasionally, especially have known transaction updates.