Autour du box-office en ligne récemment, excitation folle, le 1er juillet 2019, le dernier report se termine, j'ai donc dû faire face à ce problème. Ceux qui ont 1C ou un autre système en particulier ne peuvent pas forcer, mais si vous avez votre propre système auto-écrit, l'intégration avec les caisses en ligne tombe également sur vos épaules.
Mon expérience est utile pour l'intégration avec les caisses Atol en mode d'échange de données réseau, votre programme peut envoyer des données au serveur Web Atol à la fois sur l'hôte local et sur le réseau local, vous pouvez les envoyer même depuis le navigateur AJAX, même depuis le serveur via CURL, donc, quelle que soit la langue dans laquelle votre logiciel d'entreprise est écrit, tout est multiplateforme.
Je suis tombé sur la billetterie Atol 30f - c'est une machine à écrire si simple avec une boîte noire (FN), c'est juste quand toute la logique de commande est sur un logiciel externe, et non sur le logiciel intégré à la caisse. En outre, les appareils de ce type sont relativement peu coûteux par rapport à leurs homologues Android.
Je voudrais également noter que les «spécialistes» de certaines entreprises impliquées dans le support ne savent pas du tout qu'Atoll avec la version 10 a un serveur web intégré dans le pilote qui accepte les jobs JSON, de plus, ce pilote peut également être installé sur linux, à en juger par le nombre de solutions toutes faites sur les framboises, je peux supposer qu'il peut aussi y être installé, dans la distribution de la 10ème version du driver, l'installateur pour arm est présent.
Le schéma prévu est quelque chose comme ça - il y a CRM qui fonctionne sur le serveur sur le réseau local, il est ouvert à partir des navigateurs, du côté serveur, les chèques seront envoyés à PHP via curl et imprimés à la caisse enregistreuse. Et la caisse elle-même est connectée à n'importe quel ordinateur sous Windows sur le même réseau.
Ils disent que si vous n'activez pas la caisse, cela peut fonctionner en mode imprimante et imprimer que le chèque n'est pas valide, mais je n'ai pas pu le vérifier, j'ai dû faire des ventes et des retours de penny.
Le pilote de la dixième version est téléchargé
ici .
Avant l'installation, vous devez installer
Java de la même profondeur de bits que le pilote, sinon le serveur Web de case à cocher ne sera pas disponible, si vous installez le pilote KKT 64 bits, puis Java x64.
Il semble que, logiquement, vous devez installer un pilote 64 bits sur un système 64 bits, mais certains logiciels 32 bits ne pourront pas fonctionner avec (comme cela s'applique à 1C s'il est 32 bits).

À la fin de l'installation, il y a une coche - pour configurer le serveur Web, s'il n'a pas été installé, alors vous devez aller dans le navigateur à
127.0.0.1 : 16732 / settings, cochez la case "Activer le serveur" et enregistrez.


Après cela, vous devez redémarrer le serveur via START-> ATOL-> restart ...
Je tiens également à vous avertir tout de suite que si vous démarrez le serveur Web, les applications locales ne pourront pas accéder au CCP, je travaillerai longtemps, installer le pilote, exécuter le test du pilote Cct, et il me dit que le port est occupé et c'est tout, j'ai appelé le support technique du vendeur local, là ils ont dit que nous ne savions pas quoi faire, puis j'ai surchargé l'ordinateur dix fois, réinstallé le pilote, rien n'y fait.
En général, après avoir activé et redémarré le serveur, et avant cela, vous avez éteint le serveur et vérifié l'impression du texte brut via l'utilitaire fourni ou simplement vérifié la connexion - vous pouvez continuer.
Ce service Web ne dispose d'aucune protection par mot de passe, vous devez donc configurer immédiatement le pare-feu Windows ou d'autres logiciels afin que seuls les ordinateurs nécessaires puissent accéder au port 16732, dans ma situation, c'est le serveur sur lequel CRM s'exécute.
La communication avec le service Web est généralement un sujet distinct, très intéressant ...- Générer un uuid unique pour le travail
- Nous envoyons la tâche en utilisant la méthode POST
- Nous plantons sur le service Web, en attendant le résultat de la tâche avec notre UUID, il se peut que pendant quelques secondes notre tâche ait un état d'attente, ou une erreur peut se produire si quelque chose ne va pas dans la demande ...
Et puis je vais donner une version de travail, elle convient aux situations où le paiement n'est qu'une seule méthode, et pas tellement en espèces et en partie non en espèces, il utilise également le système fiscal par défaut, la TVA n'est pas encore calculée, je voulais ajouter le code, puis l'étaler, mais Je pense qu'il y a encore des gens qui ont besoin de ces informations avant le 1er juillet après. Je dois dire tout de suite que la classe a besoin de raffinement, beaucoup de raw, pas de gestion d'erreur, tout a été fait en quelques heures sans prendre en compte la lecture de la documentation, ce code est plus à titre d'exemple et je vous conseille d'étudier la
documentation en détail et de l'adapter à vos processus spécifiques.
code php pour un exemple de travail avec api (utilisé à des fins éducatives uniquement)<?php Class AtolWebDriver { protected $addr="127.0.0.1",$port="16732"; public $timeout = 30;
Il y a ici quelques défauts que je vais corriger
- Arrondir les fractions lors du calcul des montants, vous devez arrondir en cents, sinon vous pouvez obtenir 1,000000001 ou 0,999999999
- Avec l'orthographe correcte du reste de la logique du programme, cela ne se produit généralement pas, mais pendant les tests, je me suis rendu compte que la tâche a renvoyé un résultat d'erreur et j'attendais d'être prêt
Eh bien, dans le processus de mise en œuvre, j'ai peur de rattraper beaucoup d'erreurs, par exemple, si la tâche se bloque pendant longtemps dans l'état d'attente, alors il vaut mieux la supprimer de la file d'attente, sinon les tâches suivantes se bloqueront pendant plusieurs minutes, j'ai attrapé un tel problème une fois, je n'espérais pas qu'elle s'imprimerait et ici je suis assis, mais il saute et imprime immédiatement deux chèques de suite envoyés plus tôt ...
En général, il est possible de collecter les acquisitions du site à l'avenir, si elles ne disposent pas de contrôles en ligne, jusqu'à ce que vous ayez décidé quelle acquisition visser. Mais la solution est, plus probablement une idée de solution, le temps nous dira comment ce box-office va prendre racine.
Attention , pour ceux qui lisent l'article de manière inattentive et ne sont pas très compétents en matière de sécurité -
ce service web n'a pas de cryptage (https), n'a pas d'autorisation , même s'il n'est utilisé que sur le réseau local - configurez la protection pour l'accès au port.