Pour la lecture code barre, le scanner va te renvoyer directement la chaine décodée (il ne faut pas oublié que les codes barres sont uniquement un moyen détourné de faire de la reconnaissance de caractère: il est plus simple de lire des barres verticales que de déchiffrer des caractères alphanumériques tels qu’on les lits/écrits)
Sinon, pour te donner mon avis (et ce n’est que mon avis), il faudrait procéder ainsi:
- D’un coté, tu as une appli web qui va te générer les tickets à imprimer. Cette appli (php ou asp) doit dans un premier temps demander la génération d’un code unique (pour éviter d’avoir plusieurs tickets identiques) à une fonction qui idéalement enregistrera cette demande dans une base de données:
- L’utilisateur se connecte au site
- Il choisit son spectacle, ses horaires, ses places etc et paye
- Le payement validé, le site fait appel à une fonction qui:
- 1: calcul d’un identifiant unique (style nom + id_spectacle + horaire + clé)
- 2: enregistrement de cet identifiant dans une BD en plus des champs utiles
- 3: renvoie de cet identifiant au script de ton site pour génération du code barre
- Le script de ton site, sur retour de la fonction, doit avoir un identifiant à transformer en code barre. Il affiche donc un ticket électronique avec la bonne valeur de code à barre que le client peut imprimer chez lui
- Le soir du spectacle
- Tu utilises un lecteur code barre couplé à un PC relié à la base du site (rien n’empêche de télécharger le contenu de la base avant le spectacle, mais risque de problèmes pour les spectateurs s’inscrivant à la dernière minute, à moins d’interdire la vente par internet style 2 heures avant le début du spectacle)
- Si le spectateur dispose de son ticket électronique, lecture avec la douchette, requête sur la base pour vérifier que l’id du ticket est bien présent dans la base et pas déjà validée (pour éviter d’imprimer 50 fois le même ticket)
- Si le billet est valide, on enregistre l’info dans la base (évite que plusieurs spectateurs utilisent le même billet)
- Si le billet est illisible, possibilité de faire une validation manuelle (suivant les infos nom / id_spectacle / horaire / clé)
Voila, le gros avantage de ce système, c’est d’avoir une seule base (ce qui évite de mélanger les données), et que si le billet est illisible, tu peux malgrès tout valider l’accès à la salle.
Enfin, tu peux vérifier rapidement si le ticket correspond à la bonne scéance etc…
En tout cas, c’est comme ça que je vois, brut de décoffrage, ton système 