onTransactionComplete called my code twice

Theres a few ways I can think of to to it.

But you won’t really know for sure without their instance making a call to your server.

Which is why you deduplicate purchases on the server via ID