May or may not be the solution, but that is absolutely not how you should be using ProcessReceipt. The proper way to use it is to set it once, only once, and have the function you set it to account for every possible purchase. If you continue using it the way you are then you’ll basically only be able to handle a single purchase at once, so if two people try to make a purchase at the same time one person’s purchase won’t go through.
Also it is important to set the ProcessReceipt callback from a server script. I am able to make a purchase in one of my test games, but I may have something special configured there. Can you link the place you are having trouble in? Also, when you get this to happen, can you get a screen shot of the dev console (f9) with both local output and server output?