Sur une borne self-service, encaisser n'est que la moitié du travail. Le client a payé : il attend maintenant que sa machine démarre. Entre les deux, il y a une liaison série ou réseau, une carte de commande et beaucoup de cas que l'on découvre souvent trop tard, sur le terrain.

Voici les points que je vérifie systématiquement quand un terminal de paiement doit piloter un équipement.

Un paiement accepté ne suffit pas

Le vrai résultat d'une transaction, ce n'est pas « paiement accepté », c'est « service délivré ». Si la machine ne répond pas après le paiement, le client a perdu son argent et l'exploitant récupère un litige.

L'application doit donc toujours savoir :

  • si la commande a bien été reçue par la machine ;
  • si le cycle a réellement démarré ;
  • quoi faire sinon : nouvelle tentative, annulation, remboursement ou crédit conservé.

Acquitter chaque commande

Envoyer une trame ne garantit pas qu'elle a été reçue. Chaque commande doit attendre un acquittement de la machine, avec un délai maximal et un nombre de tentatives limité.

Attention aux nouvelles tentatives : si la machine a exécuté la commande mais que son acquittement s'est perdu, la renvoyer peut lancer deux cycles. Le protocole doit permettre de distinguer une commande déjà traitée d'une nouvelle.

Prévoir les coupures

Une coupure de courant ou de réseau en plein cycle arrivera, ce n'est qu'une question de temps. Avant d'envoyer une commande, l'application enregistre où en est la transaction. Au redémarrage, elle relit cet état et décide : la machine tourne-t-elle encore, le client a-t-il été servi, faut-il le rembourser ?

Journaliser les trames

Quand un problème survient sur une borne à des centaines de kilomètres, le journal des échanges avec la machine est souvent le seul moyen de comprendre ce qui s'est passé. Horodater chaque trame envoyée et reçue fait gagner des heures de diagnostic.

En résumé

Le dialogue avec la machine se conçoit dès le départ, au même titre que le parcours de paiement : acquittements, reprise après coupure, cohérence entre paiement et service, et traces exploitables. C'est ce qui fait la différence entre une borne qui fonctionne en démonstration et une borne qui tient des années sur le terrain.