PosnetServer może wykonywać wydruki niefiskalne na drukarce fiskalnej. Dzięki temu możliwe jest drukowanie nie tylko paragonów, ale również na przykład potwierdzeń płatności z terminala płatniczego. W tym tutorialu opiszemy jak wykorzystać drukarkę fiskalną do wydruku potwierdzeń z eService. Cały proces prezentujący włąsciwe przeprowadzenie płatności na terminalu eService dostępny jest w formie skryptów bash w katalogu docs produktu IngenicoServer. Znajdujący się…
PosnetServer od wersji 5.1 został rozbudowany o autentykację i autoryzację requestów. Mechanizm pozwala na uwierzytelnianie (autentykację) każdego requestu loginem i hasłem oraz następnie autoryzację (upoważnenie) do wybranego RESTpointu. Przykładowo, jeśli chcemy aby aplikacja monitorująca serwisy w naszej infrastrukturze nie miała uprawnień do wystawiania paragonów, wystarczy że przypiszemy jej uprawnienia do GET /status oraz GET /devicestatus. Aktywacja Moduł autentykacji i autoryzacji…
PosnetServer od wersji 5.0 został rozbudowany o symulator drukarki fiskalnej. Dzięki nowej funkcjonalności testowanie dowolnego oprogramowania z drukarką fiskalną nie wymaga posiadania drukarki fiskalnej. Dopiero po zakończeniu pisania kodu i przed gotowością wdrożenia, można wygodnie przejść z trybu symulacji do trybu pracy z fizycznym urządzeniem. Warto wspomnieć że nawet jeśli PosnetServer jest podłączony do drukarki, to w trybie symulacji urządzenie…
JSON reprezentujący rekordy w pamięci fiskalnej jest dość rozbudowany, stąd jego parsowanie może być na początku kłopotliwe. Dla przykładu przeanalizujemy rekordy zwracane przez API /raporty/events/dobowy.
1 2 3 4 5 6 |
curl -s -XPOST "http://localhost:3050/raporty/events/dobowy?fulldebug=true" -H 'Content-type: application/json' -d ' { "dateFrom":"2023-07-31T23:20:00+02:00", "dateTo":"2023-08-29T23:49:59+02:00", "mergeSections": true }' |
W odpowiedzi otrzymujemy identyfikator tasku, a następnie jego status sprawdzamy za pomocą RESTpoint: GET /tasks/get/<identyfikator taska> GET/tasks/list W momencie gdy “inprogress” zmieni wartość na “false”, wówczas metoda zwraca pełen wynik, przykładowo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
{"hits":{"task":{"ts":1701639330320,"task":"45c53051-cf9b-4089-8864-6b1caf38bee0","inprogress":false,"progress":0,"success":true,"message":null,"result":{"ok":true,"code":0,"error":"", "results":[ {"sections":[ {"type":"raport_dobowy","date":"2023-10-02T19:01:50Z","date_ts":749588510,"nb":1730,"fisk":1,"taxid":"5554442211","prefix":"","compress":0,"sw":0,"number":83, "date_112":"2023-10-02T19:01:50Z","date_ts_112":749588510,"currency":"PLN","ptu.0":2300,"ptu.1":800,"ptu.2":500,"ptu.3":0,"ptu.4":-1,"ptu.5":-2,"ptu.6":-2, "ptuChange":0,"malfunctionCount":0,"programmingLCount":0,"programmingOCount":0, "waPa.0":221021,"waPa.1":0,"waPa.2":0,"waPa.3":0,"waPa.4":0,"waPa.5":0,"waPa.6":0,"paragonCount":14,"paragonCancelledCount":0,"paragonCancelledAmount":0, "waFv.0":0,"waFv.1":0,"waFv.2":0,"waFv.3":0,"waFv.4":0,"waFv.5":0,"waFv.6":0,"invoiceCount":0,"invoiceCancelledCount":0,"invoiceCancelledAmount":0, "ticketsCount":0,"foreignTicketsCount":0,"dbChangesCount":7,"nonfiscalPrintoutsCount":0, "dateReportStart":"2023-10-02T07:45:16Z","dateReportEnd":"2023-10-02T18:40:21Z","dateReportStart_ts":749547916,"dateReportEnd_ts":749587221, "unsuccessfulTransfersCount":0,"type_65":"raport_dobowy","fisk_65":1,"cancelled":0,"nb_65":0, "date_65":"2023-10-02T19:01:50Z","date_ts_65":749588510, "uniq":"UNIQ_2221114422","cashNumber":"001","cashier":"KIEROWNIK", "taxid_65":"","taxidPrefix":"","taxidStyle":0,"compress_65":0,"sw_65":0} ] }, {"sections":[ {"type":"raport_dobowy","date":"2023-10-03T18:59:44Z","date_ts":749674784,"nb":1746,"fisk":1,"taxid":"5554442211","prefix":"","compress":0,"sw":0,"number":84, "date_112":"2023-10-03T18:59:44Z","date_ts_112":749674784,"currency":"PLN","ptu.0":2300,"ptu.1":800,"ptu.2":500,"ptu.3":0,"ptu.4":-1,"ptu.5":-2,"ptu.6":-2," ptuChange":0,"malfunctionCount":0,"programmingLCount":0,"programmingOCount":0, "waPa.0":178581,"waPa.1":0,"waPa.2":0,"waPa.3":0,"waPa.4":0,"waPa.5":0,"waPa.6":0,"paragonCount":15,"paragonCancelledCount":0,"paragonCancelledAmount":0, "waFv.0":0,"waFv.1":0,"waFv.2":0,"waFv.3":0,"waFv.4":0,"waFv.5":0,"waFv.6":0,"invoiceCount":0,"invoiceCancelledCount":0,"invoiceCancelledAmount":0, "ticketsCount":0,"foreignTicketsCount":0,"dbChangesCount":6,"nonfiscalPrintoutsCount":0, "dateReportStart":"2023-10-03T07:18:20Z","dateReportEnd":"2023-10-03T16:07:37Z","dateReportStart_ts":749632700,"dateReportEnd_ts":749664457, "unsuccessfulTransfersCount":0,"type_65":"raport_dobowy","fisk_65":1,"cancelled":0,"nb_65":0, "date_65":"2023-10-03T18:59:44Z","date_ts_65":749674784, "uniq":"UNIQ_2221114422","cashNumber":"001","cashier":"KIEROWNIK", "taxid_65":"","taxidPrefix":"","taxidStyle":0,"compress_65":0,"sw_65":0} ] } ]}}},"ok":true} |
W powyższej…
Z racji tego, że PosnetServer do wersji 4.3 włącznie nie przechowuje żadnych danych, aktualizacje wykonujemy jak ponowną instalację serwisu w osobnym katalogu. Przykładowo aby wykonać upgrade do wersji 4.4: Przygotowanie NOWEGO serwisu Torzymy nowy katalog (C:/PosnetServer4.4, lub /opt/posnetserver4.4) Pobieramy paczkę instalacyjną i rozpakowywujemy jej zawartość w nowym katalogu Kopiujemy plik config.json z poprzedniego katalogu do nowego nadpisując tym samym domyślny…
Komunikując się z drukarką fiskalną, należy co pewien czas sprawdzać jej status, czyli czy drukarka jest online, czy jest gotowa do przyjęcia do wydruku kolejnego paragonu/faktury, czy nie kończy (lub skończył) się papier lub czy drukarka jest podłączona do zasilania Status Online Sprawdzenie statusu online można wykonać wysalając polecenie /status lub /devicestatus, przykładowo: Dodatkowo, PosnetServer posiada funkcjonalność automatycznego monitorowania drukarki…
PosnetServer od wersji 4.3 umożliwia odczyt pamięci fiskalnej. Oznacza to że w wygodny sposób można uzyskać dostęp do historii wystawionych faktur, paragonów, raportów dobowych czy zdarzeń takich jak awarie zasilania czy błędy mechanizmu drukującego. Odczytu zdarzeń można dokonać za pomocą nowych RESTpoint takich jak: POST /raporty/events/dobowy POST /raporty/events/custom POST /raporty/sellhistory Wykonujemy je w następujący sposób: W odpowiedzi otrzymujemy identyfikator tasku,…
W celu przygotowania drukarki do pracy w trybie eDokumentów (eParagon i eFaktura), należy wykonać 3 kroki (KROK 1) Uaktywnić moduł eDokument na drukarce Posnet. Nie każda drukarka posiada wsparcie dla eDokuemtnów (czyli eParagonów i eFaktur). W chwili tworzenia tego artykułu 4 drukarki posiadały taką możliwość: Thermal HX 1.01 Thermal XL2 Online 2.01 Thermal HD Online 2.01 Thermal XL2 Online S…
Od wersji 4.0 Posnet Server wspiera mechanizm pluginów umożliwiając rozszerzanie możliwości produktu. Pluginy są częścią paczki instalacyjnej i nie wymagają pobierania lub instalowania dodatkowych plików z internetu. Domyślnie wszystkie pluginy są wyłączone. Wprowadzenie Azure Service Bus, działający na chmurze Microsoft Azure, jest to usługą kolejkową, umożliwiającą budowanie zaawansowanych kolejek z mechanizmami routowania wiadomości, TTL, DLQ itp. Podobnie jak RabbitMQ usługa…