If you are only checking the data integrity at server level then Hash (includes the Salt/Token) mechanism is okay for you. If you need data security, the data/info should not be leaked then use Crypto (e.g. Asymmetric etc.)
Also, your client side and server side hash is not matching because the pattern of the data concatenation to generate the hash is different on client & server. Kindly check the logic once.