Vor kurzem an der Online-Abendkasse, wilde Aufregung, am 1. Juli 2019, endet die letzte Verschiebung, also musste ich mich mit diesem Problem befassen. Diejenigen, die 1C oder ein anderes System haben, können sich nicht anstrengen, aber wenn Sie Ihr eigenes selbstgeschriebenes System haben, fällt Ihnen auch die Integration in Online-Registrierkassen auf die Schultern.
Meine Erfahrung ist nützlich für die Integration mit Atol-Kassen im Netzwerkdatenaustauschmodus. Ihr Programm kann Daten sowohl auf dem lokalen Host als auch im lokalen Netzwerk an den Atol-Webserver senden. Sie können sie sogar über den AJAX-Browser senden, sogar vom Server über CURL. Unabhängig davon, in welcher Sprache Ihre Unternehmenssoftware geschrieben ist, ist alles plattformübergreifend.
Ich bin auf das Atol 30f-Ticketbüro gestoßen - es ist eine so einfache Schreibmaschine mit einer Black Box (FN), dass es genau richtig ist, wenn die gesamte Bestelllogik auf externer Software und nicht auf der in der Kasse integrierten Software basiert. Darüber hinaus sind Geräte dieses Typs im Vergleich zu Android-Gegenstücken relativ kostengünstig.
Ich möchte auch darauf hinweisen, dass die „Spezialisten“ einiger am Support beteiligter Unternehmen überhaupt nicht wissen, dass Atoll mit Version 10 einen integrierten Webserver im Treiber hat, der JSON-Jobs akzeptiert. Darüber hinaus kann dieser Treiber auch unter Linux installiert werden Aufgrund der Anzahl der vorgefertigten Lösungen für die Himbeeren kann ich davon ausgehen, dass sie auch dort installiert werden können, bei der Verteilung der 10. Version des Treibers ist der Installer für Arm vorhanden.
Das geplante Schema sieht ungefähr so aus: Es gibt CRM, das auf dem Server im lokalen Netzwerk ausgeführt wird, es wird über Browser geöffnet, von der Serverseite werden Schecks über Curl an PHP gesendet und an der Registrierkasse gedruckt. Die Kasse selbst ist mit jedem Computer unter Windows im selben Netzwerk verbunden.
Sie sagen, wenn Sie den Kassierer nicht aktivieren, kann er im Druckermodus arbeiten und drucken, dass der Scheck ungültig ist, aber ich konnte ihn nicht überprüfen. Ich musste Penny Sales und Retouren durchführen.
Der Treiber der zehnten Version wird
hier heruntergeladen.
Vor der Installation müssen Sie
Java mit der gleichen Bittiefe wie der Treiber installieren. Andernfalls ist der Kontrollkästchen-Webserver nicht verfügbar. Wenn Sie den 64-Bit-KKT-Treiber installieren, dann Java x64.
Es scheint, dass Sie logischerweise einen 64-Bit-Treiber auf einem 64-Bit-System installieren müssen, aber einige 32-Bit-Software kann nicht damit arbeiten (dies gilt für 1C, wenn es 32-Bit ist).

Am Ende der Installation befindet sich ein Häkchen. Um den Webserver zu konfigurieren, müssen Sie, wenn er nicht installiert wurde, unter
127.0.0.1 : 16732 / settings zum Browser wechseln, das Kontrollkästchen "Server aktivieren" aktivieren und speichern.


Danach müssen Sie den Server über START-> ATOL-> Neustart neu starten ...
Ich möchte Sie auch sofort warnen, dass lokale Anwendungen beim Starten des Webservers nicht auf die CCP zugreifen können. Ich arbeite lange, installiere den Treiber, führe den Cct-Treiber-Test aus und er teilt mir mit, dass der Port belegt ist und das war es. Ich habe dort den technischen Support des lokalen Verkäufers angerufen Sie sagten, wir wissen nicht, was wir tun sollen, dann habe ich den Computer zehnmal überlastet, den Treiber neu installiert, nichts hilft.
Nachdem Sie den Server aktiviert und neu gestartet haben und zuvor den Server ausgeschaltet und das Drucken von Klartext über das mitgelieferte Dienstprogramm überprüft oder nur die Verbindung überprüft haben, können Sie im Allgemeinen fortfahren.
Dieser Webdienst verfügt über keinen Kennwortschutz. Daher müssen Sie die Windows-Firewall oder andere Software sofort so konfigurieren, dass nur die erforderlichen Computer auf Port 16732 zugreifen können. In meiner Situation ist dies der Server, auf dem CRM ausgeführt wird.
Die Kommunikation mit dem Webdienst ist in der Regel ein eigenständiges Thema, sehr interessant ...- Generieren Sie eine eindeutige UUID für den Job
- Wir senden die Aufgabe mit der POST-Methode
- Wir stürzen beim Webdienst ab und warten mit unserer UUID auf das Ergebnis der Aufgabe. Es kann sein, dass unsere Aufgabe einige Sekunden lang einen Wartestatus hat oder ein Fehler auftritt, wenn in der Anforderung etwas nicht stimmt ...
Und dann gebe ich eine funktionierende Version. Sie eignet sich für Situationen, in denen die Zahlung nur eine Methode ist und nicht so sehr in bar und teilweise bargeldlos. Außerdem wird das Standardsteuersystem verwendet. Die Mehrwertsteuer wird noch nicht berechnet. Ich wollte den Code hinzufügen und dann verteilen Ich denke, es gibt immer noch Leute, die diese Informationen vor dem 1. Juli brauchen als danach. Ich muss sofort sagen, dass die Klasse verfeinert werden muss, viel roh, keine Fehlerbehandlung, alles wurde in ein paar Stunden erledigt, ohne das Lesen der Dokumentation zu berücksichtigen. Dieser Code ist eher ein Beispiel und ich rate Ihnen, die
Dokumentation detailliert zu studieren und an Ihre spezifischen Prozesse anzupassen.
PHP-Code für ein Beispiel für die Arbeit mit API (nur für Bildungszwecke verwendet)<?php Class AtolWebDriver { protected $addr="127.0.0.1",$port="16732"; public $timeout = 30;
Hier gibt es einige Fehler, die ich beheben werde
- Rundungsbrüche bei der Berechnung der Beträge müssen auf Cent gerundet werden, andernfalls erhalten Sie 1.000000001 oder 0.999999999
- Bei korrekter Schreibweise der restlichen Programmlogik tritt dies normalerweise nicht auf, aber während der Tests stellte ich fest, dass die Aufgabe ein Fehlerergebnis zurückgab und ich darauf wartete, dass sie fertig war
Nun, während des Implementierungsprozesses habe ich Angst, viele weitere Fehler zu erkennen. Wenn beispielsweise eine Aufgabe längere Zeit im Wartestatus hängt, ist es besser, sie aus der Warteschlange zu entfernen. Andernfalls hängen die nachfolgenden Aufgaben einige Minuten lang. Ich habe einmal einen solchen Fehler festgestellt. Ich hatte nicht gehofft, dass sie gedruckt wird und hier sitze ich, aber es hüpft und druckt sofort zwei Schecks hintereinander, die früher gesendet wurden ...
Im Allgemeinen ist es möglich, in Zukunft Akquisitionen von der Website zu sammeln, wenn keine Online-Schecks vorhanden sind, bis Sie sich für eine Akquisition entschieden haben. Aber die Lösung ist, eher als Idee für eine Lösung, die Zeit wird zeigen, wie diese Abendkasse Wurzeln schlagen wird.
Achtung : Wenn Sie den Artikel unaufmerksam lesen und in Sicherheitsfragen nicht sehr kompetent sind -
dieser Webdienst verfügt nicht über eine Verschlüsselung (https) und keine Berechtigung , auch wenn er nur im lokalen Netzwerk verwendet wird - konfigurieren Sie den Schutz für den Zugriff auf den Port.