Mexico gains nothing from the U.S. building a wall between the two countries so it is completely unfair for Trump to expect even a contribution let alone payment from Mexico for the full amount. If this is the only way that Trump feels he can effectively control the border, then he should expect the U.S.to bear the full cost.
No, Mexico should not pay for the wall, for the simple reason that there is never going to be a wall built. The whole idea is a remnant from the early days of the Trump campaign. It was all bluster and posturing then, when nobody thought Trump would have a shot at the nomination, and it still remains a wholly unrealistic idea. The only reason Trump hasn't backed away from the wall-idea is that he would be slain in the polls if he did.
It's not like Mexico would actually be handing over cash to pay for the border wall. Trump wants to basically withhold money from the Mexican government and pay for the wall that way. That way "Mexico is paying for the wall" without actually putting a single peso into it's construction. When you frame it that way, Mexico couldn't really stop us from using "their" money to pay for the wall.
It is not reasonable for the Mexican people to pay for a border wall. The number of illegal immigrants coming from Mexico is decreasing, so this is a problem that does not need to be solved. Trump is the one calling for the wall, and he should figure out how to pay for it.