If you want to make it provably fair, I have an easy solution for you.
Make a server seed, and keep it private until after the flip, but provide a hash of it before the flip.
Let the client set a client seed.
Hash the two together, and if the first character of the hash is 0-7, the result is heads.
If the result is 8-f, the result is tails.
Set a new server seed after each flip, and remember to give the hash to the player before every flip and reveal the seed afterwards.
Alternatively, instead of setting a server seed after every flip, use a nonce, where it is incremented every flip and included in the hash that determines the roll so that you don't set a new server seed every flip. You would hash the client and server seed with the nonce and still follow the steps above.