views:

448

answers:

1

Apple clearly states in their Introducing Store Kit video in the iPhone Dev Center that we should:

"Keep a copy of the TransactionID along with the Customer Information in your server in the cloud. This way if the customer mistakenly deletes your application, you have a mechanism for recovery. You can check your server on first launch of your app for a record of the purchases for a given customer and bring that app back to its state before it was deleted. Believe me your customers will be thankful!"

Great! Now, I haven't worked with In App Purchasing yet but in looking over the In App Purchase Programming Guide it's not apparent how or when Store Kit makes available any "Customer Information" to the app. So, my guess is we need to trouble our customers for this information, regardless of whether we use In App Purchasing or not, given that Apple doesn't give us any access to the vCard in their Address Book that contains this valuable information.

Are my assumptions correct? In order to be able to restore from the deletion of an app after an In App purchase we'd need to get some type of unique info from each user to log on our servers during each purchase?

Edit: We would be considering the Built-In Product Model with In App Purchases.

+2  A: 

For subscriptions and consumable products, that is correct. Username/password combination or use UDID. Of course, if you use UDID, it will only work for that one device.

For non-consumable products, you can use the restoreCompletedTransactions method.

willi
I wasn't aware of restoreCompletedTransactions. That will take into account any In App Purchases made with apps (assume we're using the Built-In Product Model thus the upgrade would "unlock" already existing code). also you may want to edit your response above. I think "og" is supposed to be "or".
Meltemi