|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

App inventor 2 en español
Cómo programar los teléfonos móviles con Android
mediante App inventor 2 - Juan Antonio Villalpando

-- Tutorial de iniciación de App Inventor 2 en español --

Volver al índice del tutorial

____________________________

299F.- Extensión. QR Green Pass. Decodificación. COVID-19. Decoder.

com.KIO4_QRGreenPass.aix

- En Europa a los vacunadosde COVID-19 (también a los recuperados y los que se han hecho un test) se les entrega un código QR denominado EU QR Certificate o QR Green Pass.

- En este código QR se encuentran datos como el nombre del usuario, su fecha de nacimiento, cuándo se vacunó, cuando caduca el código, tipo de vacuna...

- Las especificaciones del código se encuentran en este documento pdf:

covid-certificate_json_specification_en.pdf

digital-green-certificates_v3_en.pdf

Tipo de vacuna: https://github.com/ehn-dcc-development/ehn-dcc-schema/blob/release/1.3.0/valuesets/vaccine-prophylaxis.json

https://ec.europa.eu/health/sites/default/files/ehealth/docs/digital-green-certificates_dt-specifications_en.pdf

https://ec.europa.eu/health/sites/default/files/ehealth/docs/digital-green-value-sets_en.pdf (diciembre 2021)

- Para decodificar el QR, obtenemos su texto que viene en BASE45 comprimido con zlib y después de otras decoficaciones lo convertimos en JSON

QR code -> QR DECODER -> QR-decoded string -> BASE45 decoder -> zlib compressed string -> COSE string -> CBOR decoder -> JSON file

- Veamos esta información:

https://ehealth.vyncke.org/

- Aquí un ejemplo de salida de datos:

https://gir.st/blog/greenpass.html

https://www.youtube.com/watch?v=aO_LPxPM6Xg

- El certificado puede contener tres tipos de datos r: si el enfermo se ha recuperado. t: si ha realizado una prueba de COVID. v: si se ha vacunado.

- En el siguiente ejemplo observamos varios QR de la misma persona, pero con distinto certificado, r, t y v.

- Ejemplos: https://github.com/eu-digital-green-certificates/dgc-testdata/tree/main/IT

- Para realizar la extensión he utilizado este código:

https://gae-piaz.medium.com/decode-the-eu-green-pass-qrcode-using-java-b5654e55b0fc

https://github.com/GaetanoPiazzolla/greenpass-decode/blob/master/src/main/java/com/tano/green/Main.java

___________________________
0.- Bloques de la extensión.

- El bloque principal es el TextQRGPToJson, se le inserta el resultado de un escaneo de QR mediante el componente BarcodeScanner y obtener el Json del QR.

- El bloque QRGPToJson es similar al anterior, pero en este caso se le inserta una imagen QR situada en el componente Imagen.

- QRToText, ponemos un QR de cualquier tipo, no tiene por qué se de Green Pass, y obtenemos su texto.

- TextToBarCode, insertamos un texto y un componente Imagen, obtenemos el Código de Barra 128 de ese texto.

- TextToQR, insertamos un texto y un componenteImagen, obtenemos el QR de ese texto.

- ImageToFile, nos convierte una imagen situada en un componente Imagen a archivo. Establecer la ruta completa en donde queremos obtener ese archivo, por ejemplo /storage/emulated/0/.../my_file.png

___________________________
1.- Decodifica el texto de un QR Green Pass.

p299F_QRGreenPass.aia

- Escaneamos un QR Green Pass mediante el componente BarcodeScanner. Obtenemos un texto con el resultado.

- Ese resultado está codificado.

- Mediante la extensión lo decodificamos en JSON.

- Mediante los bloques mostramos los datos deseado de ese JSON.

___________________________
- Diseño.

___________________________
- Bloques.

____________________
- Decodificación JSON.

Obtenemos un texto JSON de esta forma:
(https://gir.st/blog/greenpass.html)

JSON


{-260: {1: {'dob': '1998-02-26', date of birth
            'nam': {'fn': 'Musterfrau-Gößinger', family name
                    'fnt': 'MUSTERFRAU<GOESSINGER',
                    'gn': 'Gabriele', given name
                    'gnt': 'GABRIELE'},
            'v': [{'ci': 'URN:UVCI:01:AT:10807843F94AEE0EE5093FBC254BD813#B', certificate ID
                   'co': 'AT', country of vaccination
                   'dn': 1, doses received
                   'dt': '2021-02-18', date of vaccination
                   'is': 'Ministry of Health, Austria', cert issuer
                   'ma': 'ORG-100030215', vaccine manufacturer
                   'mp': 'EU/1/20/1528', vaccine product id
                   'sd': 2, total number of doses
                   'tg': '840539006', targeted disease (COVID-19)
                   'vp': '1119349007'}], vaccine or prophylaxis
            'ver': '1.2.1'}}, schema version
 1: 'AT', QR code issuer
 4: 1624458597, QR code expiry
 6: 1624285797} QR code generated

- Corto ese texto por los caracteres {,}

- Obtengo una lista. De esa lista voy mostrando los elementos que contienen los datos que quiero ver:

- fn:
- gn:
- dob:
- 6:
- 4:
- tt:
- vp:

- La información de cada dato la obtendo de: covid-certificate_json_specification_en.pdf

- El tiempo está en Timestamp.

____________________
2.- Otros bloques.

- El bloque QRGPToJson es similar al que acabamos de ver, pero en este caso la información la obtiene de una imagen QR Green Pass en el componente Image1

____________________
3. - Con Cámara.

p299F_QRGreenPass_Camara.aia

- En vez de utilizar el BarcodeScanner podemos utilizar la Cámara. Fotografiamos un QR Green Pass y mediante el bloque QRGPToJson obtenemos su información.

___________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información