You don't need to identify the device, you need to validate the transaction. The user should be able to restore purchases across re-installations and across devices.
The In-App Purchase programming guide states -
Persisting Using Your Own Server Send a copy of the receipt to your server along with some kind of credentials or identifier so you can keep track of which receipts belong to a particular user. For example, let users identify themselves to your server with an email or user name, plus a password. Don’t use the identifierForVendor property of UIDevice—you can’t use it to identify and restore purchases made by the same user on a different device, because different devices have different values for this property.
So, once you have the receipt you can send it to a web service. You can use a shared secret or a public/private key pair to sign the receipt so that your server can validate it.