There’s still plenty of steps that your bank app can (and will) take to verify this is as intended. Requiring the user to “parse” the URI is not scalable anyway, the app needs to present the information clearly (i.e. “Do you really want to transfer 123.45€ to IBAN abcd, you have not transferred money to this IBAN before, the IBAN indicates a bank in <country>” where the money amount is clearly highlighted).
I thought about that, but I think it’s actually more error prone, because people might just be setting ?amount=32 and leaving out currency which might lead to unexpected behaviour. Implementors tend to interpret this differently and one app might take the default currency and the other might fail to accept it, and that kind of different behaviour is a common source of security issues. Having a single unified parameter that must always contain the value and currency “solves” that issue.
Oh, add an
?amount=32€
as well as atext=Pizza
parameter and you’re almost there …Dammit we’ve just made UPI
Idont’t think that’s a good idea, too many peoplr quickly pressing pay and then they tealizef only afyer paying thay there’s an extra 0
There’s still plenty of steps that your bank app can (and will) take to verify this is as intended. Requiring the user to “parse” the URI is not scalable anyway, the app needs to present the information clearly (i.e. “Do you really want to transfer 123.45€ to IBAN abcd, you have not transferred money to this IBAN before, the IBAN indicates a bank in <country>” where the money amount is clearly highlighted).
You know, it’s good to put failsafes and all, but at some point it’s just PEBKAC.
Ah yes, PEBKAC, the most common error after ID-10T.
Separate
?amount=32
andcurrency=Euro
to add currency support.I thought about that, but I think it’s actually more error prone, because people might just be setting
?amount=32
and leaving outcurrency
which might lead to unexpected behaviour. Implementors tend to interpret this differently and one app might take the default currency and the other might fail to accept it, and that kind of different behaviour is a common source of security issues. Having a single unified parameter that must always contain the value and currency “solves” that issue.