Een wifi-QR-code bevat een netwerknaam, een beveiligingstype en een wachtwoord in één scanbare tekenreeks. Richt er een telefooncamera op en de telefoon biedt aan verbinding te maken met het netwerk, zodat niemand het wachtwoord van een whiteboard hoeft af te lezen. Image-Charts genereert er een uit één URL met daarin cht=qr en de inloggegevens in chl.
Zet de netwerkgegevens in een WIFI: payload, codeer die als URL en geef die door als de chl parameter van een cht=qr grafiek. De respons is een PNG die u overal kunt gebruiken waar een afbeelding past.
De payload die u codeert
WIFI:T:WPA;S:Demo;P:hunter2;;
De URL die u opvraagt
https://image-charts.com/chart?cht=qr&chs=300x300&chl=WIFI%3AT%3AWPA%3BS%3ADemo%3BP%3Ahunter2%3B%3B
Het payloadformaat komt van ZXing, de barcodebibliotheek waarmee de eerste Android-scanners werden geleverd, en het is wat de iOS-camera-app en de Android-scanner lezen wanneer ze aanbieden verbinding te maken met een netwerk. Velden worden gescheiden door puntkomma's, en de payload sluit af met twee ervan.
| Veld | Betekenis | Opmerkingen |
|---|---|---|
| T: | Beveiligingstype | WPA dekt WPA, WPA2 en WPA3. WEP voor een oud netwerk, nopass voor een open netwerk. |
| S: | Netwerknaam (SSID) | Precies zoals het wordt uitgezonden. Hoofdlettergevoelig. |
| P: | Wachtwoord | Laat dit weg bij het type nopass. |
| H: | Verborgen netwerk | H:true wanneer de SSID niet wordt uitgezonden. Laat het anders weg. |
| ;; | Einde van de payload | Twee puntkomma's sluiten de tekenreeks af. |
Twee stappen, in deze volgorde. Binnen S: en P:, zorgt een backslash ervoor dat de vijf tekens die anders een veld zouden afsluiten (backslash, puntkomma, komma, dubbele punt, dubbel aanhalingsteken) letterlijk worden gelezen, dus een wachtwoord van p;ss wordt geschreven als p\;ss. Codeer daarna de hele payload één keer als URL, want diezelfde puntkomma's en dubbele punten hebben betekenis in een querystring. WIFI:T:WPA;S:Demo;P:hunter2;; wordt WIFI%3AT%3AWPA%3BS%3ADemo%3BP%3Ahunter2%3B%3B.
Een open gastnetwerk heeft geen wachtwoordveld nodig. De payload is WIFI:T:nopass;S:Guest;; en het wordt op dezelfde manier weergegeven.
cht, chs en chl zijn verplicht. De rest bepaalt hoe de code wordt getekend.
| Parameter | Wat het regelt | Waarden |
|---|---|---|
| cht=qr | Grafiektype | Verplicht. |
| chs | Grootte in pixels, breedte x hoogte | Verplicht. Een QR-code is vierkant, dus de breedte is bepalend. Onder 29 pixels breed geeft de API een leeg vierkant terug in plaats van een onleesbare code. |
| chl | De te coderen gegevens | Verplicht, UTF-8 URL-gecodeerd. Een URL loopt tegen ongeveer 2K aan, dus een langere payload gaat via een POST-verzoek. |
| chld | Foutcorrectieniveau en marge | L is de standaard, daarna M, Q en H, die respectievelijk 7%, 15%, 25% en 30% van een beschadigde code herstellen. De marge is een randbreedte geteld in rijen, standaard 4, en bij niet-ondertekende grafieken wordt die verbreed zodat het watermerk leesbaar blijft. |
| icqrf | Voorgrondkleur, RRGGBB of RRGGBBAA | Standaard 000000. |
| icqrb | Achtergrondkleur | Standaard FFFFFF. Een alfakanaal van 00 maakt het transparant. |
| chof | Uitvoerformaat | .png standaard, .svg voor vectoruitvoer. |
| choe | Gegevenscodering | UTF-8, de enige ondersteunde waarde. |
Een hoger foutcorrectieniveau overleeft een bekraste sticker of een code waar iemand een logo op heeft geplaatst, ten koste van minder data in hetzelfde vierkant. Een wifi-payload is kort, dus H kost u hier niets.
Het wachtwoord staat in de URL, dus het reist mee waarheen die URL ook gaat: browsergeschiedenis, serverlogs, een CDN-cache en de analytics van de pagina die hem insluit. Ons privacybeleid beschrijft wat er aan onze kant gebeurt. Voor een gastnetwerk in een café is dat juist de bedoeling. Voor een netwerk waar u om geeft: render de code één keer, bewaar de afbeelding en gooi de URL weg, of draai de API binnen uw eigen netwerk met Image-Charts On-Premise.
Als de codes uit een geplande taak of een no-codetool komen in plaats van uit uw eigen code, dan bereiken de integraties en de agent-tooling dezelfde API zonder herschrijven.