Zum Hauptinhalt springen

Integrating WeChat WiFi Authentication: Captive Portal Onboarding for APAC Customers

WeChat hat 1,41 Milliarden monatlich aktive Nutzer und ist damit die primäre digitale Identität für chinesische Verbraucher weltweit. Dieser Leitfaden erklärt, wie Sie die WeChat OAuth 2.0-Authentifizierung in Captive Portals von Unternehmen für APAC-Standorte integrieren. Er behandelt die Plattformregistrierung, die Auswahl des Scopes, die Durchsetzung von RADIUS Change of Authorisation sowie die Einhaltung des dualen Frameworks aus GDPR und Chinas PIPL. Er richtet sich an IT-Manager, Netzwerkarchitekten und Leiter des Standortbetriebs, die in diesem Quartal handeln müssen.

📖 9 Min. Lesezeit📝 2,051 Wörter🔧 2 ausgearbeitete Beispiele4 Übungsfragen📚 10 Schlüsseldefinitionen

Diesen Leitfaden anhören

Podcast-Transkript ansehen
KONFIGURATION DER WECHAT OAUTH-AUTHENTIFIZIERUNG FÜR CAPTIVE PORTALS Ein technisches Briefing von Purple - ca. 10 Minuten EINFÜHRUNG UND KONTEXT (ca. 1 Minute) Herzlich willkommen. Wenn Sie für das Gäste-WiFi in einem Hotel, einer Einzelhandelskette, einem Stadion oder einem Konferenzzentrum verantwortlich sind, das chinesische Besucher bedient, ist dieses Briefing genau das Richtige für Sie. Laut eigenen Angaben von Tencent verzeichnet WeChat im Jahr 2025 monatlich 1,41 Milliarden aktive Nutzer. Die überwiegende Mehrheit befindet sich in China, aber die Plattform verfügt auch über eine beachtliche internationale Präsenz. Malaysia zählt 12 Millionen WeChat-Nutzer. Japan hat 5,5 Millionen. Südkorea 5 Millionen. Und die Zahlen in Südostasien, dem Nahen Osten und Europa steigen kontinuierlich. Wenn sich ein chinesischer Gast mit Ihrem WiFi verbindet und eine Anmeldeseite sieht, die nur E-Mail, Facebook oder einen Gutscheincode anbietet, stößt er sofort auf Barrieren. Möglicherweise ist auf dem Gerät keine lokale E-Mail-Adresse eingerichtet. Aber sie haben mit an Sicherheit grenzender Wahrscheinlichkeit WeChat. Die Frage ist also nicht, ob Sie einen WeChat-Login anbieten sollten. Es geht darum, wie Sie ihn korrekt, sicher und so konfigurieren, dass Sie nutzbare First-Party-Daten generieren. Genau darum geht es heute. Wir gehen den OAuth 2.0-Ablauf durch, die beiden erforderlichen Plattform-Registrierungen, die Scope-Entscheidung, die bestimmt, welche Daten Sie erfassen, den netzwerkseitigen Durchsetzungsmechanismus sowie die Compliance-Aspekte, die im Jahr 2026 von Bedeutung sind. TECHNISCHER DEEP-DIVE (ca. 5 Minuten) Beginnen wir mit der Architektur. Ein Captive Portal fängt den HTTP-Traffic von einem nicht authentifizierten Gerät ab und leitet ihn auf eine Anmeldeseite weiter. Diese Anmeldeseite wird auf einem Portalserver gehostet, entweder lokal oder in der Cloud. Wenn Sie WeChat-OAuth hinzufügen, binden Sie einen Drittanbieter-Identitätsanbieter in diesen Ablauf ein. Der Ablauf sieht wie folgt aus: Der Gast verbindet sich mit Ihrer SSID. Der Access Point oder Wireless Controller erkennt, dass das Gerät keine authentifizierte Sitzung hat, und leitet den gesamten HTTP-Traffic an Ihre Captive Portal-URL weiter. Die Portalseite lädt und zeigt die Anmeldeoptionen an, einschließlich WeChat. Der Gast tippt auf den WeChat-Login. Ihr Portalserver leitet den Browser an den Autorisierungsendpunkt von WeChat weiter und übergibt dabei Ihre AppID, die Redirect-URI, den Antworttyp „code“ und den Scope. WeChat wickelt die Authentifizierung vollständig auf den eigenen Servern ab. Wenn der Gast bereits in seinem Browser bei WeChat angemeldet ist, sieht er einen Zustimmungsbildschirm. Wenn er den In-App-Browser von WeChat nutzt, kann der Vorgang mit dem Scope „snsapi_base“ geräuschlos ablaufen, d. h. ohne jegliche Zustimmungsaufforderung. WeChat leitet dann mit einem temporären Autorisierungscode zurück an die Redirect-URI Ihres Portals. Ihr Portalserver tauscht diesen Code durch einen Aufruf der WeChat-API gegen ein Access-Token aus. WeChat gibt ein Access-Token, ein Refresh-Token, die OpenID des Nutzers und den gewährten Scope zurück. Wenn Sie den Scope „snsapi_userinfo“ angefordert haben, können Sie in einem zweiten API-Aufruf den Spitznamen, das Profilbild, das Geschlecht und die Stadt des Nutzers abrufen. Nun zu den beiden Plattform-Registrierungen. Hier treten bei den meisten Implementierungen die Fehler auf. WeChat hat zwei separate Entwicklerplattformen. Die WeChat Open Platform verwaltet Website-Anwendungen und mobile Apps. Die WeChat Official Accounts Platform verwaltet öffentliche Konten, was die meisten Standorte tatsächlich benötigen. Für ein Captive Portal, das Gästen innerhalb des WeChat-In-App-Browsers angezeigt wird, benötigen Sie ein Service-Konto auf der Official Accounts Platform. Ein Abonnement-Konto funktioniert nicht. Dieses verfügt nicht über die Berechtigungen zur OAuth-Webseiten-Autorisierung. Ein Service-Konto hingegen schon und es unterstützt sowohl den Scope snsapi base als auch snsapi userinfo. Für ein Captive Portal, auf das über einen Standard-Mobilbrowser außerhalb von WeChat zugegriffen wird, wie z. B. Chrome auf Android oder Safari auf iOS, benötigen Sie eine auf der Open Platform registrierte Website-Anwendung. Diese nutzt den Scope snsapi login und zeigt einen QR-Code an, den der Benutzer mit seiner WeChat-App scannt. In der Praxis nutzen die meisten Standort-Installationen beides. Ein Gast in einem Hotel öffnet das Portal möglicherweise in Chrome, sieht einen QR-Code, scannt ihn mit WeChat und authentifiziert sich. Oder er folgt einem Link direkt in WeChat, landet im In-App-Browser und authentifiziert sich geräuschlos über snsapi base. Lassen Sie uns über die Auswahl des Scopes sprechen, da dies eine echte Entscheidung darstellt. Der Scope snsapi base gibt nur die OpenID zurück. Dies ist eine eindeutige Kennung für diesen Benutzer innerhalb Ihres Official Accounts. Es ist keine Zustimmung des Benutzers erforderlich. Die Authentifizierung ist für den Benutzer unsichtbar. Dies ist ideal für wiederkehrende Gäste, von denen Sie bereits ein Profil haben, oder für Standorte, an denen Sie keinerlei Reibungsverluste auf Kosten neuer Daten wünschen. Der Scope snsapi userinfo gibt die OpenID sowie den WeChat-Spitznamen, das Profilbild, das Geschlecht, die Spracheinstellung und die Stadt des Benutzers zurück. Dies erfordert einen expliziten Zustimmungsbildschirm. Der Benutzer sieht eine Aufforderung mit der Frage, ob er Ihrem Official Account den Zugriff auf seine Informationen gestattet. Die meisten Benutzer akzeptieren dies, aber es entsteht ein Reibungspunkt. Die richtige Wahl hängt von Ihrem Anwendungsfall ab. Für die Erstregistrierung eines Gastes, bei der Sie ein Profil erstellen möchten, verwenden Sie snsapi userinfo und kombinieren Sie dies mit einer GDPR-konformen Zustimmungsebene auf Ihrer Portal-Seite. Für einen wiederkehrenden Gast, der bereits zugestimmt hat und dessen Profil Sie bereits besitzen, verwenden Sie snsapi base für eine geräuschlose erneute Authentifizierung. Nun zur Seite der Netzwerkdurchsetzung. Der Erhalt eines OAuth-Tokens beweist die Identität, öffnet aber nicht automatisch das Netzwerk. Sie benötigen einen Mechanismus, um eine erfolgreiche Authentifizierung in einen Netzwerkzugriff zu übersetzen. Die beiden Standardansätze sind RADIUS Change of Authorisation, definiert in RFC 3576, und MAC-Adressen-Bypass. Bei RADIUS CoA sendet Ihr Portal-Server nach erfolgreichem OAuth eine CoA-Anfrage an den Netzwerk-Controller, und der Controller verschiebt das Gerät aus dem unauthentifizierten VLAN in das Gäste-VLAN. Dies funktioniert mit Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme und Fortinet. Mit dem MAC-Bypass registriert der Portal-Server die MAC-Adresse des Geräts als autorisierten Client, und der Controller lässt sie zu. Der MAC-Bypass ist einfacher zu implementieren, aber weniger sicher, da MAC-Adressen gefälscht werden können und moderne Smartphones zunehmend eine MAC-Adressen-Randomisierung verwenden, was den Mechanismus bei einer erneuten Verbindung unterbricht. Die Guest WiFi-Plattform von Purple unterstützt beide Mechanismen. Nach Abschluss des WeChat-OAuth sendet das Cloud-Overlay von Purple das entsprechende Signal an die zugrunde liegende Hardware. Der Betreiber des Veranstaltungsorts muss diese Übersetzung nicht manuell verwalten. EMPFEHLUNGEN FÜR DIE IMPLEMENTIERUNG UND FALLSTRICKE (ca. 2 Minuten) Hier sind die fünf Gründe, warum Implementierungen von WeChat-OAuth-Captive Portals scheitern. Erstens: Abweichung bei der Redirect-URI. WeChat validiert die Redirect-URI mit der autorisierten Domain, die Sie auf der Plattform registriert haben. Wenn Ihr Portal-Server eine andere Subdomain, einen anderen Pfad oder HTTP anstelle von HTTPS verwendet, schlägt der OAuth-Flow mit dem Fehler 40029 fehl, was einen ungültigen Code bedeutet. Registrieren Sie jede von Ihnen verwendete Domain-Variante, einschließlich Staging-Umgebungen. Zweitens: Das AppSecret auf der Client-Seite. Ihr AppSecret darf niemals im clientseitigen JavaScript oder in einer mobilen App-Binärdatei erscheinen. Es gehört auf Ihren Server. Wenn es offengelegt wird, kann jeder Ihre Anwendung imitieren und WeChat-APIs in Ihrem Namen aufrufen. Drittens: Fehlender CSRF-Schutz. Der State-Parameter in der OAuth-Anfrage existiert speziell zur Verhinderung von Cross-Site-Request-Forgery. Generieren Sie einen kryptografisch zufälligen State-Wert, speichern Sie ihn in der Sitzung des Benutzers und validieren Sie ihn, wenn WeChat zurückleitet. Wenn Sie dies überspringen, haben Sie eine echte Sicherheitslücke. Viertens: Die Lücke bei der Erkennung von In-App-Browsern. Der In-App-Browser von WeChat setzt einen spezifischen User-Agent-String, der „MicroMessenger“ enthält. Wenn Ihr Portal dies nicht erkennt und den korrekten OAuth-Flow bereitstellt, erhalten Benutzer eine fehlerhafte Benutzererfahrung oder eine Fehlermeldung. Fünftens: Abstimmung mit GDPR und PIPL. Wenn Sie europäische Besucher bedienen, gilt die GDPR für die Daten, die Sie über WeChat-OAuth erfassen. Wenn Sie chinesische Besucher bedienen, gilt das chinesische Gesetz zum Schutz persönlicher Daten (Personal Information Protection Law, bekannt als PIPL) für die Verarbeitung ihrer Daten. Beide erfordern eine Rechtsgrundlage für die Verarbeitung, eine klare Zweckbindung und Datenminimierung. Der Bereich „snsapi_base“ ist unter den Grundsätzen der Datenminimierung leichter zu rechtfertigen als „snsapi_userinfo“. Was auch immer Sie erfassen, dokumentieren Sie Ihre Rechtsgrundlage und Ihre Aufbewahrungsfrist. SCHNELLE FRAGEN UND ANTWORTEN (ca. 1 Minute) Frage: Kann ich den WeChat-Login auf einem Portal verwenden, das auch E-Mail- und SMS-Login anbietet? Ja. Die meisten Enterprise-Portal-Plattformen, einschließlich Purple, unterstützen mehrere Authentifizierungsmethoden auf derselben Portalseite. WeChat wird als eine Option neben anderen angezeigt. Frage: Funktioniert WeChat-OAuth auf iOS? Ja, aber mit einer Nuance. Das App-Tracking-Transparency-Framework von Apple hat keinen Einfluss auf serverseitige OAuth-Flows. Der WeChat-Login in Safari auf iOS funktioniert über den QR-Code-Flow oder den Redirect-Flow. Die WeChat-App selbst übernimmt die Authentifizierung. Frage: Was passiert, wenn die API von WeChat nicht verfügbar ist? Ihr Portal sollte einen Fallback implementieren. Wenn der WeChat-API-Aufruf ein Timeout aufweist oder einen Fehler zurückgibt, leiten Sie den Benutzer zu einer alternativen Anmeldemethode weiter. Lassen Sie ihn nicht vor einem leeren Bildschirm stehen. Frage: Kann ich die OpenID als dauerhafte Kundenkennung verwenden? Innerhalb Ihres Official Accounts: Ja. Die OpenID ist für einen bestimmten Benutzer und einen bestimmten Official Account stabil. Wenn Sie mehrere Official Accounts haben, hat derselbe Benutzer in diesen Konten unterschiedliche OpenIDs. Für die kontoübergreifende Identitätsauflösung stellt WeChat eine UnionID bereit, wofür Ihre Konten auf der Open Platform verknüpft sein müssen. ZUSAMMENFASSUNG UND NÄCHSTE SCHRITTE (ca. 1 Minute) Zusammenfassend lässt sich sagen: Die WeChat-OAuth-Authentifizierung für Captive Portals ist eine Registrierung auf zwei Plattformen, eine Entscheidung über den Scope, eine Integration der Netzwerkdurchsetzung und eine Compliance-Prüfung. Wenn Sie diese vier Punkte richtig umsetzen, erhalten Sie eine Anmeldemethode, die über eine Milliarde potenzieller Besucher ohne Passwort-Hürden bedient. Die praktischen nächsten Schritte sind folgende: Bestimmen Sie erstens, ob Ihre Besucher auf das Portal innerhalb des WeChat-In-App-Browsers oder in einem Standard-Mobilbrowser stoßen. Das entscheidet, welche Plattformregistrierung Sie benötigen. Entscheiden Sie zweitens über den Scope. Verwenden Sie „snsapi_base“ für wiederkehrende Gäste und „snsapi_userinfo“ für die Erstregistrierung mit Einwilligung. Bestätigen Sie drittens, dass Ihre Netzwerkhardware RADIUS CoA unterstützt, oder konfigurieren Sie alternativ einen MAC-Bypass. Überprüfen Sie viertens Ihre Datenschutzerklärung und den Einwilligungs-Flow im Hinblick auf die Anforderungen der GDPR und des PIPL. Testen Sie fünftens den Redirect-URI, die Validierung des State-Parameters und die Erkennung des In-App-Browsers, bevor Sie live gehen. Wenn Sie sehen möchten, wie Purple WeChat-OAuth als Teil einer umfassenderen Guest-WiFi- und Analyseplattform an 80.000 Standorten und bei 440 Millionen Logins im Jahr 2024 handhabt, besuchen Sie purple.ai oder sprechen Sie mit Ihrem Account-Team. Vielen Dank fürs Zuhören.

📚 Teil unserer Kernserie: Captive Portal Guide

header_image.png

Executive summary

For enterprise venues operating across the APAC region, or serving Chinese tourists globally, WeChat WiFi authentication is no longer optional. With 1.41 billion monthly active users as of 2025 (source: Tencent), WeChat is the primary digital identity for Chinese consumers. A guest who connects to your SSID and sees only email or Facebook login options faces immediate friction. They almost certainly have WeChat. They almost certainly do not have a local email address configured on that device.

This guide details how to integrate WeChat OAuth 2.0 into a captive portal. We cover the two distinct platform registrations Tencent requires, the scope decision that determines what first-party data you collect, and the RADIUS Change of Authorisation (CoA) mechanism that translates a successful OAuth exchange into actual network access. We also address the overlapping compliance requirements of GDPR and China's Personal Information Protection Law (PIPL).

Purple's Guest WiFi platform automates the network enforcement layer across Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme, and Fortinet hardware. Purple operates across 80,000+ live venues and recorded 440 million logins in 2024 (Purple internal data).

Technical deep-dive

The OAuth 2.0 flow

A captive portal (a web-based authentication gateway that intercepts HTTP traffic from unauthenticated devices) redirects guests to a login page hosted on a portal server, either on-premises or in the cloud. Adding WeChat OAuth inserts Tencent's identity infrastructure into that flow.

The sequence runs as follows. The guest associates with the SSID. The wireless controller detects the absence of an authenticated session and redirects all HTTP traffic to the captive portal URL. The portal page loads and presents login options, including WeChat. The guest selects WeChat. The portal server constructs a redirect to WeChat's authorisation endpoint at open.weixin.qq.com, passing four parameters: the AppID, the redirect URI, the response type set to code, and the requested scope.

WeChat authenticates the user entirely on its own infrastructure. If the guest is already signed in via the WeChat in-app browser, the snsapi_base scope allows silent authentication with no visible prompt. WeChat redirects back to the portal's registered redirect URI with a short-lived authorisation code. The portal server exchanges this code for an access token by calling api.weixin.qq.com/sns/oauth2/access_token with the AppID, AppSecret, code, and grant type. WeChat returns an access token, a refresh token, the user's OpenID, and the granted scope. If snsapi_userinfo was requested, a second API call to api.weixin.qq.com/sns/userinfo retrieves the user's nickname, profile image, gender, and city.

architecture_overview.png

Platform registration: the decision that trips most deployments

Tencent operates two separate developer platforms, and selecting the wrong one is the most common cause of failed implementations.

Access context Required registration Platform URL Supported scopes
WeChat in-app browser Service Account (Official Accounts Platform) mp.weixin.qq.com snsapi_base, snsapi_userinfo
Standard mobile browser (Chrome, Safari) Website Application (Open Platform) open.weixin.qq.com snsapi_login (QR code flow)

A Subscription Account on the Official Accounts Platform will not work. It lacks OAuth web page authorisation permissions. Only a Service Account carries those permissions.

Most enterprise deployments in Hospitality and Retail implement both registrations. A guest at a hotel might open the portal in Chrome, scan a QR code with WeChat, and authenticate via the Open Platform flow. Or they might follow a link inside WeChat itself, land in the in-app browser, and authenticate silently via the Official Accounts flow. Both paths must be handled.

Scope selection and data collection

The OAuth scope is a genuine architectural decision, not a configuration detail. It determines the friction the user experiences and the data your WiFi Analytics platform receives.

snsapi_base returns only the OpenID - a stable, unique identifier for that user within your Official Account. It requires no user consent prompt. Authentication is invisible. Use this for returning guests whose profiles you already hold, or for high-throughput environments such as stadiums and transport hubs where connection speed is the priority.

snsapi_userinfo returns the OpenID plus nickname, profile image, gender, language setting, and city. It triggers an explicit consent screen. Use this for first-time guest registration to build a first-party data profile, paired with a PIPL-compliant and GDPR-compliant consent layer on the portal page.

The practical rule: use snsapi_base for speed, snsapi_userinfo for data. You can implement both by checking whether the user's OpenID already exists in your database. If it does, request snsapi_base. If it does not, request snsapi_userinfo.

Network enforcement: RADIUS CoA and MAC bypass

An OAuth token proves identity. It does not open the network. A separate mechanism must translate the successful authentication into a network policy change.

RADIUS Change of Authorisation (CoA), defined in RFC 3576, is the standard approach. After the portal server receives a valid OAuth token, it sends a CoA request to the wireless controller. The controller updates the session, moving the device from the walled garden VLAN (a restricted network segment that allows only portal traffic) to the full guest VLAN. This works with Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme, and Fortinet.

MAC address bypass registers the device's MAC address as an authorised client after successful OAuth. The controller then permits traffic from that address without further challenge. It is simpler to implement but carries two risks: MAC addresses can be spoofed, and iOS 14 and Android 10 onwards use MAC address randomisation by default, which breaks the mechanism on reconnection.

For any deployment where security matters, RADIUS CoA is the correct choice. For more on securing guest networks, see What Is Secure WiFi: Essential Guide for Business 2026 and Enterprise WiFi Security: A Complete Guide for 2026 .

Implementation guide

Pre-deployment checklist

Before writing a line of configuration, complete these five steps.

First, determine the access context. Survey your venue and identify whether guests will encounter the portal inside the WeChat in-app browser, in a standard mobile browser, or both. The answer determines your platform registration requirements.

Second, register on the correct platform. For in-app browser access, create a Service Account on the WeChat Official Accounts Platform. For standard browser access, register a Website Application on the WeChat Open Platform. Note your AppID and AppSecret for each.

Third, configure your redirect URIs. Register every domain and subdomain your portal uses, including staging environments. WeChat enforces exact-match validation. A mismatch returns error 40029.

Fourth, implement server-side token exchange. The AppSecret must never appear in client-side code. Build a server-side endpoint that accepts the authorisation code, exchanges it for a token, and returns only the data your portal needs.

Fifth, implement the state parameter for CSRF protection. Generate a cryptographically random value, store it in the user's session, pass it in the OAuth request, and validate it on return.

Configuration steps for Ruckus SmartZone

For venues running Ruckus SmartZone, the WeChat portal configuration sits under Services and Profiles, then Hotspots and Portals, then the WeChat tab. You configure the Authentication URL (your portal server's WeChat callback endpoint), the DNAT Destination (the server that handles unauthenticated client redirects), and the Grace Period (the window during which a recently disconnected user can reconnect without re-authenticating, defaulting to 60 minutes). You also configure the walled garden whitelist to permit traffic to WeChat's API endpoints during the authentication phase. See also the Step-by-Step Guide: Configuring Ruijie Wireless Controllers for Guest WiFi Captive Portals for comparable controller configuration patterns.

In-app browser detection

WeChat's in-app browser sets a user agent string containing MicroMessenger. Your portal must detect this string and serve the appropriate OAuth flow. If MicroMessenger is present, use the Official Accounts flow. If absent, use the Open Platform QR code flow. Failure to detect this correctly produces broken experiences or authentication errors.

Best practices

Data minimisation and dual-framework compliance

GDPR (applicable to European visitors) and PIPL (applicable to Chinese citizens) both require a lawful basis for processing personal data, clear purpose limitation, and data minimisation. The snsapi_base scope is easier to justify under data minimisation principles than snsapi_userinfo. When you do collect demographic data via snsapi_userinfo, document your legal basis, your retention period, and your data processing agreement with Tencent.

PILP, in force since November 2021, requires explicit consent for sensitive personal information and mandates that data processors outside China implement equivalent protection standards. If your portal server sits outside mainland China, you must assess whether cross-border data transfer rules apply to the WeChat OpenID and profile data you receive.

UnionID for multi-property deployments

The OpenID is unique per user per Official Account. If you operate multiple Official Accounts across properties, the same guest will have different OpenIDs in each. WeChat provides a UnionID that remains consistent across all accounts linked to the same Open Platform registration. For hotel chains, retail groups, or airport operators managing multiple venues, implement UnionID-based identity resolution from the start.

Security hardening

Store the AppSecret in an environment variable or secrets manager, never in source code. Rotate it immediately if you suspect exposure. Implement rate limiting on your token exchange endpoint to prevent abuse. Log all OAuth errors, particularly 40029 (invalid code) and 40163 (code expired), as these indicate either misconfiguration or active probing.

For a broader view of guest network security architecture, see Why Consumer WiFi Gear Doesn't Belong on Your Guest Network .

Case studies

Luxury hotel chain, Singapore

A 350-room luxury hotel in Singapore serving a predominantly Chinese business travel segment implemented WeChat WiFi authentication alongside their existing email login option. Prior to implementation, front-desk staff reported an average of 15 guest complaints per day about WiFi login difficulties. Chinese guests were attempting to use email addresses they had not configured on their travel devices.

The hotel registered a Service Account on the WeChat Official Accounts Platform and a Website Application on the Open Platform. They configured snsapi_userinfo for first-time connections and snsapi_base for returning guests identified by MAC address. The HPE Aruba controller was configured for RADIUS CoA to handle session promotion.

Within 30 days, guest WiFi login complaints dropped to under two per day. The hotel's WiFi Analytics database grew by 4,200 verified first-party profiles in the first month, with city-level demographic data enabling targeted post-stay communications.

International retail mall, Kuala Lumpur

A premium retail mall in Kuala Lumpur with 12 million WeChat users in Malaysia alone needed a WiFi onboarding experience that matched the digital expectations of its shopper base. The mall operated Cisco Meraki access points across 180,000 square metres of retail floor.

The deployment used Purple's Guest WiFi platform as the cloud overlay, with WeChat OAuth as the primary authentication method and SMS OTP as the fallback. Purple's hardware-agnostic architecture handled the RADIUS CoA integration with Cisco Meraki without requiring custom development.

The mall recorded a 34% increase in WiFi session starts in the first quarter post-deployment, attributed to reduced onboarding friction for WeChat users. The first-party data collected via snsapi_userinfo consent flows enabled the mall's marketing team to segment shoppers by home city for targeted campaign delivery.

retail_venue_wechat_wifi.png

Troubleshooting and risk mitigation

Error Cause Resolution
40029 invalid code Redirect URI mismatch or code reuse Verify registered URIs match exactly; codes are single-use
40163 code expired Token exchange delayed beyond 5 minutes Reduce server-side processing time; implement retry logic
Blank screen after authentication RADIUS CoA not configured or failing Check controller CoA settings and firewall rules on UDP port 3799
MAC randomisation breaks returning guest flow iOS/Android MAC randomisation Migrate to OpenID-based session tracking; avoid MAC-only identification
snsapi_userinfo returns empty fields User has set WeChat privacy restrictions Handle null fields gracefully; do not require profile data for access

ROI and business impact

The business case for WeChat WiFi authentication rests on three measurable outcomes.

First-party data acquisition. Each snsapi_userinfo authentication generates a verified guest profile with demographic data. For a 200-room hotel running at 70% occupancy with 40% Chinese guests, that represents approximately 20,000 new verified profiles per year, each tied to a WeChat identity that supports ongoing re-engagement.

Reduced support burden. Login friction is the primary driver of guest WiFi support calls. Venues that add WeChat authentication alongside existing options consistently report a reduction in WiFi-related front-desk queries, freeing staff time for higher-value interactions.

Marketing reach. WeChat Official Accounts allow venues to push notifications to followers. A guest who authenticates via your Official Account can be prompted to follow it, creating a direct communication channel that operates within WeChat's ecosystem, where Chinese consumers spend an average of 82 minutes per day (source: Walk the Chat).

Purple's Engage plan extends this further, enabling automated post-visit messaging, loyalty triggers, and segmented campaigns built on the first-party data collected at the point of WiFi authentication.

Schlüsseldefinitionen

Captive Portal

Ein webbasiertes Authentifizierungs-Gateway, das den HTTP-Verkehr von einem nicht authentifizierten Gerät abfängt und auf eine Anmeldeseite umleitet, bevor der Netzwerkzugriff gewährt wird.

Der Mechanismus, über den die Gäste-WiFi-Authentifizierung für Benutzer bereitgestellt wird. WeChat OAuth ist eine von mehreren Authentifizierungsmethoden, die ein Captive Portal anbieten kann.

OAuth 2.0

Ein branchenübliches Autorisierungsprotokoll, das es einer Drittanbieter-Anwendung (dem Captive Portal) ermöglicht, im Namen eines Benutzers eingeschränkten Zugriff auf einen Webdienst (WeChat) zu erhalten, ohne dass der Benutzer sein Passwort an den Drittanbieter weitergeben muss.

Das zugrunde liegende Framework, das die WeChat-Anmeldung ermöglicht. Das Portal sieht die WeChat-Anmeldedaten des Benutzers zu keinem Zeitpunkt; es erhält lediglich ein Token, das bestätigt, dass WeChat den Benutzer authentifiziert hat.

RADIUS CoA

Change of Authorisation. Ein in RFC 3576 definierter Mechanismus, der es einem RADIUS-Server ermöglicht, die Sitzungsautorisierungsattribute eines aktiven Netzwerk-Clients dynamisch zu ändern, wie beispielsweise die VLAN-Zuweisung.

Der Netzwerk-Erzwingungsmechanismus, der einen erfolgreichen WeChat OAuth-Austausch in tatsächlichen Netzwerkzugriff übersetzt. Ohne CoA authentifiziert sich der Gast zwar, aber der Controller weiß nicht, dass er das Netzwerk öffnen muss.

OpenID

Eine eindeutige Kennung, die von WeChat einem bestimmten Benutzer für ein bestimmtes offizielles Konto oder eine Website-Anwendung zugewiesen wird. Sie bleibt über Sitzungen hinweg stabil, unterscheidet sich jedoch von Konto zu Konto.

Der Primärschlüssel zur Identifizierung eines Gastes in Ihrer WiFi-Analysedatenbank. Verwenden Sie stattdessen die UnionID, wenn Sie mehrere offizielle Konten betreiben und eine kontoübergreifende Identitätsauflösung benötigen.

snsapi_base

Ein WeChat OAuth-Bereich (Scope), der eine stille Authentifizierung ermöglicht und nur die OpenID des Benutzers zurückgibt, ohne eine Einverständniserklärung anzuzeigen.

Für wiederkehrende Gäste oder Umgebungen mit hohem Durchsatz, in denen die Verbindungsgeschwindigkeit Priorität hat. Gibt außer der OpenID keine demografischen Daten zurück.

snsapi_userinfo

Ein WeChat OAuth-Bereich (Scope), der die OpenID, den Spitznamen, das Profilbild, das Geschlecht, die Sprache und die Stadt des Benutzers zurückgibt und einen expliziten Zustimmungsbildschirm des Benutzers erfordert.

Für die Erstregistrierung von Gästen zur Erstellung eines First-Party-Datenprofils. Muss mit einer GDPR- und PIPL-konformen Einwilligungsebene kombiniert werden.

PIPL

Personal Information Protection Law. Chinas umfassende Datenschutzgesetzgebung, die seit November 2021 in Kraft ist und regelt, wie personenbezogene Daten chinesischer Bürger erhoben, verarbeitet und übertragen werden dürfen.

Gilt für jeden Standort, der Daten von chinesischen Bürgern über WeChat OAuth sammelt, unabhängig vom Standort des Veranstaltungsortes. Erfordert eine ausdrückliche Zustimmung, Zweckbindung und Datenminimierung.

AppSecret

Ein vertraulicher kryptografischer Schlüssel, der von WeChat ausgestellt wird und Ihre Anwendung authentifiziert, wenn sie die Token-Exchange-API von WeChat aufruft.

Darf nur serverseitig gespeichert werden. Eine Offenlegung im clientseitigen Code ermöglicht es Dritten, sich als Ihre Anwendung auszugeben und unbefugte API-Aufrufe an WeChat zu senden.

VLAN

Virtual Local Area Network. Ein logisches Netzwerksegment, das den Datenverkehr auf der Sicherungsschicht isoliert, sodass ein einziges physisches Netzwerk mehrere isolierte Datenströme übertragen kann.

Wird in Captive Portal-Bereitstellungen verwendet, um nicht authentifizierte Geräte (Walled-Garden-VLAN) von authentifizierten Gästen (Gäste-VLAN) zu trennen. RADIUS CoA verschiebt ein Gerät nach erfolgreicher Authentifizierung zwischen den VLANs.

UnionID

Eine WeChat-Kennung, die für einen bestimmten Benutzer über alle offiziellen Konten und Website-Anwendungen hinweg konsistent bleibt, die mit derselben Registrierung auf der Open Platform verknüpft sind.

Unerlässlich für Hotelketten, Einzelhandelsgruppen und Betreiber mehrerer Standorte, die denselben Gast über mehrere Objekte hinweg wiedererkennen müssen, von denen jedes ein eigenes offizielles Konto hat.

Ausgearbeitete Beispiele

Ein Luxushotel mit 200 Zimmern in Singapur nutzt HPE Aruba Controller und bedient ein hohes Aufkommen an chinesischen Geschäftsreisenden. Sie möchten demografische Daten von Erstbesuchern erfassen und sicherstellen, dass sich wiederkehrende Gäste automatisch verbinden, ohne das Captive Portal erneut zu sehen. Wie sollten sie die WeChat OAuth-Integration konfigurieren?

Schritt 1: Registrieren Sie ein Service-Konto auf der WeChat Official Accounts Platform (mp.weixin.qq.com), um Gäste zu bedienen, die über den WeChat In-App-Browser auf das Captive Portal zugreifen. Registrieren Sie eine Website-Anwendung auf der WeChat Open Platform (open.weixin.qq.com) für Gäste, die Standard-Mobilbrowser nutzen.

Schritt 2: Konfigurieren Sie das Captive Portal so, dass es den MicroMessenger-User-Agent-String erkennt. Stellen Sie den Official Accounts OAuth-Flow für In-App-Browser-Nutzer und den Open Platform QR-Code-Flow für Standard-Browser-Nutzer bereit.

Schritt 3: Fordern Sie bei Erstverbindungen (keine vorhandene OpenID in der Datenbank) den Scope "snsapi_userinfo" an. Zeigen Sie vor dem OAuth-Redirect einen PIPL-konformen Einwilligungsbildschirm an. Speichern Sie die zurückgegebene OpenID, den Spitznamen, die Stadt und das Geschlecht in der Gästeprofildatenbank.

Schritt 4: Fordern Sie für wiederkehrende Gäste (OpenID ist in der Datenbank vorhanden) den Scope "snsapi_base" an. Dies authentifiziert geräuschlos ohne für den Nutzer sichtbare Aufforderung.

Schritt 5: Konfigurieren Sie den HPE Aruba Controller für RADIUS CoA auf UDP-Port 3799. Nach erfolgreichem OAuth sendet der Portal-Server eine CoA-Anfrage, um das Gerät aus dem Walled-Garden-VLAN in das Gäste-VLAN zu verschieben.

Schritt 6: Implementieren Sie eine MAC-Adressen-Protokollierung zusammen mit der OpenID, um die Erkennung wiederkehrender Gäste zu steuern. Beachten Sie, dass die MAC-Randomisierung die OpenID als primäre Kennung erfordert, nicht die MAC-Adresse allein.

Kommentar des Prüfers: Dieser Ansatz trennt die beiden Plattformregistrierungen korrekt nach Zugriffskontext, nutzt die Scope-Auswahl, um die Balance zwischen Nutzerhürden und Datenerfassung zu wahren, und implementiert RADIUS CoA für eine sichere Netzwerkdurchsetzung. Die Verwendung der OpenID als primäre Kennung für wiederkehrende Gäste ist die richtige Reaktion auf die MAC-Randomisierung. Die PIPL-Einwilligungsebene ist für Daten chinesischer Staatsbürger nicht verhandelbar.

Das IT-Team einer Einzelhandelskette meldet eine hohe Ausfallrate bei WeChat WiFi-Logins an drei Einkaufszentrums-Standorten. Nutzer authentifizieren sich in WeChat, werden aber mit einer Fehlermeldung zum Captive Portal zurückgeleitet. Die Portal-Protokolle zeigen den Fehler 40029. Was ist die wahrscheinliche Ursache und wie lösen Sie diese?

Fehler 40029 bedeutet, dass WeChat den Autorisierungscode während des Token-Austauschs abgelehnt hat. Die beiden häufigsten Ursachen sind eine Diskrepanz bei der Redirect-URI und die Wiederverwendung von Codes.

Schritt 1: Melden Sie sich in der WeChat-Entwicklerkonsole sowohl für die Official Accounts Platform als auch für die Open Platform an. Navigieren Sie zu den OAuth-Einstellungen und listen Sie alle registrierten Redirect-URIs auf.

Schritt 2: Vergleichen Sie diese mit den tatsächlichen Redirect-URIs, die Ihr Portal-Server in der Produktionsumgebung an allen drei Standorten verwendet. Prüfen Sie auf Subdomain-Unterschiede (portal.brand.com vs. brand.com), Protokoll-Unterschiede (HTTP vs. HTTPS) und Pfad-Unterschiede (/callback vs. /wechat/callback).

Schritt 3: Registrieren Sie jede Variante in der WeChat-Konsole. WeChat führt eine exakte Übereinstimmungsprüfung durch, keinen Präfix-Abgleich.

Schritt 4: Wenn die URIs übereinstimmen, prüfen Sie, ob Ihr Portal-Server versucht, Autorisierungscodes wiederzuverwenden. WeChat-Codes sind nur einmalig verwendbar und laufen nach fünf Minuten ab. Wenn Ihr Server den Token-Austausch mit demselben Code erneut versucht, erhält er beim zweiten Versuch den Fehler 40029.

Schritt 5: Implementieren Sie Idempotenz im Token-Austausch-Endpunkt, um doppelte Anfragen zu verhindern.

Kommentar des Prüfers: Fehler 40029 ist der häufigste Fehler bei WeChat OAuth-Bereitstellungen und wird fast immer durch eine Diskrepanz bei der Redirect-URI verursacht. Bereitstellungen an mehreren Standorten sind besonders anfällig, da jeder Standort eine andere Subdomain oder Load-Balancer-Adresse verwenden kann. Die sekundäre Ursache, die Wiederverwendung von Codes, ist seltener, sollte aber überprüft werden, wenn die URI-Registrierung nachweislich korrekt ist.

Übungsfragen

Q1. Sie stellen ein Captive Portal für ein Stadion mit einer Kapazität von 60.000 Zuschauern bereit, in dem internationale Veranstaltungen mit einer großen chinesischen Fangemeinde stattfinden. Die Priorität liegt darin, alle Besucher innerhalb der ersten 15 Minuten nach Öffnung der Tore online zu bringen, um die Überlastung des Mobilfunknetzes zu reduzieren. Die Erfassung von Marketingdaten ist ein sekundäres Ziel. Welchen WeChat OAuth-Scope sollten Sie konfigurieren und warum?

Hinweis: Bedenken Sie die Auswirkungen eines Zustimmungsbildschirms, der 15.000 gleichzeitigen Benutzern auf einem Portal-Server angezeigt wird.

Musterlösung anzeigen

Konfigurieren Sie den Scope snsapi_base. Dies ermöglicht eine stille Authentifizierung ohne Aufforderung zur Benutzerzustimmung und bietet so das schnellstmögliche Onboarding-Erlebnis. Bei einer Stadion-Größenordnung führt ein Zustimmungsbildschirm zu Reibungsverlusten, die sich über Tausende von gleichzeitigen Verbindungen multiplizieren und zu Lastspitzen auf dem Portal-Server führen können. snsapi_base gibt nur die OpenID zurück, was ausreicht, um die Sitzung zu protokollieren und wiederkehrende Fans zu identifizieren. Für Erstbesucher, von denen Sie demografische Daten wünschen, können Sie die Profilvervollständigung über eine Umfrage nach der Verbindung abfragen, anstatt direkt an der Authentifizierungsschranke.

Q2. Ein Netzwerkarchitekt in Ihrem Team schlägt vor, das WeChat AppSecret im clientseitigen JavaScript des Captive Portals zu speichern, um Server-Roundtrips zu reduzieren, indem der Token-Austausch direkt vom Browser aus aufgerufen wird. Erklären Sie, warum dieser Ansatz ein kritischer Sicherheitsfehler ist und wie die korrekte Architektur aussieht.

Hinweis: Bedenken Sie, wer den clientseitigen Code einsehen kann und was das AppSecret diesen Personen ermöglicht.

Musterlösung anzeigen

Die Speicherung des AppSecret im clientseitigen JavaScript legt es für jeden offen, der den Quellcode der Seite anzeigt oder den Netzwerkverkehr abfängt. Das AppSecret authentifiziert Ihre Anwendung gegenüber der WeChat-API. Damit kann ein böswilliger Akteur Ihre Anwendung imitieren, den Token-Austausch-Endpunkt von WeChat mit jedem gültigen Autorisierungscode aufrufen, OpenIDs und Profildaten von Benutzern abrufen und potenziell Ihre API-Rate-Limits ausschöpfen. Die korrekte Architektur ist ein serverseitiger Token-Austausch-Endpunkt. Der Browser empfängt den Autorisierungscode von WeChat und leitet ihn an Ihren Server weiter. Ihr Server tauscht den Code unter Verwendung des in einer Umgebungsvariablen oder einem Secrets Manager gespeicherten AppSecret gegen ein Token aus und gibt nur die Daten zurück, die das Portal benötigt. Das AppSecret verlässt niemals Ihren Server.

Q3. Ihr Standort betreibt drei Hotelanlagen in verschiedenen Städten, von denen jede über ein eigenes WeChat Official Account verfügt. Ein Mitglied Ihres Treueprogramms, das sich an allen drei Standorten authentifiziert hat, besitzt drei verschiedene OpenIDs in Ihrer Datenbank. Wie führen Sie diese zu einer einzigen Gastidentität zusammen?

Hinweis: WeChat bietet einen Mechanismus zur kontoübergreifenden Identitätsauflösung, der eine spezifische Plattformkonfiguration erfordert.

Musterlösung anzeigen

Implementieren Sie den UnionID-Mechanismus von WeChat. Verknüpfen Sie alle drei Official Accounts mit derselben Open Platform-Registrierung unter open.weixin.qq.com. Sobald sie verknüpft sind, gibt WeChat in der snsapi_userinfo-Antwort eine UnionID neben der OpenID zurück. Die UnionID ist für einen bestimmten Benutzer über alle Konten hinweg, die mit derselben Open Platform-Registrierung verknüpft sind, konsistent. Migrieren Sie Ihre Datenbank so, dass die UnionID als primäre Gastkennung für standortübergreifende Datensätze verwendet wird, während die kontospezifische OpenID für kontospezifische API-Aufrufe beibehalten wird. Für Gäste, die sich vor der Implementierung der UnionID authentifiziert haben, lösen Sie bei ihrem nächsten Besuch eine erneute Authentifizierung mit snsapi_userinfo aus, um die UnionID zu erfassen.

Q4. Nach der Bereitstellung der WeChat WiFi-Authentifizierung an einem Einzelhandelsstandort mit Cisco Meraki Access Points melden Gäste, dass sie die WeChat-Anmeldung erfolgreich abschließen, aber zur Portalseite zurückgeleitet werden und nicht im Internet surfen können. Die Protokolle des Portal-Servers zeigen einen erfolgreichen Token-Abruf. Was ist die wahrscheinlichste Ursache und wie diagnostizieren Sie diese?

Hinweis: Das Portal hat die Identität verifiziert. Was ist noch nicht geschehen?

Musterlösung anzeigen

Die RADIUS Change of Authorisation (CoA) wird nicht abgeschlossen. Der Portal-Server hat die Identität des Gasts über WeChat OAuth verifiziert, aber den Cisco Meraki Controller nicht erfolgreich angewiesen, das Gerät aus dem Walled-Garden-VLAN in das Gast-VLAN zu verschieben. Diagnostizieren Sie dies, indem Sie Folgendes überprüfen: (1) ob auf dem Meraki Controller RADIUS CoA aktiviert ist und die IP des Portal-Servers als autorisierter CoA-Client aufgeführt ist; (2) ob der UDP-Port 3799 zwischen dem Portal-Server und dem Controller geöffnet ist; (3) die Protokolle des Portal-Servers auf CoA-Anforderungsfehler oder -Timeouts; und (4) ob das auf beiden Seiten konfigurierte Shared Secret übereinstimmt. Wenn CoA in Ihrer Meraki-Lizenzstufe nicht unterstützt wird, ist der MAC-Address-Bypass die Ausweichlösung, obwohl dies das im Leitfaden erwähnte Risiko der MAC-Randomisierung birgt.

Integrating WeChat WiFi Authentication: Captive Portal Onboarding for APAC Customers | Technische Leitfäden | Purple