I'm developing an app that uses CloudKit. Its a free app with consumable and non-renewable subscription in-app purchas to unlock app functionality. Here's my thinking of the in-app purchase flow:
user buy IAP consumable/non-renewable subscription -> validate the receipt via my own server with iTunes server -> store the receipt into CloudKit user's own privateDB -> unlock app features
This will simplify my own server for just receipt validation, there is no need to create user account to store consumable and non-renewable subscription info. If the user sign in using a different device, the app will retrieve the receipts (especially for non-renewable subscription) from the CloudKit and unlock app features.
Is it OK flow? Is it prone to spoof or man-in-middle attack?