Often, when IStoreListener.ProcessPurchase fires, the iOS receipt payload contains an empty receipt. That is to say that it contains a valid receipt, but that receipt contains no purchase ids. I'm not sure why this happens, and when it does is there a proper response to give back? Currently the purchase handler returns Complete instead of Pending, but I fear that this means Unity will never give me a valid receipt. Secondly, if I choose to mark the purchase Pending, how do I ensure the correct Product is being marked complete when I know it has been processed? If there are two purchases that have not been marked as Complete yet that are the same product ID how does Unity handle that since a single Product has only a single receipt within in when you retrieve the ".all" field of the purchases collection. This behaviour doesn't seem to be documented anywhere so it would be good to know what the expected result is.