This project is read-only.

Potpisivanje i slanje XML dokumenata pozivanjem vanjskog programa (EXE)

Za one korisnike koji ne mogu referencirati FiskalizacijaDEV.DLL unutar .NET aplikacije, pripremili smo .NET v2.0 console aplikaciju (EXE), koja se može pozivati iz DOS okruženja (pod Windowsima), Clariona, Clipper-a i sl. (http://fiskalizacija.codeplex.com/workitem/615).

Na računalu na kojem koristite ovu mogućnost morate imati instaliran .NET Framework verzije 2.0. ili više (http://www.microsoft.com/en-us/download/details.aspx?id=1639).

Ovo su koraci koje treba napraviti:

  1. Unutar vaše postojeće aplikacije kreirajte XML dokument, koji mora biti u skladu sa XSD schemom
  2. Snimite taj dokument u neku datoteku (npr. RacunZahtjev.xml)
  3. Pozovite Raverus.FiskalizacijaDEV.EXE.exe sa odgovarajućim parametrima
  4. Raverus.FiskalizacijaDEV.EXE.exe će učitati XML iz datoteke, potpisat će ga, dodat će mu SOAP omotnicu, poslat će ga u CIS i odgovor će snimiti u drugu datoteku (npr. RacunOdgovor.xml). Isto tako, ako se radi o računu, u datoteku unutar istog foldera gdje se nalazi i Raverus.FiskalizacijaDEV.EXE.exe, biti će snimljena datoteka JIR.txt koja sadrži UUID i JIR, u formatu "UUID;JIR".
  5. Opcionalno, Raverus.FiskalizacijaDEV.EXE.exe može i snimiti log datoteku (snima se u istu mapu gdje je i Raverus.FiskalizacijaDEV.EXE.exe), kao i svaki zahtjev odnosno primljeni odgovor, u podmapama "Zahtjev" i "Odgovor" (snima se u istu mapu gdje je i Raverus.FiskalizacijaDEV.EXE.exe)

 

Upotreba

Program Raverus.FiskalizacijaDEV.EXE.exe se poziva tako da mu kod pozivanja proslijedite potrebne argumente, nakon čega će program odraditi sve što treba.

Prvi parametar je uvijek naziv operacije. Moguće vrijednosti su:

  • Echo - šalje ECHO poruku i rezultat sprema u datoteku ECHO.txt
  • GenerirajUuid - generira UUID i sprema ga u datoteku UUID.txt
  • GenerirajZki - generira Zaštitni kod izdavatelja (ZKI) i sprema ga u datoteku ZKI.txt
  • DohvatiStatus (https://www.fdev.hr/Status/Status-CIS-Servisa.aspx) - dohvaća status CIS servisa i sprema ga u datoteku Status.txt
  • RacunZahtjev - potpisuje XML, dodaje mu SOAP omotnicu i šalje ga U CIS; JIR se nalazi u JIR.txt datoteci
  • PoslovniProstorZahtjev - potpisuje XML dokument, dodaje mu SOAP omotnicu i šalje ga U CIS
  • RacunZahtjevPotpisi - potpisuje XML dokument i sprema ga u datoteku
  • RacunZahtjevPosalji - šalje potpisani dokument u CIS
  • PoslovniProstorZahtjevPotpisi - potpisuje XML dokument i sprema ga u datoteku
  • PoslovniProstorZahtjevPosalji - šalje potpisani dokument u CIS

Ukoliko je neki od parametara empty string (prazan string, "") i ukoliko postoji odgovarajuća vrijednost definirana u config datoteci, program će uzeti vrijednost iz config datoteke. Na primjer, ukoliko je CisUrl definiran u config datoteci, program će uzeti njegovu vrijednost ukoliko je odgovarajući argument ""; u suprotnom, program će koristiti vrijednost iz argumenta.

Kod pozivanja se mogu koristiti ove kratice:

  • GenerirajUuid - GU
  • Echo - E
  • RacunZahtjev - RZ
  • PoslovniProstorZahtjev - PPZ
  • RacunZahtjevPotpisi - RZPOT
  • RacunZahtjevPosalji - RZPOS
  • PoslovniProstorZahtjevPotpisi - PPZPOT
  • PoslovniProstorZahtjevPosalji - PPZPOS
  • GenerirajZki - GZ
  • DohvatiStatus - DS

Ukoliko je postavljena vrijednost za Timeout, ta će se vrijednost uzimati u obzir kod komunikacije sa CIS-om. Vrijednost za Timeout se unosi kao cjelobrojna vrijednost, u milisekundama - 1000 je 1 sekunda.

Eventualne greške koje vrati CIS će biti zapisane u Greska.txt u mapi u kojoj se EXE nalazi.

 

ECHO

 Parametri (argumenti):

  • naziv operacije
  • tekst koji se šalje u ECHO poruci

 

Primjer pozivanja:
Raverus.FiskalizacijaDEV.EXE.exe echo "Test poruka"

 

GenerirajUuid

Parametri (argumenti):

nema ih

 

Primjer pozivanja:
Raverus.FiskalizacijaDEV.EXE.exe GenerirajUuid

 

GenerirajZki 

 

Parametri (argumenti):

  • naziv operacije
  • OIB obveznika
  • Datum i vrijeme izdavanja računa u formatu "dd.MM.yyyy HH:mm:ss"
  • Brojčana oznaka računa
  • Oznaka poslovnog prostora
  • Oznaka naplatnog uređaja
  • Ukupni iznos računa (sa decimalnom točkom, ne sa zarezom)
  • Naziv certifikata - ILI - Naziv datoteke sa certifikatom + Zaporka

 

Primjer pozivanja:
Raverus.FiskalizacijaDEV.EXE.exe GenerirajZki "44718633471" "22.10.2012 18:04:26" "1" "11" "12" "125.25" "FISKAL 1"
Raverus.FiskalizacijaDEV.EXE.exe GenerirajZki "44718633471" "22.10.2012 18:04:26" "1" "11" "12" "125.25" "D:\Users\Nino\Desktop\Fiskalizacija\MojCert.pfx" "PASSWORD" 

 

 

DohvatiStatus 

 

Parametri (argumenti):

nema ih

 

Primjer pozivanja:
Raverus.FiskalizacijaDEV.EXE.exe DohvatiStatus

 

 

 

RacunZahtjev, PoslovniProstorZahtjev  

Parametri (argumenti):

  • naziv operacije
  • URL do CIS-a (do web servisa), na primjer "https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest", ukoliko se ostavi prazan string (""), EXE će se spajati na trenutno aktualnu adresu
  • XML datoteka sa zahtjevom - lokacija (path) i naziv XML dokumenta koji sadrži vaš XML koji treba obraditi
  • XML datoteka u koju se sprema odgovor - path i naziv datoteke u koju će biti spremljen odgovor
  • Logging - true ili false, u ovisnosti o tome da li trebate detaljni logging rada; log će biti spremljen u datoteku FiskalizacijaDEV.log u istu mapu gdje se nalazi i Raverus.FiskalizacijaDEV.EXE.exe
  • Snimanje - true ili false, ako je postavljeno na true u mapu gdje se nalazi Raverus.FiskalizacijaDEV.EXE.exe će biti kreirane mape "Zahtjev" i "Odgovor" koje će sadržavati sve zahtjeve poslane u CIS kao i sve primljene odgovore, kao XML datoteke. Naziv XML datoteke sadrži tip dokumenta i UUID
  • Naziv certifikata - ILI - Naziv datoteke sa certifikatom + Zaporka

 

Primjer pozivanja:
Raverus.FiskalizacijaDEV.EXE.exe RacunZahtjev "" "D:\Users\Nino\Desktop\RacunZahtjev.xml" "D:\Users\Nino\Desktop\RacunOdgovor.xml" false true "FISKAL 1"
Raverus.FiskalizacijaDEV.EXE.exe RacunZahtjev "https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest" "D:\Users\Nino\Desktop\RacunZahtjev.xml" "D:\Users\Nino\Desktop\RacunOdgovor.xml" false true "D:\Users\Nino\Desktop\MojCert.pfx" "PASSWORD"

 

 

RacunZahtjevPotpisi, PoslovniProstorZahtjevPotpisi

Parametri (argumenti):

  • naziv operacije
  • "" (ne koristi se)
  • XML datoteka - lokacija (path) i naziv XML dokumenta koji sadrži vaš XML koji treba potpisati
  • XML datoteka u koju se sprema potpisani XML - path i naziv datoteke u koju će biti spremljen odgovor
  • Logging - true ili false, u ovisnosti o tome da li trebate detaljni logging rada; log će biti spremljen u datoteku FiskalizacijaDEV.log u istu mapu gdje se nalazi i Raverus.FiskalizacijaDEV.EXE.exe
  • Snimanje - true ili false, ako je postavljeno na true u mapu gdje se nalazi Raverus.FiskalizacijaDEV.EXE.exe će biti kreirane mape "Zahtjev" i "Odgovor" koje će sadržavati sve zahtjeve poslane u CIS kao i sve primljene odgovore, kao XML datoteke. Naziv XML datoteke sadrži tip dokumenta i UUID
  • Naziv certifikata - ILI - Naziv datoteke sa certifikatom + Zaporka

 

Primjer pozivanja:
Raverus.FiskalizacijaDEV.EXE.exe RacunZahtjevPotpisi "" "D:\Users\Nino\Desktop\Fiskalizacija\NepotpisaniXmlRacun.xml" "D:\Users\Nino\Desktop\Fiskalizacija\PotpisaniXmlRacun.xml" true true "FISKAL 1"

 

 

 

 

RacunZahtjevPosalji, PoslovniProstorZahtjevPosalji

Parametri (argumenti):

  • naziv operacije
  • URL do CIS-a (do web servisa), na primjer "https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest", ukoliko se ostavi prazan string (""), EXE će se spajati na trenutno aktualnu adresu
  • XML datoteka - lokacija (path) i naziv XML dokumenta koji sadrži vaš XML koji treba poslati
  • XML datoteka u koju se sprema odgovor - path i naziv datoteke u koju će biti spremljen odgovor
  • Logging - true ili false, u ovisnosti o tome da li trebate detaljni logging rada; log će biti spremljen u datoteku FiskalizacijaDEV.log u istu mapu gdje se nalazi i Raverus.FiskalizacijaDEV.EXE.exe
  • Snimanje - true ili false, ako je postavljeno na true u mapu gdje se nalazi Raverus.FiskalizacijaDEV.EXE.exe će biti kreirane mape "Zahtjev" i "Odgovor" koje će sadržavati sve zahtjeve poslane u CIS kao i sve primljene odgovore, kao XML datoteke. Naziv XML datoteke sadrži tip dokumenta i UUID
  • Naziv certifikata - ILI - Naziv datoteke sa certifikatom + Zaporka

 

Primjer pozivanja:
Raverus.FiskalizacijaDEV.EXE.exe RacunZahtjevPotpisi "" "D:\Users\Nino\Desktop\Fiskalizacija\NepotpisaniXmlRacun.xml" "D:\Users\Nino\Desktop\Fiskalizacija\PotpisaniXmlRacun.xml" true true "FISKAL 1"

 

 

 

Postoje dva moguća scenarija pozivanja:

  • kada se certifikat nalazi u Certificate Store-u
  • kada se certifikat nalazi u datoteci

 

1. Certifikat se nalazi u Certificate Store-u

Raverus.FiskalizacijaDEV.EXE.exe Operacija "CIS URL" "XML datoteka sa zahtjevom" "XML datoteka u koju se sprema odgovor" Logging Snimanje "Naziv (subject) certifikata"

  • Naziv (subjekt) certifikata - na primjer "FISKAL 1"

 

2. Certifikat se nalazi u datoteci

Raverus.FiskalizacijaDEV.EXE.exe Operacija "CIS URL" "XML datoteka sa zahtjevom" "XML datoteka u koju se sprema odgovor" Logging Snimanje "Datoteka sa certifikatom" "Zaporka"

  • Datoteka sa certifikatom - path i naziv datoteke sa certifikatom (PFX)
  • Zaporka - korištena zaporka (password)

 

Primjeri XML-a

Primjer XML-a za račun:

<?xml version="1.0" encoding="utf-8"?><tns:RacunZahtjev xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="signXmlId" xmlns:tns="http://www.apis-it.hr/fin/2012/types/f73"><tns:Zaglavlje><tns:IdPoruke>60c06a12-ff4c-4210-bf4f-d730866b1e68</tns:IdPoruke><tns:DatumVrijeme>22.10.2012T18:04:26</tns:DatumVrijeme></tns:Zaglavlje><tns:Racun><tns:Oib>44718633471</tns:Oib><tns:USustPdv>true</tns:USustPdv><tns:DatVrijeme>22.10.2012T18:04:26</tns:DatVrijeme><tns:OznSlijed>P</tns:OznSlijed><tns:BrRac><tns:BrOznRac>1</tns:BrOznRac><tns:OznPosPr>123</tns:OznPosPr><tns:OznNapUr>1</tns:OznNapUr></tns:BrRac><tns:Pdv><tns:Porez><tns:Stopa>25.00</tns:Stopa><tns:Osnovica>10.00</tns:Osnovica><tns:Iznos>2.50</tns:Iznos></tns:Porez></tns:Pdv><tns:IznosUkupno>12.50</tns:IznosUkupno><tns:NacinPlac>G</tns:NacinPlac><tns:OibOper>12345678900</tns:OibOper><tns:ZastKod>e4d909c290d0fb1ca068ffaddf22cbd0</tns:ZastKod><tns:NakDost>false</tns:NakDost></tns:Racun></tns:RacunZahtjev>

 

 

Primjer XML-a za poslovni prostor:

<?xml version="1.0" encoding="utf-8"?><tns:PoslovniProstorZahtjev xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="signXmlId" xmlns:tns="http://www.apis-it.hr/fin/2012/types/f73"><tns:Zaglavlje><tns:IdPoruke>1308ae74-0eb9-43c3-b91f-5c90d632bff4</tns:IdPoruke><tns:DatumVrijeme>22.10.2012T18:09:13</tns:DatumVrijeme></tns:Zaglavlje><tns:PoslovniProstor><tns:Oib>44718633471</tns:Oib><tns:OznPoslProstora>123</tns:OznPoslProstora><tns:AdresniPodatak><tns:Adresa><tns:Ulica>Ilica</tns:Ulica><tns:KucniBroj>1</tns:KucniBroj><tns:KucniBrojDodatak>c</tns:KucniBrojDodatak><tns:BrojPoste>10000</tns:BrojPoste><tns:Naselje>Zagreb</tns:Naselje><tns:Opcina>Centar</tns:Opcina></tns:Adresa></tns:AdresniPodatak><tns:RadnoVrijeme>od 8 do 8</tns:RadnoVrijeme><tns:DatumPocetkaPrimjene>22.10.2012</tns:DatumPocetkaPrimjene></tns:PoslovniProstor></tns:PoslovniProstorZahtjev>

 

VAŽNOObratiti pažnju na OIB, koji mora biti isti kao i OIB u FISKAL certifikatu. Naravno, UUID, datum i vrijeme i ostale informacije se isto dinamički generiraju i svaki su puta drugačije - no - ovo su dva XML-a koja uredno prolaze, ako se samo na njima OIB promijeni.

Kod priprema XML-a, obratite pažnju na Id="signXmlId" uz RacunZahtjev ili PoslovniProstorZahtjev - ovaj podatak rutini za potpisivanje "objašnjava" koji dio XML poruke treba digitalno potpisati


RacunZahtjevPotpisi

Last edited Dec 1, 2012 at 11:41 AM by nrasinec, version 9

Comments

No comments yet.