Forum » Programiranje » Davčne blagajne
Davčne blagajne
ivanhoe5x ::
Na spletni strani FURS-a je navedeno:
Storno za račun Navaden račun z dvema stopnjama DDV. Ok. V tem xml-u so vse vrednosti pozitivne. Je to napaka? Ali je to dejansko tako? Meni bi bilo logično če bi bile pri storno vrednosti negativne
Na strani sta torej dva storna. Ta ki sem ga omenil zgoraj in pa:
Storno za RAČUN4. Z elektronskim računom se spreminja elektronski račun
Ali je račun izdan in potrjen na FURS, ali je to elektronski račun? Namreč ne vem kateri storno naj implementiram. Za račune sem implementiral navaden račun z dvema stopnjama DDV.
Ve kdo kaj izbrati?
Storno za račun Navaden račun z dvema stopnjama DDV. Ok. V tem xml-u so vse vrednosti pozitivne. Je to napaka? Ali je to dejansko tako? Meni bi bilo logično če bi bile pri storno vrednosti negativne
Na strani sta torej dva storna. Ta ki sem ga omenil zgoraj in pa:
Storno za RAČUN4. Z elektronskim računom se spreminja elektronski račun
Ali je račun izdan in potrjen na FURS, ali je to elektronski račun? Namreč ne vem kateri storno naj implementiram. Za račune sem implementiral navaden račun z dvema stopnjama DDV.
Ve kdo kaj izbrati?
DamijanD ::
Eno vsebinsko vprašanje na temo darilnih bonov:
Gre za splošne bone.
Trenutno imamo to rešeno tako, da se ob prodaji bona izda normalni račun. Ko se ta bon vnovči, pa se v ozadju naredi negativni račun tega računa ter izda normalni račun za blago/storitve, kjer je za plačilo zmanjšano za vrednost bona. Mislim, da so bila taka navodila računovodje kako naj bi zadeva delovala.
Ali je ta postopek sedaj še vedno ok? Pač potrdil bi vse 3 račune (drugi (neg. račun) bi imel označeno, da se nanaša na prvi račun - dejansko bi bil to nekakšen storno prvega računa)
Gre za splošne bone.
Trenutno imamo to rešeno tako, da se ob prodaji bona izda normalni račun. Ko se ta bon vnovči, pa se v ozadju naredi negativni račun tega računa ter izda normalni račun za blago/storitve, kjer je za plačilo zmanjšano za vrednost bona. Mislim, da so bila taka navodila računovodje kako naj bi zadeva delovala.
Ali je ta postopek sedaj še vedno ok? Pač potrdil bi vse 3 račune (drugi (neg. račun) bi imel označeno, da se nanaša na prvi račun - dejansko bi bil to nekakšen storno prvega računa)
inkanet ::
@JerKoJ in @Yoda Master: hvala obema sedaj dela
@ivanhoe5x: V obeh primerih na spletni strani FURS so v XMLju negativne vrednosti.
@ivanhoe5x: V obeh primerih na spletni strani FURS so v XMLju negativne vrednosti.
perci ::
DamijanD: Če gre za "splošni" darilni bon (pač neka vrednost) gre za menjavo plačilnega sredstva in ob tem sploh ni potrebno izdati računa. Je pa potem potrebno izdati račune ob samem plačilu z bonom.
Zgodovina sprememb…
- spremenil: perci ()
thor43 ::
Na spletni strani FURS-a je navedeno:
Storno za račun Navaden račun z dvema stopnjama DDV. Ok. V tem xml-u so vse vrednosti pozitivne. Je to napaka? Ali je to dejansko tako? Meni bi bilo logično če bi bile pri storno vrednosti negativne
Na strani sta torej dva storna. Ta ki sem ga omenil zgoraj in pa:
Storno za RAČUN4. Z elektronskim računom se spreminja elektronski račun
Ali je račun izdan in potrjen na FURS, ali je to elektronski račun? Namreč ne vem kateri storno naj implementiram. Za račune sem implementiral navaden račun z dvema stopnjama DDV.
Ve kdo kaj izbrati?
Kolikor jaz vidim so v primeru "Navaden racun z dvema stopnjama DDV", vrednosti negativne?
Pardon. Nisem videl da je bilo na vprasanje ze odgovorjeno :)
Zgodovina sprememb…
- spremenilo: thor43 ()
DamijanD ::
DamijanD: Če gre za "splošni" darilni bon (pač neka vrednost) gre za menjavo plačilnega sredstva in ob tem sploh ni potrebno izdati računa. Je pa potem potrebno izdati račune ob samem plačilu z bonom.
Ja to sem uspel razbrati iz FAQ-115. Ampak a je moj opisan postopek napačen oz. v nasprotju z zakonom (torej, če ni potrebno izdati računa, ali je narobe, če ga izdaš?). Sedaj je nekdo lahko hkrati (na istem računu) kupil 2x sendvič in en darilni bon.
perci ::
Se pravi ob dobavi dejanskega blaga/storitve narediš dobropis v znesku koriščenja bona (npr 70 od 100 celotne vrednosti bona) in izdaš račun v isti vrednosti?
pmetod ::
Najlepša hvala, deluje.
StratoFlier je izjavil:
@pmetod
Za STAR TSP100 (TSP143) tole dela (desetiško):
27,29,121,83,48,2
27,29,121,83,49,1
27,29,121,83,50,5
27,29,121,68,49,0,60,0
"QR 60 številk"
10,27,29,97,1,27,29,121,80,27,29,97,0
10,10,10,10,10,10,27,100,48
abraxas ::
Zanima me, kako preveriti, če je izračunana ZOI koda pravilna?
Namreč - nobenega od XML primerov v dokumentaciji se seveda ne da ponoviti, ker je v izačun ZOI vpleteno digitalno potrdilo.
Ali je pridobitev EOR oznake zagotovilo, da je ZOI pravilna?
Namreč - nobenega od XML primerov v dokumentaciji se seveda ne da ponoviti, ker je v izačun ZOI vpleteno digitalno potrdilo.
Ali je pridobitev EOR oznake zagotovilo, da je ZOI pravilna?
JerKoJ ::
Tale zoi tudi meni ni cist jasn - kolikor zastopim celoten postopek, noben ne more ugotovit, ce si si ga preprosto izmislil. Noben drug namreč nima privatnega dela ključa certifikata1 in zato od enakih vhodnih podatkih ne more naredit digitalnega podpisa. Ker gre pol zadeva še čez MD5 pa se podpisa tudi preverit ne da.
A to pomeni, da bo inspektor prisel do tebe in ti rekel, da zgradi podpis iz podatkov na racunu, ki je veljaven in ki da isti MD5?
Kaj ce zgubis privatni kljuc (menjas certifikate vsak dan/teden)?
Da je zadeva cudna je razvidnmo tudi v dokumentaciji, kjer je oblika datuma navedena sele v kodi za Javo in C# ne pa v tekstu.
1Glede na način izdaje certifikata (produkcijskega) - dobiš p12 s kriptiranim privatnim ključem - ima CA (FURS) tudi tvoj privatni ključ. Tako da tukaj je zadeva pa sploh zelo sumljiva. Vsak normalen CA zgradi certifikat tako, da client zgenerira par ključev, zgradi ustrezen certifikat, CA ga pa podpiše (in nima privatnega ključa). Če imajo privatni ključ za potrebe testiranja zoi je to popolnoma nespremenljivo, ker potem nikoli ne veš, kaj s tem ključem še delajo.
A to pomeni, da bo inspektor prisel do tebe in ti rekel, da zgradi podpis iz podatkov na racunu, ki je veljaven in ki da isti MD5?
Kaj ce zgubis privatni kljuc (menjas certifikate vsak dan/teden)?
Da je zadeva cudna je razvidnmo tudi v dokumentaciji, kjer je oblika datuma navedena sele v kodi za Javo in C# ne pa v tekstu.
1Glede na način izdaje certifikata (produkcijskega) - dobiš p12 s kriptiranim privatnim ključem - ima CA (FURS) tudi tvoj privatni ključ. Tako da tukaj je zadeva pa sploh zelo sumljiva. Vsak normalen CA zgradi certifikat tako, da client zgenerira par ključev, zgradi ustrezen certifikat, CA ga pa podpiše (in nima privatnega ključa). Če imajo privatni ključ za potrebe testiranja zoi je to popolnoma nespremenljivo, ker potem nikoli ne veš, kaj s tem ključem še delajo.
Zgodovina sprememb…
- spremenil: JerKoJ ()
JerKoJ ::
Še update: Na dev okolju sem probal poljubne ZOI - se vec dopusca tudi non-hex znake vazno je le, da je niz dolzine 32. Sem uspeno postal zoi 'Tukaj je vazn le da je 32 znakov' pa je slo cez in sme dobil EOR (testirano za JSON).
perci ::
Point je v tem, da si račun z nekim ZOI lahko naredil samo ti. In če bo treba to kdaj preverit (recimo, da bi kdo zatrjeval, da nekega računa ni izdal), se da te stvari preverit pri izdajatelju samem, na način kot si opisal.
FURS pa nima privatnih ključev - konec koncev ne izdaja FURS certifikatov ampak MJU. Zdej, a so oni resen CA pa ne bi komentiral
FURS pa nima privatnih ključev - konec koncev ne izdaja FURS certifikatov ampak MJU. Zdej, a so oni resen CA pa ne bi komentiral
n7 ::
Tudi jaz imam težavo z napako "Digitalni podpis ni ustrezen".
Ne vem če ma to sicer veze, a razlika med mojim in FURSovim XMLom je podvojen namespace:
Skratka, xmlns:fu="http://www.fu.gov.si/ je vsebovan tudi v fu:BusinessPremiseRequest.
Ko kreiram XmlElement, uporabim sledeč ukaz (kakšna drua ideja?):
Kasneje XmlDocument podpišem (funkcija SignXmlSha256() prekopirana iz BlagajneSample), v SOAP pa potem kar zlepim skupaj:
Se komu sanja, kaj delam narobe?
Ne vem če ma to sicer veze, a razlika med mojim in FURSovim XMLom je podvojen namespace:
<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fu="http://www.fu.gov.si/" xmlns:xd="http://www.w3.org/2000/09/xmldsig#"> <soapenv:Body> <fu:BusinessPremiseRequest Id="test" xmlns:fu="http://www.fu.gov.si/"> ... </fu:BusinessPremiseRequest> </soapenv:Body> </soapenv:Envelope>
Skratka, xmlns:fu="http://www.fu.gov.si/ je vsebovan tudi v fu:BusinessPremiseRequest.
Ko kreiram XmlElement, uporabim sledeč ukaz (kakšna drua ideja?):
XmlElement root = prijava.CreateElement("fu", "BusinessPremiseRequest", "http://www.fu.gov.si/");
Kasneje XmlDocument podpišem (funkcija SignXmlSha256() prekopirana iz BlagajneSample), v SOAP pa potem kar zlepim skupaj:
soapEnvelop.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8""?><soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:fu=""http://www.fu.gov.si/"" xmlns:xd=""http://www.w3.org/2000/09/xmldsig#""><soapenv:Body>" + XmlDocument + "</soapenv:Body></soapenv:Envelope>");
Se komu sanja, kaj delam narobe?
sandimevlja ::
No pa se sem še jaz našel čas za to...jap pozno. Ampak dobivam: C100 Napaka pri obdelavi sporočila, pri registraciji. Je še kdo naletel na podobne težave in kakšni so bili vrzoki?
se popravljam S100
Tudi jaz sem dobil isto s100 napako - razlog je bil presledek za tagom v xml-ju. Lahko pa je seveda karkoli podobnega.
VKR77 ::
"n7 :: danes, 00:04:50
Tudi jaz imam težavo z napako "Digitalni podpis ni ustrezen".
Kasneje XmlDocument podpišem (funkcija SignXmlSha256() prekopirana iz BlagajneSample), v SOAP pa potem kar zlepim skupaj:"
Imao sam istu grešku dok nisam potpisao cijeli XML sa envelopom ili možda soap header ako nije odgovarajući..
Tudi jaz imam težavo z napako "Digitalni podpis ni ustrezen".
Kasneje XmlDocument podpišem (funkcija SignXmlSha256() prekopirana iz BlagajneSample), v SOAP pa potem kar zlepim skupaj:"
Imao sam istu grešku dok nisam potpisao cijeli XML sa envelopom ili možda soap header ako nije odgovarajući..
abraxas ::
Zanima me, kako validirate XMLe pred pošiljanjem na FURS.
Sam v največkrat uporabljam kar command-line program XmlStarlet
Je dokaj preprosto: z ukazom "xml val" podaš dva parametra (XSD shemo in XML file) in to je to.
Doslej je to vedno delovalo, pri FURSovih xml-ih pa mi FiscalVerificationSchema.xsd ne deluje oz. se vede dokaj čudno.
Če npr. naredim takole_
xml val -e --xsd FiscalVerificationSchema.xsd MojRacun.xml
se program nekam dolgo motovili, potem pa izpljune par "Failed to locate a shema http://www.w3.org/TR/2002/REC-xmldsig-c... sporočil.
Hm?
Sam v največkrat uporabljam kar command-line program XmlStarlet
Je dokaj preprosto: z ukazom "xml val" podaš dva parametra (XSD shemo in XML file) in to je to.
Doslej je to vedno delovalo, pri FURSovih xml-ih pa mi FiscalVerificationSchema.xsd ne deluje oz. se vede dokaj čudno.
Če npr. naredim takole_
xml val -e --xsd FiscalVerificationSchema.xsd MojRacun.xml
se program nekam dolgo motovili, potem pa izpljune par "Failed to locate a shema http://www.w3.org/TR/2002/REC-xmldsig-c... sporočil.
Hm?
abraxas ::
perci ::
A kazni si je kdo pogledal? Sprašujem zato, ker vidim, da nekateri čudne ideje dobivate in računate, da bo šlo kar skozi.
JerKoJ ::
Point je v tem, da si račun z nekim ZOI lahko naredil samo ti. In če bo treba to kdaj preverit (recimo, da bi kdo zatrjeval, da nekega računa ni izdal), se da te stvari preverit pri izdajatelju samem, na način kot si opisal.
ZOI lahko narediš samo ti, problem je v tem, da tudi preveriš lahko samo ti in noben drug tudi inšpektor ne. Torej ZOI ti lahko služi, da ti dokažeš ostalim, da si račun res naredil ti. Drugi ZOI-ja ne morejo uborabiti proti tebi, saj ne morejo dokazati nič (torej če ti trdiš, da računa nisi izdal, ostali ne morejo tega zanikati). S tega stališča pravim, da je praktično vseeno ali uporabiš datum pri gradnji ZOI v pravilni obliki ali drugačni, ali uporabiš drug vrstni red parametrov... oziroma če si ZOI preprosto izmisliš. S tem nikogar ne napeljujem na idejo, da naj to res počne, le pogled iz teoretičnega stališča...
Strinjam se tudi, da napak v shemi ne smeš izkoriščati - ter kršenje teh lukenj ti lahko dokažejo, ZOI pač ne.
perci ::
To, kar si povedal, drži.
Zato bodo pa inšpektorji tudi na terenu in bodo izvajali prikrite nakupe. In če bo dobil tak račun, kjer bo izmišljen ZOI...za katerega bo zavezanec trdil, da ni njegov - bo kazen vzgojna. Taka, da boš lahko kar zaprl firmo.
Pa v bistvu niti ne gre za napako v shemi. Bolj gre za minus, ki se ga je identificiralo in sprejelo.
Kako pa bi ti dokazoval identiteto računa v tem konceptu?
Zato bodo pa inšpektorji tudi na terenu in bodo izvajali prikrite nakupe. In če bo dobil tak račun, kjer bo izmišljen ZOI...za katerega bo zavezanec trdil, da ni njegov - bo kazen vzgojna. Taka, da boš lahko kar zaprl firmo.
Pa v bistvu niti ne gre za napako v shemi. Bolj gre za minus, ki se ga je identificiralo in sprejelo.
Kako pa bi ti dokazoval identiteto računa v tem konceptu?
Zgodovina sprememb…
- spremenil: perci ()
microera ::
Poslovni prostor lahko prijavite tudi prek mini blagajne, mimogrede.
Je res... velja za miniBlagajna
Kako pa določimo SoftwareSupplier?
(ponudnik SW oz. vzdrževalec programske opreme)
Tega nisem zasledil?!
LP
www.microera.si
www.microera.si
veqlargh ::
OJ.
Eno vprašanje/problem. V produkciji sem poizkusil prijavit poslovni prostor. Sicer dobim response code 200 ampak je odgovor iz FURS strežnika čisto skremblan, samo neke grabljice itd... mi potem zaruži XML parser, da pač to ni XML :D Logično. Na testu dobim lep SOAP odgovor. Torej lahko predvidevam, da je težava pri njih. Zanima me samo, če ima še kdo podobne probleme. SIcer pri prijavi poslovnega prostora načeloma niti nebi rabil gledat odgovora (rabiš zaradi napak, ampak ni pa EOR-ja ali kaj takega) in bi lahko ignoriral, samo mislim, da bo enako tudi pri računu.
Skratka, lahko kdo na hitro preveri kakšen odgovor dobi pri prijavi poslovnega prostora na prod fursu?
Moj izgleda nekako takole:
Nisem limal vsega. Na testu pa dobim lepo:
Zanimivo, čeprav mi ni preveč smešno :)
Eno vprašanje/problem. V produkciji sem poizkusil prijavit poslovni prostor. Sicer dobim response code 200 ampak je odgovor iz FURS strežnika čisto skremblan, samo neke grabljice itd... mi potem zaruži XML parser, da pač to ni XML :D Logično. Na testu dobim lep SOAP odgovor. Torej lahko predvidevam, da je težava pri njih. Zanima me samo, če ima še kdo podobne probleme. SIcer pri prijavi poslovnega prostora načeloma niti nebi rabil gledat odgovora (rabiš zaradi napak, ampak ni pa EOR-ja ali kaj takega) in bi lahko ignoriral, samo mislim, da bo enako tudi pri računu.
Skratka, lahko kdo na hitro preveri kakšen odgovor dobi pri prijavi poslovnega prostora na prod fursu?
Moj izgleda nekako takole:
oXY"˘Ę~÷Wtô<zm6QśčîĹ",,, Â>,˛É*üú<Ú=ÓsćLś{;˘#Š?/łrŻ,_˙ş?ÉSë--U"goĎČüüägnîEYđö?këńü×űkoŰ...źuß™?ő"ĽđźF(R)?úţA~{ëşřAoú(C)]˝Ś>>?--Ľ Űň?ř çÎkĺýŕęşîĄĂî`+č( ű>> Ođ(C)ů{j^,Ľ}(C)˘/Ң--6<˛Ş?3×ţi™{ýűë(C)ůN6U"ůUu+ý4Ş|ŐŻŠ<<<ü'nTÓłkűůŽÚř?ç--÷Ą8,íŔçč÷o<şžíúł,ăłąg{ł?Úł>_+`ę˝Bż°ÜĐvíkQ꿣0,ĎtŻ4xőÇľcđţ0yúýďŽřPçźö§˝îŁ łë?ŢCđ ^ßF<<o\ľÇe§üýo˛ł<<\;?>>óEôë0÷ž@äeT?é??ÔÔGT+šŤbg.2Ďf7 Ś!ř3ôţS˙EÚ]<˙Tp-ćĄ˙?ěYÚ(ľ¸ÉSý"_Ž)ě?é*÷öüí#zZigŐ)/ÓęËú_űĹźIěÍŞOťoB_EÓQŕWő˙iʨí?ź<Dě¤ńßiŇ...d?É"?PyZ--BŇ-W÷úśš?}ÚâY€đ...ůö }ĺ|...~8b\Ťâ??€áŐ˝,šž: ÷¸ÔŁÓr?í+8xmȸ^*â>ŽrfĎ,JV?-<CŤÖ>>Ć?HëÁ?Ó>>ć%5wXWťXs8T-ćKîAÚräĆ,ŕÔŰ[Çé"\žäĄŻDÓ8MĂxŇĄYMYPeP<<í9cqťâ9§"ĘćÝ"
Nisem limal vsega. Na testu pa dobim lepo:
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:fu="http://www.fu.gov.si/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><fu:BusinessPremiseResponse Id="data"><fu:Header><fu:MessageID>64ec4eda-8b63-4ad7-b81f-d959a7e2ea4f</fu:MessageID><fu:DateTime>2015-12-09T09:51:23</fu:DateTime>...
Zanimivo, čeprav mi ni preveč smešno :)
MH0 ::
System sprejme račun brez OperatorTaxNumber tudi, če mu ne postaviš ForeignOperator flag-a.
MH0, tole je sicer zanimivo, ampak prepričan sem, da bo to jasen signal dacarskim forenzikom, da obtožijo programsko hišo za napačno delovanje programa in potem bo rompompom.
Sintaktično pravilnost podatkov mora preverjati sistem, ki podatke prevzema. Nikakor jih ne more sistem, ki jih pošilja. Nič ne rečem, če bi pošiljal lažne podatke. Skratka shranjujte si podpisano komunikacijo, ker to na drugi strani je bolj žalost od projekta. :-)
Tech2k ::
A mogoče kdo ve kako odpravit sledečo napako na win server 2008R2:
A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
in
A certificate chain could not be built to a trusted root authority.
Tole je za produkcijsko potrdilo, problem je v tem, da ima prvi request v dnevu zaradi tega preverjana timeout?
A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
in
A certificate chain could not be built to a trusted root authority.
Tole je za produkcijsko potrdilo, problem je v tem, da ima prvi request v dnevu zaradi tega preverjana timeout?
abraxas ::
OJ.
Eno vprašanje/problem. V produkciji sem poizkusil prijavit poslovni prostor. Sicer dobim response code 200 ampak je odgovor iz FURS strežnika čisto skremblan, samo neke grabljice itd... mi potem zaruži XML parser, da pač to ni XML :D Logično. Na testu dobim lep SOAP odgovor. Torej lahko predvidevam, da je težava pri njih. Zanima me samo, če ima še kdo podobne probleme. SIcer pri prijavi poslovnega prostora načeloma niti nebi rabil gledat odgovora (rabiš zaradi napak, ampak ni pa EOR-ja ali kaj takega) in bi lahko ignoriral, samo mislim, da bo enako tudi pri računu.
Skratka, lahko kdo na hitro preveri kakšen odgovor dobi pri prijavi poslovnega prostora na prod fursu?
Sicer na produkciji še nisem nič probal, sem pa na testu tudi dobival grabljice ob prijavi prostora.
Mislim, da je bil vzrok to, da sem imel v XML vnešeno drugačno davčno številko od tiste, na katero se je glasil certifikat.
Mogoče najprej preveri to.
veqlargh ::
abraxas: sem, samo če zafučkam davče ni javi, da davčna ni enaka tisti, s katero sem podpisoval. Bom pa še enkrat pogledal. Res hecno no.
Tech2k: Si nastavil pravi cer certifikat za prod okolje za TLS validacijo? blagajne.fu.gov.si.cer
Tech2k: Si nastavil pravi cer certifikat za prod okolje za TLS validacijo? blagajne.fu.gov.si.cer
n7 ::
"n7 :: danes, 00:04:50
Tudi jaz imam težavo z napako "Digitalni podpis ni ustrezen".
Kasneje XmlDocument podpišem (funkcija SignXmlSha256() prekopirana iz BlagajneSample), v SOAP pa potem kar zlepim skupaj:"
Imao sam istu grešku dok nisam potpisao cijeli XML sa envelopom ili možda soap header ako nije odgovarajući..
Hvala za idejo, sem sedaj naredil cel SOAP kot XmlDocument, kjer potem podpišem samo fu:BusinessPremiseRequest, in SOAP je sedaj identičen FURSovem primeru. Ampak napako, da podpis ni ustrezen pa še vedno dobim :(
Je kdo, ki bi prilepil svojo kodo za podpis, da malo primerjam?
Moja (praktično kopirana od FURSa) ne deluje;
namespace FURS { class XML { public static X509Store store = new X509Store(StoreLocation.LocalMachine); private XmlDocument _xmlDoc; public XmlDocument xmlDoc { get { return _xmlDoc; } } public void sign() { _xmlDoc = new XmlDocument(); CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"); _xmlDoc.PreserveWhitespace = true; string fileContent = File.ReadAllText(@"D:\\FURS\\SOAP_PRESIGN.xml", new System.Text.UTF8Encoding(false, true)); TextReader tr = new StringReader(fileContent); _xmlDoc.Load(tr); // Check arguments. if (_xmlDoc == null) throw new ArgumentException("xmlDoc"); // if (Key == null) // throw new ArgumentException("Key"); // Create a SignedXml object. SignedXml signedXml = new SignedXml(xmlDoc); X509Certificate2 cert = store.Certificates[1]; byte[] data = cert.GetPublicKey(); string base64 = Convert.ToBase64String(data); RSACryptoServiceProvider rsaCSP = (RSACryptoServiceProvider)cert.PrivateKey; CspParameters cspParameters = new CspParameters(); cspParameters.KeyContainerName = rsaCSP.CspKeyContainerInfo.KeyContainerName; cspParameters.KeyNumber = rsaCSP.CspKeyContainerInfo.KeyNumber == KeyNumber.Exchange ? 1 : 2; RSACryptoServiceProvider rsaAesCSP = new RSACryptoServiceProvider(cspParameters); signedXml.SigningKey = rsaAesCSP; //newKey; KeyInfo keyInfo = new KeyInfo(); KeyInfoX509Data keyInfoData = new KeyInfoX509Data(); keyInfoData.AddIssuerSerial(cert.Issuer, cert.SerialNumber); X509Extension extension = cert.Extensions[1]; AsnEncodedData asndata = new AsnEncodedData(extension.Oid, extension.RawData); keyInfoData.AddSubjectName(cert.SubjectName.Name); // Create a reference to be signed. Reference reference = new Reference(); reference.Uri = "#test"; reference.DigestMethod = @"http://www.w3.org/2001/04/xmlenc#sha256"; // Add an enveloped transformation to the reference. XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform(); reference.AddTransform(env); // Add the reference to the SignedXml object. signedXml.AddReference(reference); keyInfo.AddClause(keyInfoData); signedXml.KeyInfo = keyInfo; signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"; // Compute the signature. signedXml.ComputeSignature(); // Get the XML representation of the signature and save // it to an XmlElement object. XmlElement xmlDigitalSignature = signedXml.GetXml(); // Append the element to the XML document. XmlNode element; element = _xmlDoc.GetElementsByTagName("fu:BusinessPremiseRequest")[0]; element.AppendChild(xmlDigitalSignature); sigOK = signedXml.CheckSignature(); string outw = _xmlDoc.OuterXml; common.write(outw, "D:\\FURS\\SOAP_SIGNED.xml"); SOAP.sendSoap(_xmlDoc); } } }
Tech2k ::
veqlargh ::
Ostalih certifikatov jaz ne uporabljam, samo izdanega in zgoraj omenjenaga, ki ji nafilam v keystore in truststore. Meni je danes javljal (ko sem se končno spravil zajebavat s prod okoljem) najprej tvojo napako. Potem sem še 1x prenesel ta cer iz FURSa in sedaj dela. No, ECHO, poslovni prostor pa serje, računov ne smem testirat :)
EDIT: Čeprav, si mi dal mislit (za moj problem). Če naredim kot je opozoril abraxas in zamenjam davčno pa dobim odgovor OK, v lepi SOAP obliki in notri napako S005; Davčna številka v sporočilu ni enaka davčni številki iz digitalnega potrdila. Kaj za vraga no.
EDIT: Čeprav, si mi dal mislit (za moj problem). Če naredim kot je opozoril abraxas in zamenjam davčno pa dobim odgovor OK, v lepi SOAP obliki in notri napako S005; Davčna številka v sporočilu ni enaka davčni številki iz digitalnega potrdila. Kaj za vraga no.
Zgodovina sprememb…
- spremenil: veqlargh ()
Tech2k ::
Jaz sem dodal sigov-ca.cer v Trusted Root Certification Authorities store in izgleda da deluje.
https://technet.microsoft.com/en-us/lib...
https://technet.microsoft.com/en-us/lib...
veqlargh ::
No, jaz sem se zmenil, da lahko še račun potestiram. In res, izgleda, da mi poslovni prostor lepo registrira, ker če uporabim prej registriranega dobim pri računu takisto grabljice. Če vnesem nek poljuben poslovni prostor pa dobim ustrezno napako, berljivo :D
Grem še enkrat pregledat dokumentacijo, mogoče pa pravilne odgovore dodatno kodirajo, kaj pa vem :D
Grem še enkrat pregledat dokumentacijo, mogoče pa pravilne odgovore dodatno kodirajo, kaj pa vem :D
perci ::
Noben vas ne bo kaznoval, če boste v decembru testirali račune v produkciji. Itak je fajn, ker lahko potem testirate še storno teh računov :).
DamijanD ::
Jaz sem dodal sigov-ca.cer v Trusted Root Certification Authorities store in izgleda da deluje.
https://technet.microsoft.com/en-us/lib...
Če te pravilno razumem, je tebi samo prvi request sprožil Timeout, vsi naslednji so bili pa OK? Tak scenarij sem jaz imel, ko sem se nekaj igral z idejo, da bi naredil WebService proxy - prvi request je timeoutal, potem je pa delovalo... Mislim, da je bilo to na win10
d(-_-)b ::
"n7 :: danes, 00:04:50
Hvala za idejo, sem sedaj naredil cel SOAP kot XmlDocument, kjer potem podpišem samo fu:BusinessPremiseRequest, in SOAP je sedaj identičen FURSovem primeru. Ampak napako, da podpis ni ustrezen pa še vedno dobim :(
Meni je kar naenkrat začel vračati napako "Digitalni podpis ni ustrezen". Z več sreče kot pameti sem slučajno videl, da se je v FURS namespace nekako vrinil en presledek: "http:// www.fu.gov.si/" ...
n7 ::
Pri meni ni presledkov...
Imaš narejeno v C#? Lahko sprobaš s tole datoteko, če dobis OK odgovor? Da vsaj lociram ali je napaka v podpisovanju ali XMLu.
Imaš narejeno v C#? Lahko sprobaš s tole datoteko, če dobis OK odgovor? Da vsaj lociram ali je napaka v podpisovanju ali XMLu.
d(-_-)b ::
Mislim, da ti manjka xmlns:xsi namespace v Envelope. Jaz mam naslednje:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fu="http://www.fu.gov.si/" xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
Zgodovina sprememb…
- spremenilo: d(-_-)b ()
prtenjam ::
Je kdo, ki bi prilepil svojo kodo za podpis, da malo primerjam?
Tule je koda za podpisovanje: https://github.com/MPrtenjak/SLOTax/blo...
Matjaž Prtenjak
https://mnet.si
https://mnet.si
d(-_-)b ::
n7 ::
Super, hvala, bom sprobal!
Glede namespace-ov pa mislim da imam vse, datoteka v zgornjem postu je namreč za prijavo prostora in tam je en namespace manj kot pri računu.
Glede namespace-ov pa mislim da imam vse, datoteka v zgornjem postu je namreč za prijavo prostora in tam je en namespace manj kot pri računu.
veqlargh ::
No, mi je uspelo dognat kaj za vraga se dogaja... FURS mi na PROD okolju za OK request vrača gzip kodiran stream! Sem analiziral header, ki ga dobim in začudeno gledal. Na TESTu je encoding null in tudi na PROD je encoding null če slučajno request ni OK.
To govorim za komunikacijo preko HttpsUrlConnection objekta. Bom lepo GZIPInputStream uporabil, če je encoding v responsu.
Zanimivo :)
To govorim za komunikacijo preko HttpsUrlConnection objekta. Bom lepo GZIPInputStream uporabil, če je encoding v responsu.
Zanimivo :)
Zgodovina sprememb…
- spremenil: veqlargh ()
veqlargh ::
Sam sebe popravljam: pravzaprav je moj feller, sem imel pod Allowed-encodings gzip. Sem pobrisal vse pa je rešeno.
Gregorjo ::
ali ima kdo porblem z
S100 Sistemska napaka pri obdelavi sporočila. Oz ima kakšno idejo kaj bi to lahko bilo?
S100 Sistemska napaka pri obdelavi sporočila. Oz ima kakšno idejo kaj bi to lahko bilo?
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Davčne blagajne - PHPOddelek: Programiranje | 6240 (1286) | vsepocenv |
» | C# davčno potrjevanjeOddelek: Programiranje | 4485 (3954) | windigo |
» | E-računOddelek: Programiranje | 7583 (4346) | ivanhoe5x |
» | PHP davčna blagajnaOddelek: Programiranje | 8187 (6211) | brble |
» | [JAVA] HTTPS clientOddelek: Programiranje | 3197 (1927) | peterv6i |