Make the senate and house a non-paid position, and make these people get real jobs. In my town, the board of education operates like this, and the city council.
I like it, I like it!
Not practical, though; few folks could afford to take two, four or six years without earnings. If they had other jobs they could not devote the time required to their congressional duties. I think maybe a combination of term limits and strict accounting of (and recapture of the excess) money raised for campaigns would discourage those who are only there to line their pockets.
Make them go back and live under the laws they pass after their term of service ends.
As far as selling influence, all political donations should (by law) be anonymous. You can't sell if you don't know who is buying!