Offentligt testkorpus

Våra påståenden om skannerkompatibilitet är bara lika bra som bevisen de bygger på. Den här sidan är korpuset, inmatningarna vi regressionstestar våra kodarfamiljer mot, plus telefonkamerabeteendet som du kan granska själv utan att ta oss på orden.

Varför detta finns: de flesta QR-verktyg publicerar en kompatibilitetsmatris. Vi publicerar korpuset bakom matrisen. Om du ansvarar för en skannerflotta, detaljhandel, lager, läkemedel, flyg, DMV, kan du köra det här korpuset genom dina egna läsare och verifiera varje påstående vi gör.

Ladda ner corpus.zip Paketerade fixtures-JSON + CSV + metodik + README. ~4 KB.

Laddar version…

Hur du använder korpuset

Ladda ner fixtures.

Varje testvektor finns i /test-vectors/fixtures.json. Ett JSON-objekt per typ med inmatningsfält och förväntade avkodade delsträng(ar). Hämtas live från den här webbplatsen, inga inaktuella kopior.

Regenerera QR-koderna.

Ta valfri fixtures fields-map, lägg in värdena i generatorn för den typen och klicka på Generera. Den resulterande QR är bit-för-bit identisk med vad vår CI kör round-trip mot.

Skanna med din egen flotta.

Rikta en iPhone-kamera, Android-kamera, Google Lens, industriell skanner (Zebra, Honeywell, Datalogic) eller appspecifik läsare (en bankapp, en autentiserare) mot den genererade QR. Bekräfta att den avkodade texten innehåller varje expect-delsträng för den fixturens.

Rapportera avvikelser.

Om en skanner i din flotta returnerar en avkodning som inte matchar fixturens, registrera ett ärende. Vi reproducerar, lägger till din skanner i den offentliga kompatibilitetsmatrisen och (om det är ett kodarfel) levererar en fix.

Förväntade skanningresultat

Renderad från samma dataset som kompatibilitetsmatrisen och varje typsidas rad "Skannas på", så de tre kan inte säga emot varandra. Den fullständiga fixture-filen på /test-vectors/ har 33 poster, en per kodarfamilj vi regressionstestar; det är inte en rad per produkttyp, och vi påstår inte att den är det.

TypFixture-inmatningiPhone CameraAndroid CameraPro-skanner
URLhttps://example.com/testÖppnar länkA1Öppnar länkA5AvkodarA8
WiFiWIFI:S:MyNet;T:WPA;P:...;;Ansluter till nätverkA1Ansluter till nätverkA5Avkodar payloadA8
WiFi Enterprise (EAP)WPA2-EAP PEAP identity=alice@corpiOS 17+, rapporteratUAvkodar; anslutning beror på tillverkarenUAvkodar payloadQ
vCardFN=Alice ORG=Acme ...Lägg till i KontakterA1Lägg till i KontakterA5Avkodar payloadA8
TOTPotpauth://totp/...?secret=JBSW...Autentiseringsappen läser denA9, A10Autentiseringsappen läser denA9, A10Avkodar URIA8
eSIMLPA:1$rsp.example.com$K2-LM...iOS 17.4+ etablerarA4Android 13+ etablerarUAvkodar URIQ
Bitcoin (BIP-21)bitcoin:1A1zP1eP...Plånboksappen öppnasQPlånboksappen öppnasQAvkodar URIQ
SEPA (EPC)BCD header + name + IBAN + amountBara råsträngQBara råsträngQAvkodar råsträngQ
Swiss QR-billSPC header + IBAN + address + amountBara råsträngQBara råsträngQAvkodar råsträngQ
Micro QRCompact payloadIngen avkodningV, UIngen avkodningGIndustriella läsareZ
rMQRRectangular payloadIngen avkodningUIngen avkodningGNyare Zebra-, Scandit- och Cognex-firmwareZ
GS1 Digital Linkhttps://id.gs1.org/01/09506000134352Öppnar URLQÖppnar URLQPOS-firmware tolkar AI:ernaQ
AztecArbitrary payloadIngen avkodningA2Google Lens, vissa varianterA7NativtA8
Data MatrixArbitrary payloadIngen avkodningA2Google LensA6NativtA8
PDF417AAMVA or arbitraryIngen avkodningA2Google Lens, ojämntA7NativtA8
AAMVA driver license@\n\x1e\rANSI 636014100002DL...iOS 17+ körkortsmedvetet flödeA3Bara körkortsmedvetna apparUNativtA8
EAN-13 / UPC-A0012345678905Ingen avkodningApGoogle LensGVarje butiks-POSA8
Code 128ABC-123Ingen avkodningApGoogle LensGNativtA8

Så läser du markeringarna

Bevis

Vad "förväntat skanningresultat" betyder

Metodologiska noter

Skannerflottans attestlogg

Varje manuell enhetskörning, daterad. Rader läggs till när vi skaffar ny hårdvara eller en användare rapporterar en avvikelse; ett resultat ändras aldrig tyst, det får en ny rad.

#DeviceOS / appCorpus sliceResultDateNotes
A1iPhone 15 ProiOS 18.3, native CameraAll QR fixturespass2026-04-10
A2iPhone 15 ProiOS 18.3, native CameraAztec, PDF417, Data Matrixfail2026-04-10Ingen avkodar nativt (förväntat, se /standards/non-qr-2d/)
A3iPhone 15 ProiOS 18.3, native CameraAAMVA PDF417partial2026-04-10iOS 17+ körkortsmedvetet flöde erbjuder Lägg till i Wallet; rå PDF417 returneras inte
A4iPhone 15 ProiOS 18.3, WalleteSIM LPApass2026-04-12Flödet för att lägga till eSIM utlöses korrekt
A5Pixel 8Android 14, native CameraAll QR fixturespass2026-04-10
A6Pixel 8Android 14, Google LensData Matrixpass2026-04-10
A7Pixel 8Android 14, Google LensAztec, PDF417partial2026-04-10Vissa varianter avkodar; stödet är ojämnt
A8Zebra DS8100firmware CAAACS00-002-R06All 2D + 1D fixturespass2026-04-11Industriell imager, kanonisk referens
A9Google Authenticatorv7.0+ (iOS/Android)TOTP, HOTPpass2026-04-12Bara SHA-1, 6 siffror (ignorerar algoritm-/siffer-parametrar enligt Googles de facto-profil)
A101Passwordv8 (iOS/Android/macOS)TOTP, HOTPpass2026-04-12Fullt RFC-stöd inkl. SHA-256, SHA-512, 8 siffror

Vad som kommer

Se även

Korpus senast regressionstestad 2026-04-18. Verifierade skannerenheter: iPhone 15 Pro / iOS 18.3, Pixel 8 / Android 14, Zebra DS8100.