| |
MTFiskal middleware agent TMS - potpisivanje računa na FINA serveru
autor Mladen Tukerić
MTFiskal middleware agent TMS - potpisivanje računa na FINA serveru
Prije korištenja MTFiskal programa potrebno je instalirati certifikate prema uputama od FINA-e. MTFiskal middleware agent je napisan u C#, autor je Mladen Tukerić TMS Mercur server agent je napisan u Perlu, autor je Jan Popović --------- Sadržaj - Opis
Tipovi poruka i odgovori - echo - sign - pp
Greške - Error codes Instalacija
---------- Opis --------- - Ingenico POS komunicira samo sa TMS server-om – mercur.cgi - MTFiskal middleware agent je napisan u C#, autor je Mladen Tukerić - TMS Mercur server agent je napisan u Perlu, autor je Jan Popović - TMS i MTFiskal komuniciraju preko http protokola (request/reposnse) - TMS sa HTTP GET u QUERY-u šalje parametre prema MTFiskal aplikaciji - MTFiskal sa HTTP reponsom šalje dvije varijable nazad na TMS status (listu kodova pošaljem) i xml dokument koji je primljen od strane Porezne uprave - U slučaju da je request tipa echo ili sign, zahtjev se prosljeđuje na poreznu upravu (APIS na FINA serveru) - TMS server također šalje zahtjev za poslovni prostor pp prema aplikaciji za komunikaciju sa poreznom upravom - MTFiskal middleware agent mora biti instaliran na Microsoft IIS serveru. U našem slučaju oba softwarska agenta za fiskalizaciju TMS i MTFiskal su na istom stroju. Middleware agent je u našem slučaju, serverski proces koji se koristi za upravljanje poslužiteljima koji nisu pokrenuti na Apache poslužitelju. Program MTFiskal je podešen da sam očita instalirane personalne (klijentske) certifikate sa file sistema, a ne iz Microsoft Certificate Storea.
......................................................................................... FINA potpisivanje - data flow: Slanje podataka trenutnog računa na potpisivanje: a. Kada Ingenico terminal šalje račun na potpis, Mercur TMS server proslijeđuje "Ingenico query"; b. MTFiskal zaprima "sign query" post, processira ga i šalje ga kao "SOAP poruku, potpisanu sa odgovarjaućim.p12 certifikatom" na FINA server c. FINA server vraća odgovor sa JIR šifrom (ili vraća error message), na MTFiskal d. Mercur TMS server šalje nazad na ingenico terminal JIR za taj račun ili grešku
JIR je specijalan string od 36 karaktera dobiven od porezne upraveu procesu fiskalnog potpisivanja. JIR - Jedinstveni identifikator računa.
Tipovi poruka i odgovori:
Ako u odgovoru postoji element xml u njemu se sadržan xml kodiran u Base64 string-u. Dekodiranje se može napraviti na ovoj stranic: http://www.motobit.com/util/base64-decoder-encoder.asp echo U query stringu potreban je samo parametar request=echo Request: URL?request=echo Response: status=0;text=ECHO;xml=Cjxzb2FwOkVudmVsb3BlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnNvYXA9Imh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvIj4KPHNvYXA6Qm9keT4KPHRuczpFY2hvUmVzcG9uc2UgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LmFwaXMtaXQuaHIvZmluLzIwMTIvdHlwZXMvZjczIEZpc2thbGl6YWNpamFTY2hlbWEueHNkICIgeG1sbnM6dG5zPSJodHRwOi8vd3d3LmFwaXMtaXQuaHIvZmluLzIwMTIvdHlwZXMvZjczIj5FQ0hPPC90bnM6RWNob1Jlc3BvbnNlPjwvc29hcDpCb2R5Pjwvc29hcDpFbnZlbG9wZT4= Decoded xml: <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <tns:EchoResponse xsi:schemaLocation="http://www.apis-it.hr/fin/2012/types/f73 FiskalizacijaSchema.xsd " xmlns:tns="http://www.apis-it.hr/fin/2012/types/f73">ECHO</tns:EchoResponse></soap:Body></soap:Envelope>
----- sign ----- varijable koje se koriste (poredak varijabli u query-u nije bitan) oib //OIB USustPdv//U sustavu PDV DatVrijeme //Datum i vrijeme izdavanja OznSlijed //Oznaka slijednosti BrOznRac //Brojčana oznaka računa OznPosPr //Oznaka poslovnogprostora OznNapUr //Oznaka naplatnog uređaja pdv //PDV (25.00~14.40~3.60) pnp //PNP (3.00~80.00~2.40) OstaliPor //Ostali porezi (Porez na luksuz~15.00~10.00~1.50) IznosOslobPdv //Iznos oslobođenja (Naknada za ambalažu~10.00) IznosMarza //Iznos na koji se odnosi poseban postupak oporezivanja marže IznosNePodlOpor //Iznos koji ne podliježe oporezivanju Naknade //Naknade IznosUkupno //Ukupan iznos NacinPlac //Način plaćanja OibOper //OIB operatera na naplatnom uređaju ZastKod //Zaštitni kod izdavatelja ovo računa aplikacija NakDost //Oznaka naknadne dostave računa ParagonBrRac //Oznaka paragon računa SpecNamj //Specifična namjena CerPassword //Passwor certifikata – opcionalan podatak, u slučaju da nije dostavljen koristi se OIB kao password Pdv, pnp, naknade, ostali porezi su skupovi koji su razdvojeni tildama „~“. Request: URL?request=sign&oib=36044044039&DatVrijeme=12.12.2013T17:44:36&OznSlijed=N&BrOznRac=1234567890&OznPosPr=POSL1&OznNapUr=12&pdv=(25.00~14.40~3.60)&pnp=(3.00~80.00~2.40)&OstaliPor=(Porez na luksuz~15.00~10.00~1.50)&IznosOslobPdv=12.00&IznosMarza=13.00&IznosNePodlOpor=11.00&Naknade=(Naknada za ambalažu~10.00)&IznosUkupno=150.00&NacinPlac=G&OibOper=36044044039&NakDost=0&ParagonBrRac=1234&SpecNamj=&CertPassword=36044044039 Response: status=0;id=8792ef43-49d0-4ebb-ab91-6098b95a751a;jir=5710ac51-7db3-422e-9c26-f267f70d1f25;zastCode=f70b095c130246ef1ebff48094045745;xml=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNvYXA6RW52ZWxvcGUgeG1sbnM6c29hcD0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPjxzb2FwOkJvZHk+PHRuczpSYWN1bk9kZ292b3IgSWQ9IkcweGMwMjcwMDgwLTREIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuYXBpcy1pdC5oci9maW4vMjAxMi90eXBlcy9mNzMgLi4vc2NoZW1hL0Zpc2thbGl6YWNpamFTY2hlbWEueHNkICIgeG1sbnM6dG5zPSJodHRwOi8vd3d3LmFwaXMtaXQuaHIvZmluLzIwMTIvdHlwZXMvZjczIj48dG5zOlphZ2xhdmxqZT48dG5zOklkUG9ydWtlPjg3OTJlZjQzLTQ5ZDAtNGViYi1hYjkxLTYwOThiOTVhNzUxYTwvdG5zOklkUG9ydWtlPjx0bnM6RGF0dW1WcmlqZW1lPjIwLjAxLjIwMTNUMTE6NTU6MTk8L3RuczpEYXR1bVZyaWplbWU+PC90bnM6WmFnbGF2bGplPjx0bnM6SmlyPjU3MTBhYzUxLTdkYjMtNDIyZS05YzI2LWYyNjdmNzBkMWYyNTwvdG5zOkppcj48U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4KPFNpZ25lZEluZm8+CiAgPENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSIgLz4KICA8U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIiAvPgogIDxSZWZlcmVuY2UgVVJJPSIjRzB4YzAyNzAwODAtNEQiPgogICAgPFRyYW5zZm9ybXM+CiAgICAgIDxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIgLz4KICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1IiAvPgogICAgPC9UcmFuc2Zvcm1zPgogICAgPERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIiAvPgogICAgPERpZ2VzdFZhbHVlPm5sQzJaeGNVSHllRWJ2RDZYUVBGNW9Pd3NxTT08L0RpZ2VzdFZhbHVlPgogIDwvUmVmZXJlbmNlPgo8L1NpZ25lZEluZm8+CiAgICA8U2lnbmF0dXJlVmFsdWU+Q0ZYdGhpOEJ3by9oM0ZTQVk4dXZZMkljbWVTUk1yRm9oWXdPa1pCUGZFK0hmeU5xamExRXZzb2JlWnAzVDkweE03NmR3cXpGb3BiV05WbThwbFlMS3dEbDRIY0FqVTNYVW4rVGxiK2hhZU5XdlNlVzMvS1ZsNFd1dUw2cmFEdjNaLzFPQkpyc0VhbFRoakE1MWZJY0ZMTitFcG1vekhIOXRlZ2tVTnpaZGkyUkcySVdNTk4vaFpBdWc3TXN0YzFmTGkxcytqRDR1N2ZSVFFXSzN3SkliZGlOWTVRcFJmQjVUd2phTkkxeEVjY1ExNnNqK2FCVkx4K2srRXdvWnFPUURJSEwvaXpQWDdoSE5rcFdmbVZwUisreWJqSHorMWFjYWxJNERxbEVPOFBhRVRRVjVEK3hISmZKR09ZNEI5ZGNDaXczbUNGenJXVEpIcWkyZ1FHa2N3PT08L1NpZ25hdHVyZVZhbHVlPjxLZXlJbmZvPjxYNTA5RGF0YT48WDUwOUNlcnRpZmljYXRlPk1JSUV4RENDQTZ5Z0F3SUJBZ0lFUHNzUWNUQU5CZ2txaGtpRzl3MEJBUVVGQURBck1Rc3dDUVlEVlFRR0V3SklVakVOTUFzR0ExVUVDaE1FUmtsT1FURU5NQXNHQTFVRUN4TUVSRVZOVHpBZUZ3MHhNakE1TWpZd09ERXhORGxhRncweE5EQTVNall3T0RReE5EbGFNSGd4Q3pBSkJnTlZCQVlUQWtoU01RMHdDd1lEVlFRS0V3UkdTVTVCTVEwd0N3WURWUVFMRXdSRVJVMVBNUkV3RHdZRFZRUUxFd2hRYjNOc2IzWnVhVEVnTUI0R0ExVUVDeE1YUVZCSlV5QkpWQ0JFTGs4dVR5NGdPREExTkRFek56SXhGakFVQmdOVkJBTVREV1pwYzJ0aGJHTnBjM1JsYzNRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUM4MVR0S3RKODRlbUNTL0hLN2dTb3ZqTmRsdVpXQjBEYklNcTNjQkZwT3BtdXJjYkRDSjFaMTdYaVBMYStVV1lJcXlBakhReURuRy9INGM1RWVHb2xpOXN3ejVRY1pGQm15WFRwU2QzR3VNUk9nVUFkNGJjdmJ3MS9IRE9ORTVjRThQTDExR0l5OGdpNUFOWmt1amFsWW14KzFJbW5oSHh4MUJoMlVKL2JjbDJlWFB0aWVCUUJ3dENsQVRTenNlQjVGRno4TGNTeWZ6TTdoMzlQc0FJWjBwOFl6SDdXKzMwN2d2Z3JKSFliL240QUR3bHhpZUhxYjVqNzREVkQwclVQY1VFNWQwblNaN2hmRWtXOHhJQ2dzMUx5NlZ1M3c3WjVNOHZiNFFtb1BubFQxRWFIQ1hpd2V1SzZ2amtVazhSUW1ZWTRsVEZCczh6SGlHN2g0bjliUEFnTUJBQUdqZ2dHaE1JSUJuVEFPQmdOVkhROEJBZjhFQkFNQ0JhQXdRZ1lEVlIwZ0JEc3dPVEEzQmdrcmZJaFFCUjhGQkFJd0tqQW9CZ2dyQmdFRkJRY0NBUlljYUhSMGNEb3ZMMlJsYlc4dGNHdHBMbVpwYm1FdWFISXZZM0J6THpDQnpnWURWUjBmQklIR01JSERNRUtnUUtBK3BEd3dPakVMTUFrR0ExVUVCaE1DU0ZJeERUQUxCZ05WQkFvVEJFWkpUa0V4RFRBTEJnTlZCQXNUQkVSRlRVOHhEVEFMQmdOVkJBTVRCRU5TVERjd2ZhQjdvSG1HVDJ4a1lYQTZMeTlrWlcxdkxXeGtZWEF1Wm1sdVlTNW9jaTl2ZFQxRVJVMVBMRzg5UmtsT1FTeGpQVWhTUDJObGNuUnBabWxqWVhSbFVtVjJiMk5oZEdsdmJreHBjM1FsTTBKaWFXNWhjbm1HSm1oMGRIQTZMeTlrWlcxdkxYQnJhUzVtYVc1aExtaHlMMk55YkM5a1pXMXZZMkV1WTNKc01Dc0dBMVVkRUFRa01DS0FEekl3TVRJd09USTJNRGd4TVRRNVdvRVBNakF4TkRBNU1qWXdPRFF4TkRsYU1COEdBMVVkSXdRWU1CYUFGSHBnSTQ1SW5USnJwT1V0M2JoWnRKVDhRbUtlTUIwR0ExVWREZ1FXQkJSZ0lKc1pldlNuNmtEdVN6Q2htYWE5U3FyNnNqQUpCZ05WSFJNRUFqQUFNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUNvNWtKV2FOamdTK1VHN1hRSHNIZXJzREZrNEs1Vy9ZMlBidWJhcnkwajNJd0pydmVIYlVSM0hPYjBLaVZlbkY2KzFGTDNzQ0kvMnRmSDN3U3N6V0w4R2tpdDhqVXVkVG81dkR5THFFVVhZREhsRlVCd3NldWRzUGtVeFBpUTZIdXVGZDNQaVVBV2YwMGNoWEQzOGVUamZhcE51NlZlUXQ0RU9SU08rckVYZGhXaWhWYjVIeEZJVlBUa3FIbXExS0lOd3RWOSt0aHdFM2hOTXdhY1JhNGd3VEIxTytqYWRWbEpRTXEra2d3bkxHTEJjd3IwVyt4MXllNk1QU1lFVXhTTkZHSFBHL2V2UDlEUkx3SnRSM25ndmxDRHVzbk8rQTc1Tm40MFZZY29Janc2RU4xVitwbEsrSGtMeWUwenpMc25ISVdUU0dmWjJzUVZHNXhDVVJpSTwvWDUwOUNlcnRpZmljYXRlPjxYNTA5SXNzdWVyU2VyaWFsPjxYNTA5SXNzdWVyTmFtZT5PVT1ERU1PLCBPPUZJTkEsIEM9SFI8L1g1MDlJc3N1ZXJOYW1lPjxYNTA5U2VyaWFsTnVtYmVyPjEwNTM0OTU0MDk8L1g1MDlTZXJpYWxOdW1iZXI+PC9YNTA5SXNzdWVyU2VyaWFsPjwvWDUwOURhdGE+PC9LZXlJbmZvPjwvU2lnbmF0dXJlPjwvdG5zOlJhY3VuT2Rnb3Zvcj48L3NvYXA6Qm9keT48L3NvYXA6RW52ZWxvcGU+
---- pp ----- Varijable oib //OIB OznPoslProstora //Oznaka poslovnog prostora ne smije biti razmaka u ovom polju jer FINA server odbija takav zahtjev Ulica //Mora biti popunjeno KucniBroj //Mora biti popunjeno KucniBrojDodatak //Mora biti popunjeno BrojPoste //Mora biti popunjeno Naselje //Mora biti popunjeno Opcina //Mora biti popunjeno RadnoVrijeme //Mora biti popunjeno DatumPocetkaPrimjene //Mora biti popunjeno SpecNamj //Opcionalno Request: ?request=pp&oib=36044044039&OznPoslProstora=Trgovina1234&Ulica=Avenija Marina Držića&KucniBroj=12&KucniBrojDodatak=11&BrojPoste=10000&Naselje=Zagreb&Opcina=Dubrava&RadnoVrijeme=Pon-Sub:08:00-21:00,Ned:09:00-14:00&DatumPocetkaPrimjene=01.03.2013&SpecNamj=&CertPassword=36044044039 Response: status=0;id=9ff99dcd-a4d8-4eea-ae6c-36fbb4f05601;xml=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNvYXA6RW52ZWxvcGUgeG1sbnM6c29hcD0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPjxzb2FwOkJvZHk+PHRuczpQb3Nsb3ZuaVByb3N0b3JPZGdvdm9yIElkPSJHMHhjMDI0YjA4MC00RCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LmFwaXMtaXQuaHIvZmluLzIwMTIvdHlwZXMvZjczIEZpc2thbGl6YWNpamFTY2hlbWEueHNkICIgeG1sbnM6dG5zPSJodHRwOi8vd3d3LmFwaXMtaXQuaHIvZmluLzIwMTIvdHlwZXMvZjczIj48dG5zOlphZ2xhdmxqZT48dG5zOklkUG9ydWtlPjlmZjk5ZGNkLWE0ZDgtNGVlYS1hZTZjLTM2ZmJiNGYwNTYwMTwvdG5zOklkUG9ydWtlPjx0bnM6RGF0dW1WcmlqZW1lPjE5LjAxLjIwMTNUMTk6MjA6MjY8L3RuczpEYXR1bVZyaWplbWU+PC90bnM6WmFnbGF2bGplPjxTaWduYXR1cmUgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPgo8U2lnbmVkSW5mbz4KICA8Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1IiAvPgogIDxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiIC8+CiAgPFJlZmVyZW5jZSBVUkk9IiNHMHhjMDI0YjA4MC00RCI+CiAgICA8VHJhbnNmb3Jtcz4KICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIiAvPgogICAgICA8VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sLWMxNG4tMjAwMTAzMTUiIC8+CiAgICA8L1RyYW5zZm9ybXM+CiAgICA8RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiIC8+CiAgICA8RGlnZXN0VmFsdWU+YzFKaUlSSEtWVkZpemFvdUF1RmJUV2xibldFPTwvRGlnZXN0VmFsdWU+CiAgPC9SZWZlcmVuY2U+CjwvU2lnbmVkSW5mbz4KICAgIDxTaWduYXR1cmVWYWx1ZT51ZFQrd24xcGl5MUxnV1JNZG9IQlB0dVVHWVRBS2dzQ0ladGt1dDc2UTl6UHloZGZPZWNHL0JBVkhVbmF5dTU1cDV4eE90WmN5ajN2Vms4S3JEaGtReGJLTTdONFUzMDFBR09BLzNBelc5RUcxVDB1aS9PRW1TUUdZTXZvRDMrUGdicUV5WE5Ibzg5amQ3b3grbWF5MnkyN29ZNHNxd2VzOXpvL0hncTFEcjBqQitsQVQ0U29hd2kwUGtlSG5WYlYzREJ5VFlPeDZzcXZKU2VyUzdjUTFTOWI5cGFjK0R5VFFTU3JqNHQ1R1JpTUY3Q3VpRXhnamxJUXBBV1RqTDQxTGpWYW81cFFzUDBIcjVBc1R3UXNPTmdOcEUzM2poRE44Z1VHMVp6TWxnbkxERUZXL2FEbXYzRFVoNXdwWmUyNE9vV3FhY1NHQmJQRC9WK2VFcVVDV3c9PTwvU2lnbmF0dXJlVmFsdWU+PEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+TUlJRXhEQ0NBNnlnQXdJQkFnSUVQc3NRY1RBTkJna3Foa2lHOXcwQkFRVUZBREFyTVFzd0NRWURWUVFHRXdKSVVqRU5NQXNHQTFVRUNoTUVSa2xPUVRFTk1Bc0dBMVVFQ3hNRVJFVk5UekFlRncweE1qQTVNall3T0RFeE5EbGFGdzB4TkRBNU1qWXdPRFF4TkRsYU1IZ3hDekFKQmdOVkJBWVRBa2hTTVEwd0N3WURWUVFLRXdSR1NVNUJNUTB3Q3dZRFZRUUxFd1JFUlUxUE1SRXdEd1lEVlFRTEV3aFFiM05zYjNadWFURWdNQjRHQTFVRUN4TVhRVkJKVXlCSlZDQkVMazh1VHk0Z09EQTFOREV6TnpJeEZqQVVCZ05WQkFNVERXWnBjMnRoYkdOcGMzUmxjM1F3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQzgxVHRLdEo4NGVtQ1MvSEs3Z1NvdmpOZGx1WldCMERiSU1xM2NCRnBPcG11cmNiRENKMVoxN1hpUExhK1VXWUlxeUFqSFF5RG5HL0g0YzVFZUdvbGk5c3d6NVFjWkZCbXlYVHBTZDNHdU1ST2dVQWQ0YmN2YncxL0hET05FNWNFOFBMMTFHSXk4Z2k1QU5aa3VqYWxZbXgrMUltbmhIeHgxQmgyVUovYmNsMmVYUHRpZUJRQnd0Q2xBVFN6c2VCNUZGejhMY1N5ZnpNN2gzOVBzQUlaMHA4WXpIN1crMzA3Z3ZnckpIWWIvbjRBRHdseGllSHFiNWo3NERWRDByVVBjVUU1ZDBuU1o3aGZFa1c4eElDZ3MxTHk2VnUzdzdaNU04dmI0UW1vUG5sVDFFYUhDWGl3ZXVLNnZqa1VrOFJRbVlZNGxURkJzOHpIaUc3aDRuOWJQQWdNQkFBR2pnZ0doTUlJQm5UQU9CZ05WSFE4QkFmOEVCQU1DQmFBd1FnWURWUjBnQkRzd09UQTNCZ2tyZkloUUJSOEZCQUl3S2pBb0JnZ3JCZ0VGQlFjQ0FSWWNhSFIwY0RvdkwyUmxiVzh0Y0d0cExtWnBibUV1YUhJdlkzQnpMekNCemdZRFZSMGZCSUhHTUlIRE1FS2dRS0ErcER3d09qRUxNQWtHQTFVRUJoTUNTRkl4RFRBTEJnTlZCQW9UQkVaSlRrRXhEVEFMQmdOVkJBc1RCRVJGVFU4eERUQUxCZ05WQkFNVEJFTlNURGN3ZmFCN29IbUdUMnhrWVhBNkx5OWtaVzF2TFd4a1lYQXVabWx1WVM1b2NpOXZkVDFFUlUxUExHODlSa2xPUVN4alBVaFNQMk5sY25ScFptbGpZWFJsVW1WMmIyTmhkR2x2Ymt4cGMzUWxNMEppYVc1aGNubUdKbWgwZEhBNkx5OWtaVzF2TFhCcmFTNW1hVzVoTG1oeUwyTnliQzlrWlcxdlkyRXVZM0pzTUNzR0ExVWRFQVFrTUNLQUR6SXdNVEl3T1RJMk1EZ3hNVFE1V29FUE1qQXhOREE1TWpZd09EUXhORGxhTUI4R0ExVWRJd1FZTUJhQUZIcGdJNDVJblRKcnBPVXQzYmhadEpUOFFtS2VNQjBHQTFVZERnUVdCQlJnSUpzWmV2U242a0R1U3pDaG1hYTlTcXI2c2pBSkJnTlZIUk1FQWpBQU1BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQ281a0pXYU5qZ1MrVUc3WFFIc0hlcnNERms0SzVXL1kyUGJ1YmFyeTBqM0l3SnJ2ZUhiVVIzSE9iMEtpVmVuRjYrMUZMM3NDSS8ydGZIM3dTc3pXTDhHa2l0OGpVdWRUbzV2RHlMcUVVWFlESGxGVUJ3c2V1ZHNQa1V4UGlRNkh1dUZkM1BpVUFXZjAwY2hYRDM4ZVRqZmFwTnU2VmVRdDRFT1JTTytyRVhkaFdpaFZiNUh4RklWUFRrcUhtcTFLSU53dFY5K3Rod0UzaE5Nd2FjUmE0Z3dUQjFPK2phZFZsSlFNcStrZ3duTEdMQmN3cjBXK3gxeWU2TVBTWUVVeFNORkdIUEcvZXZQOURSTHdKdFIzbmd2bENEdXNuTytBNzVObjQwVlljb0lqdzZFTjFWK3BsSytIa0x5ZTB6ekxzbkhJV1RTR2ZaMnNRVkc1eENVUmlJPC9YNTA5Q2VydGlmaWNhdGU+PFg1MDlJc3N1ZXJTZXJpYWw+PFg1MDlJc3N1ZXJOYW1lPk9VPURFTU8sIE89RklOQSwgQz1IUjwvWDUwOUlzc3Vlck5hbWU+PFg1MDlTZXJpYWxOdW1iZXI+MTA1MzQ5NTQwOTwvWDUwOVNlcmlhbE51bWJlcj48L1g1MDlJc3N1ZXJTZXJpYWw+PC9YNTA5RGF0YT48L0tleUluZm8+PC9TaWduYXR1cmU+PC90bnM6UG9zbG92bmlQcm9zdG9yT2Rnb3Zvcj48L3NvYXA6Qm9keT48L3NvYXA6RW52ZWxvcGU+
ZKI - Zaštitni kod računa Ingenico terminal, jer se on mora ispisati i u situaciji kada iz nekog razloga ne može komunicirati s TMS-om ili FINA-om. Ako MTFiskal zaprimi zaštitni kod uzme taj ZIK, ako ne onda ga on izračuna.
------------------------------- ERROR Responses -- Greške: ------------------------------- -1 : sistemska greška 0 : OK 701 : request nepostojeći tip <> (echo,sign,pp) 702 : fale podaci u requestu 703 : ne postoji certifikat za traženi OIB 704 : greška potpisivanja računa od strane FINA-e (sadrži polja status;error;xml) 705 : nepostojeća oznaka slijednosti 706 : pdv sequenca nije po modulu 3 707 : pnp sequenca nije po modulu 3 708 : ostali porezni podaci sequenca nije po modulu 4 709 : naknade sequenca nije po modulu 2 710 : nepostojeća oznaka načina plaćanja 711 : greška kod izračuna zaštitnog koda
-------------- Instalacija --------------
Server FINA root certifikat mora biti dodan pod trusted root certifikate. Server mora imati mogućnost pristupa na FINA server (otvoren port 8449 na Firewall-u): https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest MTFiskal.rar treba rapakirati u direktoriji i urediti web config varijable:
<appSettings> <!--URL do FINA web servisa--> <add key="WebServiceURL" value="https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest"/> <!--path do direktorija sa certifikatima. Certifikat mora biti u obliku OIB.pfx gdje je OIB isti kao iz certifikata. Pawwsord certifikata bi trebao biti OIB--> <add key="CertPath" value="D:\Programi\Fiskalizacija\Fiskalizacija\FiskalizacijaWeb\Certificates"/> <!--Želi li se logirati zahtjev i odgovor xml 1-DA, 0-NE--> <add key="Debug" value="1"/> <!--Path do direktorija za logiranje. User pod kojim se vrti web apliakcija mora imati write prava na ovaj direktorij--> <add key="LogPath" value="D:\Programi\Fiskalizacija\Fiskalizacija\FiskalizacijaWeb\Log"/> </appSettings>
|
|