For most people, my guess is the solution would be credit card payment where at the time of booking they take a temporary hold on the card which is only actually charged once you board. Similar to how typically with online shopping your card is only charged once the item actually ships.