Wouldn't it be very impolite to ask someone "Why have you come" in English? In China, I often hear people greet and start their conversation this way. Actually the speaker is just surprised at your coming and asks casually, he isn't questioning you.
valid question