He creado una aplicación de fidelidad y recompensa para el cliente que funciona de una manera muy simple. Suministramos cafés, etc. con un código QR impreso que los clientes escanean en cada visita, utilizando la aplicación. Al completar X visitas, el cliente tiene derecho a una recompensa, por ejemplo, Un café gratis. Con el fin de evitar los registros ilegítimos, como tomar una foto del código QR impreso y escanearlo en casa, le proporcionamos un iBeacon junto con la etiqueta. Por lo tanto, cada vez que un usuario escanea con la aplicación el código QR, la aplicación intenta comunicarse a través de BLE con el iBeacon correspondiente. Si se encuentra, el registro se considera legítimo.
Sin embargo, esto ha demostrado tener muchas deficiencias, las más importantes de las cuales son:
- Las baterías iBeacon se agotan con bastante frecuencia (después de unos meses) y A pesar del hecho de que los propietarios reciben SMS para reemplazar el baterías, en su mayoría no molestan.
- El iBeacon en sí es relativamente caro (alrededor de $ 15 cada uno) dado que ofrecemos este servicio de forma gratuita.
Dado que el incentivo para "piratear" esta aplicación no es tan grande (no va a ganar un auto o una casa en la playa), se podría sugerir que confíe solo en la ubicación del usuario, por ejemplo, para validar eso. El cliente está de hecho en la tienda. Sin embargo, queremos que esto también funcione en bienes entregados. Actualmente también suministramos etiquetas "móviles" que un repartidor tiene con él y el cliente puede escanear en casa o en el trabajo.
Estoy tratando de pensar en una forma más simple o más rentable de validar los registros de los clientes, pero no he logrado hacerlo.
¿Alguien puede sugerir una forma alternativa "lo suficientemente buena para la mayoría de los casos" de hacer esto?
EDIT
Mi principal problema es que alguien puede tomar una fotografía de un código QR y escanearlo en casa. Por lo tanto, me preguntaba qué tan difícil sería verificar la imagen que mi aplicación "ve" durante la exploración en el lado del servidor. Entonces, si subí una imagen tomada por la cámara, cada vez que alguien escanea una etiqueta y tiene alguna forma "automágica" de determinar si es un escaneo legítimo o, por ejemplo, ¿La pantalla de otro teléfono o una copia impresa de mi etiqueta?
Así es como se ve una etiqueta
¿Puedo imprimir algo en el papel o en la etiqueta de plástico que puedo identificar durante el escaneo que sería difícil de imitar? P.ej. haciendo que la etiqueta se vea verde cuando se ve en un ángulo específico?