The act of paying indeed should involve pressing a button "pay $amount to $party", and the flow should go through a server verifying both parties.
I'd say that paying with a contactless card has a problem here, an NFC credit card lacks a confirmation button, and the one on the terminal is controlled by the receiving party.
I'd say that paying with a contactless card has a problem here, an NFC credit card lacks a confirmation button, and the one on the terminal is controlled by the receiving party.