How to convert array to a string ?

Is it because payload is a byte*

No, the cast takes care of that.
Is payload null terminated?