Sample code for 30+ languages & platforms
AutoIt

ZATCA Decode QR Code

See more ZATCA Examples

Decodes a base64 ZATCA QR code.

Note: This example requires Chilkat v9.5.0.92 or greater.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

; Note: This example requires Chilkat v9.5.0.92 or greater.

Local $sQr = "ARdBaG1lZCBNb2hhbWVkIEFMIEFobWFkeQIPMzAwMDc1NTg4NzAwMDAzAxQyMDIyLTAzLTEzVDE0OjQwOjQwWgQHMTEwOC45MAUFMTQ0LjkGLCtiQTFtdWNWSTY3SDRXQ2JOL2U5SjJxVXBIVHQzVHdNZHhsa09XVGVvdjg9B2BNRVlDSVFDWWg1ZTNpcklxV2w1WXRhQ25LaXVqTUlUbW9rWFlPUE1wSURDSW9XVzc5d0loQU1YbWMrTUZIR3RhZUJzZU91RUdUbHdENmcwOWdOUVBSUHVZODlzNjVPV1MIWDBWMBAGByqGSM49AgEGBSuBBAAKA0IABNMAr2WtNWSj2uSrplhxz0cNFk/hv1LjMDgqbthcn6ydNWEuTNTQeyZJf1SfyMOFFM4cMpp+3wL+65Rj3fi+4w0JSDBGAiEAlcAzHKujzvjHJrAV1M/79RnYRqe66kmtgMUykr/N/CACIQDgTQwbfftw0pYo6FX8c63Q4edvFgt+7JhHaBlla0qRtQ=="

$sQr = "AQxGaXJveiBBc2hyYWYCCjEyMzQ1Njc4OTEDEzIwMjEtMTEtMTcgMDg6MzA6MDAEBjEwMC4wMAUFMTUuMDAGLDlmc3JYVW8rU3BYQVlJTkw5aGFLU2dEOXgxaVJsZk53SVBDZnBlWXczYTA9B1hYMEM4VjFIL3hUMGdOaytWWXh2U2Z6UFJlUjZPM2t5VXA0TERITzJLMzlNSGJETXVvTGltQSt3RnovV2pVdEdMSHpaK0J5enNmWUdEQzliNUFGSU1FQT09CFgwVjAQBgcqhkjOPQIBBgUrgQQACgNCAARw3B+mu14x0h3pJFKqEWWT7DmD7jWYkZV7qHyikPlN4P/4/b7YD+A9wnFI92HTKm+/BGKXVf/pfLtsmdIIaPHnCUgwRgIhAMTjOkWwcNu5Aw5k1Yr3YgbPhdxKoJV1a3+5ShPtx1/IAiEAyrwsA/NuqV6XjybyrZpMp6eJAqslACLfCldti/PVOQs="

$oBd = ObjCreate("Chilkat.BinData")
$bSuccess = $oBd.AppendEncoded($sQr,"base64")

Local $index = 0
Local $iExpectedTag = 1
Local $iTag
Local $iLen
Local $sTagValue

While ($iExpectedTag <= 9)

    ; Get the tag
    $iTag = $oBd.GetByte($index)
    If ($iTag <> $iExpectedTag) Then
        ConsoleWrite("Expected tag " & $iExpectedTag & @CRLF)
        Exit
    EndIf

    $index = $index + 1
    $iLen = $oBd.GetByte($index)
    If ($iLen = 0) Then
        ConsoleWrite("Expected length > 0" & @CRLF)
        Exit
    EndIf

    $index = $index + 1
    ; Tags 8 and 9 contain binary data.
    If ($iExpectedTag >= 8) Then
        $sTagValue = $oBd.GetEncodedChunk($index,$iLen,"base64")
    Else
        $sTagValue = $oBd.GetTextChunk($index,$iLen,"utf-8")
    EndIf

    ConsoleWrite("tag " & $iTag & ": " & $sTagValue & @CRLF)

    $index = $index + $iLen
    $iExpectedTag = $iExpectedTag + 1
Wend