The command 'strcmp' compares two character arrays. The variable payload is a pointer to a byte array. Since you want to check the payload and have already checked content of topic, I am not sure why you have '(char*) topic' in the strcmp comparison?
The payload is sent as an array of ASCII characters, so the received payload will contain an array of the received ASCII character codes. You can convert by casting to char and using atoi to convert to an integer like this:
if ( atoi( (char*)payload ) == 5343 ) {
// do something
}
Just make sure that payload is never greater in value than a 16-bit integer, in which case you may need to use atol instead.