This stuff is infuriating on multiple levels
TL;DR:
- Restaurant only accepts orders made from the app
- Restaurant “mini” app is 200 mb and I had a sim card with 500mb/day
- When you finally get to pay, they must “verify you’re a human” with an otp code sent to your phone number
- For saving money they don’t send the otp code via SMS but via WhatsApp, which is blocked in the country
- Restaurant doesn’t accept cash
- Restaurant doesn’t accept credit cards
- Restaurant only accepts payments from a local app that requires id verification with passport scanning
- Taxis need to be called with an app
- In order to use the taxi app you need to register with the phone number and scan the passport and so on
Full story:
I went to china, first thing I went out for a walk and after a couple hours of walking I wanted to eat, so I went to KFC as I was intrigued by an ad showing a shrimp burger and a nori seaweed flavored fried chicken. (Yes, they looked tasty in the pictures, although by typing this, it doesn’t look like it’s actually tasty. Probably the “shrimp” burger is just surimi made with the cheapest shit gathered from the oceans and then just slushed in a patty. No, I could not try them, for the reason written below)
I went inside and I saw no self ordering kiosk. Oh no, I have to do social interaction with my poor Chinese proficiency. I go to the cashier and… there’s only a order pickup point. I ask and they say need to order from their app, just scan the qr code.
Now, luckily I ordered a travel esim with 500mb/day, as the store didn’t have public WiFi
I scan the qr code and it doesn’t work. It’s a proprietary version of qr code developed by tencent, need to use WeChat to scan.
I already had WeChat installed, I scanned it. It needed to download a KFC “mini app” and I agreed. 200 FUCKING MEGABYTES??? What does it contains, 4k movies of fried chicken???
After burning the whole data plan on that “mini” app I do the order and before paying: WAIT, YOU MUST LOGIN!
WTF? I thought the point of using WeChat is that I was already logged in a platform? Ok, let’s login. WAIT! HOW DO WE KNOW THAT YOU’RE NOT A BOT? Please verify your phone number!
WTF??? I just need my weird seafood flavored chicken, why do you need my phone number??
At that point I was already 20 minutes in, and due to the fallacy of sunk cost I agreed to let them “verify” my phone number. Which for some reason they sent via WhatsApp instead of texting it. Luckily the travel esims are somehow exonerated from the gfw so I could receive it.
Ok, identity “verified”, now need to pay. Oh, can’t pay in cash??? Can’t pay with credit card??? Only weixin pay. I try to check, needs passport verification.
At this point I just flip the table and I give up, I want to go back to my hotel room.
I’m tired boss, I don’t want to walk another 2 hours, let’s take a taxi. Last time I went to China it was pre-covid. In order to take a taxi you just needed to go on the side of the road, wait 30 seconds and a taxi would stop. Now there are no taxis at all??? I call my friend and he says it’s normal, everyone orders a Didi now from the phone. I see it’s another 200 mb app and I even don’t try it, as I’m 100% sure it will ask phone verification and pay with weixin pay.
I give up and just start to walk…
Luckily I see taxi dropping someone on the side of the road so I run there to ask get me home. When we arrive he directly shows me a laminated card for paying with weixin. I give him a 20 yuan bill for the 14 yuan ride. He probably tells me that he doesn’t have change. I don’t understand. It’s ok buddy, keep the change.


I don’t care about bandwidth but it’s clearly worse technology. Pointing to a physical target and exchanging physical tokens is straight up better technology. This is functional regression.
I like how Japan solved the cash overhead with automatic cash change machines everywhere - this is the right solution for payment processing and updating menus is easy.
Dunno if it’s necessarily worse tech… I don’t really care if it’s physical tokens which get exchanged or virtual ones… Point is, it has to work and cover a wide array of use-cases. Has to work in edge-cases, for both residents and tourists, has to work when there’s surprise maintenance at the bank, when there’s an internet outage… We gotta easily pay $1000 for a hotel for 10 days and the rental car, or 73ct at the local flea market. I might need to pay for a bus ticket or gasoline in the middle if some forest where there isn’t any 5G coverage…
I think exchanging physical tokens is just absurdly good at that. I’m just not sure if it can’t be done any other way? I mean we obviously don’t have that hypothetical tech in the real world, because banks want to control the process and they always come up with some central way of doing it, with them in the middle. That’s kinda their business model. And the alternative concept is some convoluted approach which needs an internet connection and a decent amount of resources to do the transactions…
There’s some better approaches at digital cash like GNU Taler I think that one is pretty much like cash. And we only need one of the transaction parties to be online (to prevent double-spending of the virtual tokens).
Edit: And we need some default. Makes it way more comfortable to live in a country that just demands people to offer a payment method and I can go anywhere and just pay with that. In contrast to install 25 different apps, open 20 bank accounts to cover all possible cases, and the parking meter at the tourist place randomly asks me to install the 26th app.