java library za implementaciju programskih rješenja za ... · pdf file• trenutna...
TRANSCRIPT
Java library za
implementaciju programskih implementaciju programskih
rješenja za fiskalizaciju u RH
Juraj ĆutićAleksander Radovan
Fiskalizacija
• 01.01.2013. počela primjena Zakona o fiskalizaciji u prometu gotovinom za određene djelatnosti
• Od 01.07.2013. sve djelatnosti koje prometuju gotovinom moraju imati implementiranu gotovinom moraju imati implementiranu fiskalizaciju
• Obuhvaća velik broj djelatnosti, a time i veliki broj različitih programskih rješenja
• Evidencija i kontrola svakog računa plaćenog gotovinom u sustavu Porezne uprave
Library
Open source library
Source kod je dostupan na GitHubu
Preuzimanje certifikata
• Preuzimanje aplikativnog certifikata za digitalni potpis u PKCS #12 formatu
• Preuzimanje SSL poslužiteljskog certifikata za • Preuzimanje SSL poslužiteljskog certifikata za kriptiranu komunikaciju s web servisom
• Za korištenje defaultnog ponašanja, moguće ih je postaviti u istu putanju, te im dodijeliti ista imena (npr . FiskalCert.pfx i FiskalCert.cer)
Primjena librarya
Kreiranje objekta
klase Fiscalization
Kreiranje JKS
keystorea
sa pripadajućim
certifikatima
Popuna objekata
Prijava svakog
kreiranog računaPrijava poslovnog
prostora
Popuna objekata
za kreiranje XML-a
Prijava računaPopuna objekata
Za kreiranje XML-a
Prijava poslovnog
prostora
aa
a aa aaa
a
aa
Klasa Fiscalization
Fiscalization fiskal = new Fiscalization(
"C:\path\", "FiskalCert", "password");
Konverzija certifikata
• Kreira se JKS keystore sa passwordom i putanjom koji su definirani u objektu fiskal
Fiscalization.
convertFromPKCSAndSSLToJKS(fiskal);
putanjom koji su definirani u objektu fiskal
• Unutar JKS keystorea unose se aplikativni i poslužiteljski certifikati
• Defaultni aliasi: aplikativni - oib poslužiteljski - SSLoib
Poslovni prostor
Poslovni prostor
• Izvršava se: - kreiranje XML-a
BusinessAreaRequest businessAreaRequest =
new BusinessAreaRequest(
new RequestHeader(), businessArea);
fiskal.sendSoap(fiskal, businessAreaRequest);
• Izvršava se: - kreiranje XML-a - kreiranje SOAP poruke- potpisivanje XML-a- slanje SOAP-a prema web servisu- provjera potpisa povratne poruke
• Metoda se poziva samo kod prijave, odjave ili promjene podataka vezanih za poslovni prostor
Račun
Račun
BillRequest billRequest = new BillRequest(
new RequestHeader(), bill);
Potrebno je postaviti i zaštitni kod izdavatelja (ZKI) metodom:
bill.setSecutityCode(bill.securityCode( ... ));
• Izvršavaju se iste funkcionalnosti kao i kod slanja SOAP poruke za prijavu poslovnog prostora
• Metoda se poziva svaki put prilikom kreiranja računa
new RequestHeader(), bill);
fiskal.sendSoap(fiskal, billRequest);
Ispis računa
• Ako je komunikacija u potpunosti uspješna, potrebno je ispisati jedinstveni identifikator računa (JIR) i ZKI na računračuna (JIR) i ZKI na račun
• U slučaju neuspjele komunikacije potrebno je ispisati samo ZKI, a račun naknadno poslati web servisu Porezne uprave
Tehnologije
Korišeni standardni library iz JDK 7
javax.xml•soap•crypto
java.net•ssl
java.security•crypto
•dsig
•xpath•bind
•annotation
•namespace•parsers
java.security•cert
java.util•regex
java.io
java.text
org.w3c.dom
Zaključak
• Intuitivan za korištenje
• Trenutna dostupna cjelokupna rješenja Java librarya za fiskalizaciju se naplaćuju
• Mogućnost korištenja samo dijelova koda ili određenih funkcionalnosti
• Kod analiziran Sonarom (97,6 %)
• Svaki prijedlog za poboljšanje programskog rješenja je dobrodošao
Hvala na pažnji