Sample code for 30+ languages & platforms
Go

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 Go Downloads

Go
    success := false

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

    qr := "ARdBaG1lZCBNb2hhbWVkIEFMIEFobWFkeQIPMzAwMDc1NTg4NzAwMDAzAxQyMDIyLTAzLTEzVDE0OjQwOjQwWgQHMTEwOC45MAUFMTQ0LjkGLCtiQTFtdWNWSTY3SDRXQ2JOL2U5SjJxVXBIVHQzVHdNZHhsa09XVGVvdjg9B2BNRVlDSVFDWWg1ZTNpcklxV2w1WXRhQ25LaXVqTUlUbW9rWFlPUE1wSURDSW9XVzc5d0loQU1YbWMrTUZIR3RhZUJzZU91RUdUbHdENmcwOWdOUVBSUHVZODlzNjVPV1MIWDBWMBAGByqGSM49AgEGBSuBBAAKA0IABNMAr2WtNWSj2uSrplhxz0cNFk/hv1LjMDgqbthcn6ydNWEuTNTQeyZJf1SfyMOFFM4cMpp+3wL+65Rj3fi+4w0JSDBGAiEAlcAzHKujzvjHJrAV1M/79RnYRqe66kmtgMUykr/N/CACIQDgTQwbfftw0pYo6FX8c63Q4edvFgt+7JhHaBlla0qRtQ=="

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

    bd := chilkat.NewBinData()
    success = bd.AppendEncoded(qr,"base64")

    index := 0
    expectedTag := 1
    var tag int
    var len int
    var tagValue *string = new(string)

    for (expectedTag <= 9) {

        // Get the tag
        tag = bd.GetByte(index)
        if tag != expectedTag {
            fmt.Println("Expected tag ", expectedTag)
            bd.DisposeBinData()
            return
        }

        index = index + 1
        len = bd.GetByte(index)
        if len == 0 {
            fmt.Println("Expected length > 0")
            bd.DisposeBinData()
            return
        }

        index = index + 1
        // Tags 8 and 9 contain binary data.
        if expectedTag >= 8 {
            tagValue = bd.GetEncodedChunk(index,len,"base64")
        } else {
            tagValue = bd.GetTextChunk(index,len,"utf-8")
        }

        fmt.Println("tag ", tag, ": ", *tagValue)

        index = index + len
        expectedTag = expectedTag + 1
    }


    bd.DisposeBinData()