I have been knocked quite a number of times over the years. Maybe I'm too laid back about it, but I always, and I mean always, walk away when I realize that I am not going to get paid. I never threaten, I choose not to get into a confrontation which could hurt my reputation more than theirs. I would rather be wronged than to do wrong to others.
The way I see it, is that I have done the job I have been asked to do, therefore have kept my side of the agreement. The customer is in the wrong by avoiding paying, so I leave it with them, and their conscience (if they have one).
They will still see me cleaning their neighbour's windows, while they gradually see theirs getting dirtier and dirtier. Therefore any regret will weigh greater with them than with me.
John.