Autor: Carlos Revillo

El presente documento expone la investigación sobre la generación de códigos QR usando PHP.

Introducción

Como muchos ya sabréis, un código QR no es más que un sistema para almacenar información en una matriz de puntos. Es decir, lo mismo que los tradicionales códigos de barras, pero con la ventaja de que los primeros son capaces de almacenar muchísima más información y que son más fáciles de leer.

Aunque fue desarrollado por Denso, una filial de Toyota, para controlar sus coches durante el proceso de fabricación, su uso se está haciendo cada vez más popular en otros ámbitos, como el de la publicidad o el empaquetado de productos.

No nos engañemos. Todavía sigue siendo menos sencillo teclear una dirección web, una información de contacto o unas coordenadas en un teléfono móvil que en un ordenador de sobremesa.  Si quieres que un usuario que va en el metro leyendo un periódico donde te anuncias, acceda a tu web, siempre le será más fácil hacerlo si sólo necesita un par de movimientos de su teléfono y no tener que teclear toda esa dirección por muy corta que ésta sea.

Ya hay estudios y datos que así parecen demostrarlo. Así, podemos citar éste en el que se dice que la compañía Tesco aumentó sus registros en Corea en un 76% y sus ventas online en un 130% desde la inclusión de códigos QR en posters publicitarios. Y he aquí cómo lo hicieron.

Ver video.

La premisa era sencilla. Los coreanos son gente muy ocupada, tanto que no tienen ni tiempo  para hacer la compra. Así que si la gente no viene a la tienda, que la tienda vaya a la gente.

El uso que se le pueda llegar a dar, depende en gran parte de la imaginación de los que quiera usarlos. En econsultacy nos indican 8 ejemplos (espectacular el de AXA), entre ellos el citado de Tesco en Corea. En unos se apela a la comodidad del usuario y en otros a la curiosidad. Es el caso de Lacoste también ahí citado.

Pero sin duda puede haber y habrá muchos más. Así, Google lleva durante algún tiempo experimentando con los códigos QR como método de autentificación en sus aplicaciones.

Generación de códigos QR.

Generar códigos QR es relativamente sencillo. Existen muchas páginas en internet capaces de generar códigos QR online, muchas de las cuales se sirven de la Google Chart API para la generación de los códigos. Normalmente, preguntan al usuario qué tipo de código quieren generar y en función de la respuesta le solicitan otra serie de datos más.

Así, lo más común es generar códigos QR para direcciones URL, información de contacto de personas o empresas, números de teléfono o incluso información de redes WiFi.

Sin embargo en Tanta decidimos buscar algo que no nos hiciese depender de un tercero para la generación de estos códigos. Algo que pudiésemos nosotros controlar e incluso modificar si se necesitase, en el caso de que, por las razones que fuesen, se necesitara generar un tipo de código QR distinto.

De ahí llegamos a la librería PHP cuyo uso es más extendido para este tipo de tareas. Se llama phpqrcode y está alojada en Sourceforge. Es una librería de fácil instalación y de fácil uso y que no tiene más requerimientos para funcionar, aparte del intérprete de PHP, que la librería GD2.

Pero no vimos, al menos a primera vista, la forma de generar códigos específicos. Lo único que encontramos fueron ejemplos de generación de códigos de texto. Para que los teléfonos entiendan que el código QR corresponde a una URL o una vCard, este texto debe tener un formato determinado.

Llegamos entonces a este otro proyecto, el cual sí añade métodos específicos y en función de parámetros pasados forma cadenas de texto que responden a esos estándares. Pero también hacía uso de Google Chart API, cosa que no queríamos.

Como ambos proyectos nos gustaban, hemos decidido aprovechar ambos y mezclarlos creando una nueva clase que utiliza ambas. A esta clase la hemos llamado tantaQRCode y hemos publicado una nueva versión de la misma, acompañada de un ejemplo de generación de códigos relativos a nuestra empresa.

Notas

Hay que tener en cuenta que si bien existen estándares de tipos de códigos QR, por ejemplo los citados en http://code.google.com/p/zxing/wiki/BarcodeContents, puede haber otros muchos.

De igual forma, la decodificación depende del software que trate de decodificarlos. En nuestra aplicación de ejemplo hemos obtenido buenos resultados con la aplicación Barcode Scanner para Android, y no tan buenos con otras aplicaciones.

Conclusión

Los códigos QR son un método de almacenamiento de información con multitud de usos posibles.

Su inclusión ayuda a que los usuarios memoricen (graben) la información que tú les quieres dar, ya que se hace de forma mucho más sencilla y, sobre todo, rápida, que tecleando toda esa misma información en un dispositivo móvil

Poco a poco los software irán entendiendo mejor dicha información y seguramente hayan apareciendo otros tipos de códigos QR para aplicarlos en tareas cotidianas.

De igual forma también se podrá desarrollar software de lectura específicos para determinados tipos de código.

Puedes descargar los ejemplos creados en este link:

http://www.mediafire.com/?ps6b7g4angueuj8