I always purchase my excursions before I cruise and I do it thru the Cruise Line, I have never had a problem I also call them to make my payments. I always like to book way ahead and have everything paid for before we go, so I would not worry at all. I for any reason the excursion is cancelled you will be refunded as well.
I've booked a few Shore Excursions with Carnival ahead of time and not had a problem. One was canceled once by them and they refunded my credit card. I would check with the cruise line you are sailing on about their policies.
We choose our excursions before our trip and almost always go though the cruise line. NCL just add the price to your on board expense account. If an excursion is cancelled it is credited, if for some reason you decide not to take a tour then I think at least 24 hours notice is required, depending on the type of tour. I do not see any reason to pay for an excursion organized by the cruise line up front.
It is different depending on the Cruise Line,
NCL did just add it to our onboard account. However with Celebrity when you purchase your excursion online prior to boarding you need to pay for it then, same with booking your Specialty Restaurant with Celebrity you have to pay when you book it ahead of time online. I like it, that bill at the end doesn't look so bad
RCI does as Celebrity (surprise). Book before the cruise and it goes on a credit card. However if a tour is canceled once the cruise starts, the credit goes on your shipboard account and not on the credit card.