Bitcoin URLs: how to set a transaction fee? The  Bitcoin URI scheme doesn't appear to provide any mechanism for setting a transaction fee.

Is there a way to get clients to include a transaction fee in a standard payment via a Bitcoin URI?
Great question!!!

Here is a non-authoritative answer based upon prior related experience of many years past. The Bitcoin URI-scheme is very reminiscent of the IETF HTTP and SIP URI protocol grammars. 

With the suggested Bitcoin BNF Grammar documented in BIP-21, it is possible that implemented pchar "otherparam" or "reqparam" names to be abused to suggest a transaction fee. The fee is digit, not a pchar. The URI could even be made to suggest specific pool(s) to expedite the processing of the transaction (relates to High level details for bundling transactions for solo mining or pooled GBT mining). I'm guessing the issue is the the meaning of the name-value pair for a transaction fee is left up to the whim of a developer which could lead to downstream turnkey Bitcoin component interoperability issues. So does it would make sense for the BIP-021 to be tweaked to add something like the following to its grammar?

paytxfeeparam = "paytxfee=" *digit [ "." *digit ]

**The wallet application currently establishes the acceptable transaction fee. For now, Bitcoin-Qt "bitcoin.conf" "paytxfee" value is used to statically establish the transaction the client is willing to pay.

I can understand why current pool operators may not care about establishing a paytxfeeparam. However, a roaming customer may want to know what it takes to expedite an adhoc in-person brick and mortar transaction for a product or service.

To support commerce, its not too hard to also envision a need for something like:

paysalestaxparam = "paysalestax=" *digit [ "." *digit ]

BIP-21 needs to be updated with a number of other real world use cases...

From a Cybersecurity perspective, I would be very reluctant to click on a URI from that only God knows is from who that induces a very expensive transaction. I'm glad to BIP-21 talks about always requiring the user's authorization.