Check payments

I believe this resolves the basic requirements of #223. It could probably use a little love from the UI perspective.
I don't totally understand how all the different payment options work, but it does seem weird now that this doesn't return a bool, given the name of the function.