Android letting me purchase a non-consumable product more than 1 time

If you do that, you will most likely no longer be able to create consumable items. Basically this would solve a problem but create another. I think that if you add the aknowledge purchase node to the java library like Ashyankee said, and removed finalizePurchase() function from your code(assuming that you make the purchase in CPP), both would work. I have not tested this (yet) but i belive that this is the best way to do it.

Edit: For clarifications, if you look at the onlinesubsystemgoogleplay code, finalizePurchase() consumes the purchase instead of acknowledging it.