Almost all of my customers pay me at the time of service. What I do is either send them an email or text them the day before I am scheduled to come to remind them I am coming and almost all of them leave a check or cash in an envelope under the mat. This works great for me and I don't have to worry about cash flow. I have 1 customer that likes to pay online through my website but the rest seem happy to leave payment under the mat the day I'm coming. Occasionally one will forget to leave it but they always double up the next time. It is a very good feeling getting paid every day for the services you did that day and not having to wait and worry about getting paid for several services you have already done.
I just recently got the credit card scanner for my smartphone through Intuit but I have not used it yet. I have a feeling it won't get used much since most of my customers are not home when I come by.