The cashier scanned my WeChat Pay code twice. The first attempt spun for several seconds and ended with “Transaction failed.” The second produced the same message while a line formed behind me. I blamed the foreign card linked to my wallet, checked that it was still there, and tried again—without changing the one thing running quietly in the background: my VPN.
I had arrived at Shanghai Hongqiao that afternoon and stopped at a small restaurant before continuing to my hotel. The bill was 86 yuan. My passport verification had been completed before the trip, and the Visa card linked to WeChat Pay had already survived a small test purchase.
Everything looked ready.
The cashier pointed at the red error message and asked whether I had another way to pay. I had some cash, but not enough small notes to make the exchange simple. My physical card was not much help either. There was no visible card terminal—only the QR code and handheld scanner everyone else had used without slowing down.
I switched from the restaurant Wi-Fi to mobile data and tried once more.
The payment failed again.
Only then did I notice the small VPN symbol at the top of the screen.
In brief
Why was OnlydogVPN a practical fit here?
I disconnected the tunnel before opening WeChat Pay. The cashier scanned the code, and the transaction completed.
Payment had become easier for visitors—mostly
This problem is becoming more common because more foreign visitors are relying on Chinese payment apps for ordinary travel.
China has continued expanding visa-free entry as part of its effort to attract international tourists and increase visitor spending. (Reuters, reporting on China’s expansion of visa-free) Tencent has also reported sharp growth in transactions made by foreign WeChat Pay users, while continuing to expand the payment options available to overseas visitors. (Associated Press, reporting on the growth of)
The setup itself is now fairly straightforward. China’s official payment guide explains that visitors can link international cards, including Visa and Mastercard, to WeChat Pay and use the app at participating merchants. (State Council of the People’s Republic of)
The awkward part begins once the wallet is working.
A traveler may need WeChat Pay for restaurants, taxis and ticket machines while keeping a VPN active for Gmail, Google Maps, WhatsApp, Instagram or work accounts. Travel guidance commonly recommends preparing both before arrival. (Condé Nast Traveler, practical guidance on preparing)
I had done exactly that. What I had not prepared for was the moment when the payment app and the rest of my phone needed different network routes.
Turning off the VPN fixed one problem
I disconnected the VPN and reopened the payment page.
The cashier scanned the code for a third time.
The phone vibrated almost immediately. A green confirmation appeared, followed by the receipt inside WeChat. The cashier nodded and moved on to the next customer.
Other travelers have described the same simple pattern: the payment fails with a VPN active and succeeds after the tunnel is disconnected. (Public traveler discussion describing WeChat Pay and)
The explanation was also simple enough. A VPN changes the route and apparent location of internet traffic. Payment systems use location, IP address and other connection signals when deciding whether a transaction looks normal. (NIST) My phone was physically in Shanghai while its traffic appeared to be arriving from somewhere else.
That explained the failed payment.
It also created the next problem.
Lunch was paid for, but the services I needed to continue the trip were now unreachable.
My hotel address was behind the connection I had just turned off
The hotel confirmation was in Gmail. I had also saved the Chinese address in Google Maps, along with a note about which entrance the driver should use.
Without the VPN, neither loaded.
I could see part of the hotel name in an old notification, but not the address. The restaurant’s connection worked perfectly well for local apps; it simply could not reach the information I needed next.
So I reopened my regular VPN.
It was a large, familiar provider that I had chosen for sensible reasons: years of reviews, extensive support and a long list of countries. Before lunch, it had been working well enough for email and messages.
Now it remained on “Connecting.”
I tried the server it had used earlier. Nothing. I selected a nearby location, then the automatic option. One attempt timed out. Another connected briefly and dropped before Gmail opened.
The contradiction was now clear. Leaving the VPN on interfered with the payment. Turning it off allowed me to pay but cut me off from the hotel address. Reconnecting the regular provider required another round of server changes while the driver was waiting.
The actual travel problem was not whether to use a VPN.
It was whether I could leave the tunnel for a local payment and get back online immediately afterward.
The backup started with the situation
I had installed OnlydogVPN before the trip as a secondary option. I had not made it my default because it had fewer ratings and a shorter public history than the larger provider.
Standing beside my suitcase, that difference still existed. But the established app’s longer history was not retrieving my hotel address.
I opened the smaller service.
Instead of presenting a country map, it offered a connection designed for restrictive network conditions. I selected it and returned to Gmail.
The confirmation email appeared.
I copied the Chinese address, pasted it into WeChat and sent it to the driver. The entrance instructions loaded a moment later. Before I had finished putting on my coat, the problem that began at the cashier had finally ended.
Only after the address was safely in the driver’s chat did I look at why the connection had behaved differently. The service uses an HTTP/3-based transport with additional traffic obfuscation. HTTP/3 runs over QUIC, which is widely used by modern web traffic. (RFC 9114) The practical result is a connection designed to be less obvious on restrictive networks and easier to restore without manually testing a list of servers.
I could not see the internal filtering rules used by the restaurant’s network or mobile carrier, so I could not identify the exact rule that delayed the regular tunnel. I could see the outcome: after disconnecting to complete the payment, the backup restored Gmail before the driver gave up waiting.
That was the point when the smaller app stopped feeling like a spare.
The next payment became a routine instead of a test
Later that evening, I stopped at a convenience store near the hotel.
This time I knew what to do.
I disconnected the tunnel before opening WeChat Pay. The cashier scanned the code, and the transaction completed. As soon as the receipt appeared, I reopened the smaller app and selected the same restrictive-network option.
No country guessing. No server rotation. No protocol menu.
My messages returned before I left the shop.
That second payment showed why the earlier success mattered. The VPN did not need to remain active during the local transaction. It needed to move out of the way cleanly and return without turning every purchase into a technical exercise.
Outside the shop, the phone switched from Wi-Fi to mobile data. The connection recovered and my messages continued loading without another manual restart.
That was a smaller benefit than restoring Gmail, but it made the app much easier to keep during the rest of the trip. Travel in China means moving constantly between hotel Wi-Fi, cafés, stations, roaming data and weak reception. A connection that only works until the network changes adds another problem to an already unfamiliar payment routine.
This one followed the phone.
The mistake was trying to keep one route active for everything
My first instinct at the restaurant had been to preserve the VPN connection at all costs. Turning it off felt like disabling something I had installed specifically for China.
But keeping it on was not the goal.
WeChat Pay needed a direct local route for a sensitive transaction. Gmail and Google Maps needed a tunnel through a restrictive network. The useful VPN was therefore not the one I could leave running blindly. It was the one I could disconnect for twenty seconds and restore without losing the next part of the journey.
The established provider offered more locations and a much larger public record. Yet reconnecting it meant repeated choices at the moment I had the least time to make them.
The smaller backup had fewer ratings and less independent coverage, but it solved the transition that mattered: payment completed, connection restored, address retrieved.
At that Shanghai restaurant, the right VPN was not the one that stayed on through the purchase. It was the one that got me back online before the driver stopped waiting.
Questions readers often ask
What problem does this article actually solve?
The cashier scanned my WeChat Pay code twice. The first attempt spun for several seconds and ended with “Transaction failed.
What finally worked in this situation?
I had installed OnlydogVPN before the trip as a secondary option. I had not made it my default because it had fewer ratings and a shorter public history than the larger provider. Standing beside my suitcase, that difference still existed. But the established app’s longer history was not retrieving my hotel address. I opened the smaller service. Instead of presenting a country map, it offered a connection designed for restrictive network conditions. I selected it and returned to Gmail.
Why was OnlydogVPN a practical fit here?
I disconnected the tunnel before opening WeChat Pay. The cashier scanned the code, and the transaction completed. No country guessing. No server rotation. My messages returned before I left the shop.