MyCelium introduced the Swish offering - which is nice but it appears it could be simpler and uncentralized.
I wanted to throw an idea out there and see if I am missing anything.
To me, there seems to be some low hanging fruit for ordering food and drinks in a bar / restaurant setting that does not require a remote service (although one could be incorporated if you really wanted).
This could be extremely efficient - and possibly save on labor costs too if enough people use it.
Say I want to order a hamburger only. I scan the QR code for the hamburger (which is unique for my table), pay - and the kitchen automatically gets a signal that they need to deliver a hamburger to table 2. I eat, and leave. No need for me to pay (I've already done so!).
If I also wanted a large fries and a large coke, I would scan those QR codes, pay, and the waiter would deliver them to my table. Very quick.
Of course, this requires each table to have a unique menu (with unique QR codes for each item/table combination but that is no problem with HD wallets at all). It also requires some device to display the orders to the staff (it could be as efficient as the kitchen getting the hamburger and fries order, and the barkeeper getting the drinks order).
It would work, but there are two things, I think, that are needed for this to work more efficiently. None are bitcoin changes.
It would help if the QR code could contain some information about the currency that is requested, and the data source that the seller requests that you use to convert. So, I could price my hamburger in USD, Euros, Pounds, Yen, Bitcoin, whatever I want - and specify you use Bitstamp's exchange rate to pay me in BTC.
It would also help if the wallet software is able to pay multiple output addresses. My desktop client can do this, but my MyCelium mobile wallet cannot.
QR codes can already have a description embedded. So, the QR code for the hamburger could be "Regular Beef Hamburger" and the price BTC 0.01. So I can use my current wallet if the menu was priced in BTC.
It would be more efficient if I could scan multiple QR codes, each with a description, some multiple times, and for the wallet software to make a clear overview of my order (a list). And, if I pay, create one transaction with multiple outputs (one for each item). If I wanted 2 cokes, and 1 coke is 0.01 BTC, I could send 0.02 BTC to that address.
I don't think I can make payment QR codes that have a USD amount embedded in them (or can I?). That would be a useful feature in any event - you could print that on invoices (or digital invoices) to allow immediate payments of non-BTC invoices in the BTC currency.
I see a few minor issues with this, such as
- How to prevent someone from changing the menu (QR codes) with their own code and stealing customer funds
- Efficiency (imagine doing your grocery shopping in this way - the transaction would get quite large).
- Spying (you can use the blockchain to analyse competitor's sales in real time - can possibly be resolved with the payment privacy codes)
- How to prevent some funny person from 'ordering random food' for other tables in the restaurant and then have fun when it is delivered (although - who cares - the food is paid for!)
A restaurant could give a small discount for this type of order, as it (1) saves time for the waiter, (2) ensures that people do not run away without paying.
This may make more sense with micro payment channels (as not to bloat the blockchain with a per-item itinerary that is stored forever). Then this is scalable to supermarkets. Imagine running around WalMart with your smartphone, and scanning QR codes of the items. Your phone creates a shopping list of the items (and does not send it yet). You can add, or remove, items at will. Once you are ready to pay - your phone sends the required bitcoin to each address in a micro payment channel - so no blockchain transactions are done. WalMart could (based on the amount of trust they have in you, probably based on your past behavior) either trust you have been honest this time, or want verification and rescan your shopping trolley.