Virtual cards are absolutely the way to go to separate those riskier payments, especially online, into separate virtual pockets, and to pause and reactivate cards when needed.
This however explains why my own virtual cards did not work as a tap-to-pay at a point-of-sale a while back. You just assume this is the way it works. So much for banks to catch up on, such as Discovery Bank won't let me give a custom name to each virtual card, and I only get 5 broad categories, which is a bit useless to remember which is for what online service.
See FNB virtual cards get tap-to-pay
FNB has launched support for contactless payments using virtual cards.