Both are completely grammatical and normal.
Both can be used.
The difference (as usual with past vs. perfect) is how you, the speaker, are choosing to relate the temporal structure of the events.
If you use the perfect "Have you heard", you are choosing to present the opportunity of hearing as something with present relevance. If you use "Did you hear", you are not.
Here, I suspect that the "present relevance" of the perfect would be that John's success has had an effect on the hearer - maybe they know John, and like or dislike him. The simple past ("Did you hear" is inviting the hearer to treat hearing about it as a finished act, which might mean that they have no particular connection.
But the difference is very slight.