Developerpayload is just another way to make the whole purchase process more secure.
If it is not implemented, you are dropping one more check to see if the request is true. Would be letting a user (using hack?) buy various items from your app without paying you, for example.
How it works?
When starting the purchase process within the app, you create a payload, which should be different for each user, but not different for each device (because if a user makes a purchase on one device, he has to be able to recover that purchase on another device). Using a random string is also not cool, for the same reason the device change.
The verifyDeveloperPayload() method is used to verify that the payload that came from the request is the same as the one you used to start the request.
The recommended is to use an own server to store this information, so regardless of the version of the app, or the device used, it is possible to verify that the payload is correct.
If you want to read more about it:
http://developer.android.com/google/play/billing_best_practices.html#payload
So far so good, but in case I don’t want (or can’t) have a server of my own, is there any way I can do this check? I saw here that maybe I can generate the key at the time of the request and when there is a return, in case of purchase, I check if it was the same generated in the request. Sometimes it can work...
– Cícero Moura