With checks, you write a check and can write down the check number with a note about what the payment was for. When the payment posts, the check number is part of the transaction. With a card payment, they charge your card and, sometimes days later, there's a pre-authorization with some obscure transaction description. So many scary transaction descriptions that make me think "wait is this fraud".
With this method, the approval flow would also allow people to add a blurb for what the transaction is for.
That's basically how Blik works in Poland. With the exception being that the number is random 6 digits randomly generated when you open the app, that is active for ~2 minutes. So you don't deal with the issue of very long and error prone numbers to copy.
Much better way to pay online.
It’s entirely the US credit card industry and its regulating bodies’ fault that it has made neither mandatory in the way that e.g. the EU did, and is in fact fighting any attempt to do so tooth and nail (please think of the conversion rate!!)