Android - is field purchaseState in receipt Payload reliable?

Are you returning Pending from ProcessPurchase? When you initialize IAP, all products left in Pending state will trigger ProcessPurchase, are you seeing this? Put Debug.Log statements in all your purchase methods, and provide the device logs as an attachment here. I am not familiar with the fields that you mention, you will want to inspect them during your testing to confirm. How To - Capturing Device Logs on Android