Forum » Programiranje » Davčne blagajne
Davčne blagajne
prtenjam ::
Vprašanje glede davčne številke v QR kodi...
Logično se mi je zdelo, da se v QR kodo oz. pač v kodo zapiše davčna številka podjetja (ki je sicer vsebovana že v ZOI). In ker je že vsebovana v ZOI sem potem dobil informacijo, da naj bi se v kodo vpisovala davčna številka osebe, ki je račun izdala (torej davčna številka blagajnika/blagajničarke), kar se mi je že takrat zdelo sporno... Sedaj so informacije spet drugačne :(
No kakorkoli, tehnična navodila se mi tukaj zdijo dvoumna in zato vprašanje: Katero davčno številko torej vpisati v QRKodo? Ali davčno številko pravne osebe ali davčno številko blagajnika?
Hvala
Logično se mi je zdelo, da se v QR kodo oz. pač v kodo zapiše davčna številka podjetja (ki je sicer vsebovana že v ZOI). In ker je že vsebovana v ZOI sem potem dobil informacijo, da naj bi se v kodo vpisovala davčna številka osebe, ki je račun izdala (torej davčna številka blagajnika/blagajničarke), kar se mi je že takrat zdelo sporno... Sedaj so informacije spet drugačne :(
No kakorkoli, tehnična navodila se mi tukaj zdijo dvoumna in zato vprašanje: Katero davčno številko torej vpisati v QRKodo? Ali davčno številko pravne osebe ali davčno številko blagajnika?
Hvala
Matjaž Prtenjak
https://mnet.si
https://mnet.si
veqlargh ::
Pravne osebe. Kje pa si dobil informacijo, da se vpiše davčna št. osebe, ki izda račun? FURS?
prtenjam ::
Pravne osebe. Kje pa si dobil informacijo, da se vpiše davčna št. osebe, ki izda račun?
Razvijalci oz. uporabniki. Če bi dobil od FURS-a potem bi ne spraševal :)
Matjaž Prtenjak
https://mnet.si
https://mnet.si
perci ::
Tko kot je rekel veqlargh, DŠ pravne osebe (izdajatelja računa). Point tega je, da bo FURS imel podatek o davčnem zavezancu, katerega račun je bil skeniran (v primeru, da ni bil davčno potrjen).
bacardi ::
Se je kdo ukvarjal s podobnim problemom oz. ali pozna kdo kakšno simple rešitev?
- Imamo pravno osebo A, ki izdaja račune v svojem imenu in za svoj račun in le te v skladu z zakonom potrjuje.
- Potem imamo pa pravno osebo B, ki izdaja račune v tujem imenu za tuj račun (za pravno osebo A). Zanje zakon pravi, da mora le-ta sama potrjevati račune s svojim digitalnim potrdilom, v xmlju pa navede tudi davčno številko osebe A, za katero izdaja račune.
- Kako pa je v primerih, ko za pravno osebo B dela nek pogodbeni partner, npr. SP (pravna oseba C). Ali mora v takem primeru oseba C izdati in potrditi račun pod svojo davčno številko (kot izdajatelj računa), s svojim certifikatom in navesti da izdaja račun za pravno osebo A? Ali tak račun izda oseba b in samo navede davčno številko od fizične osebe iz pravne osebe C v polju OperatorTaxNumber?
Hvala.
- Imamo pravno osebo A, ki izdaja račune v svojem imenu in za svoj račun in le te v skladu z zakonom potrjuje.
- Potem imamo pa pravno osebo B, ki izdaja račune v tujem imenu za tuj račun (za pravno osebo A). Zanje zakon pravi, da mora le-ta sama potrjevati račune s svojim digitalnim potrdilom, v xmlju pa navede tudi davčno številko osebe A, za katero izdaja račune.
- Kako pa je v primerih, ko za pravno osebo B dela nek pogodbeni partner, npr. SP (pravna oseba C). Ali mora v takem primeru oseba C izdati in potrditi račun pod svojo davčno številko (kot izdajatelj računa), s svojim certifikatom in navesti da izdaja račun za pravno osebo A? Ali tak račun izda oseba b in samo navede davčno številko od fizične osebe iz pravne osebe C v polju OperatorTaxNumber?
Hvala.
perci ::
Kako pa danes izgleda tak račun? Hočem rečt, dejmo nehat razmišljat o tem, da novi zakon tu kaj spreminja.
bacardi ::
Kako pa danes izgleda tak račun? Hočem rečt, dejmo nehat razmišljat o tem, da novi zakon tu kaj spreminja.
Danes na tem računu sploh ni navedene pravne osebe B ali C,temveč samo A.
Primer bencinske črpalke: Črpalko ima v najemu najemnik (s.p. ali d.o.o.), račun za bencin pa izda v imenu "Petrola".. Stranka dobi račun v imenu petrola, ne od servisa.
perci ::
Lej, to moraš sam vedt, kako izdajaš račune. Ali jih izdajaš v tujem imenu za tuj račun ali se kar pretvarjaš, da si Petrol?
Ali boš uporabil digitalno potrdilo od Petrola?
Ali boš uporabil digitalno potrdilo od Petrola?
Zgodovina sprememb…
- spremenil: perci ()
kovmat ::
A je še naletel na problem, da se ZOI koda začne z 0?
Problem nastane potem ko tako kodo pretvorimo v DEC in dobimo samo 38 mestno številko.
Delam v C# in sicer s kodo, ki jo kot primer navajajo na FURSovi tehnični strani.
Primer:
ZOI: 04dbd38a4cc73c561c9b0aca418664d6
Problem nastane potem ko tako kodo pretvorimo v DEC in dobimo samo 38 mestno številko.
Delam v C# in sicer s kodo, ki jo kot primer navajajo na FURSovi tehnični strani.
Primer:
ZOI: 04dbd38a4cc73c561c9b0aca418664d6
Zgodovina sprememb…
- spremenilo: kovmat ()
MH0 ::
Problem je samo, da so tudi za ta del spisali pomanjkljiva navodila. :-)
Smo o tem že govorili.
Smo o tem že govorili.
string k = System.Numerics.BigInteger.Parse("0" + rs.ZKI, NumberStyles.HexNumber).ToString().PadLeft(39, '0') + Global.Davcna + dt.ToString("yyMMddHHmmss"); k += Mod10AlaFurs(k);
SuperSQL ::
Ali mogoče kdo ve, kako odpravim sporočilo z napako "Digitalni podpis ni ustrezen"?
To sporočilo se mi pojavi samo pri pošiljanju računov, pri pošiljanju poslovnih prostorov ni nobenih napak.
Tako izgleda moje sporočilo računa (vse davčne sem spremenil v NNNNNNNN)
Pri tem dobim odgovor z napako "Digitalni podpis ni ustrezen", kljub temu da uporabljam isto kodo za podpis in pošiljanje obeh.
In tako izgleda XML poslovnega prostora predno pošljem:
Odogovor od tega je samo MessageID, ki se ujema s tistim, ki sem ga poslal in DateTime. Nobenih napak ni v tem odgovoru.
Že ogromno časa iščem rešitev ampak je ne najdem, je mogoče kdo imel iste probleme in ve za rešitev?
To sporočilo se mi pojavi samo pri pošiljanju računov, pri pošiljanju poslovnih prostorov ni nobenih napak.
Tako izgleda moje sporočilo računa (vse davčne sem spremenil v NNNNNNNN)
<?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#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header /> <soapenv:Body> <fu:InvoiceRequest> <fu:Header> <fu:MessageID>6b86d9b9-097d-460a-896c-d566faab3f60</fu:MessageID> <fu:DateTime>2015-11-17T09:48:58</fu:DateTime> </fu:Header> <fu:Invoice> <fu:TaxNumber>NNNNNNNN</fu:TaxNumber> <fu:IssueDateTime>2015-11-17T09:48:58</fu:IssueDateTime> <fu:NumberingStructure>B</fu:NumberingStructure> <fu:InvoiceIdentifier> <fu:BusinessPremiseID>Trgovina1</fu:BusinessPremiseID> <fu:ElectronicDeviceID>BLAG2</fu:ElectronicDeviceID> <fu:InvoiceNumber>201</fu:InvoiceNumber> </fu:InvoiceIdentifier> <fu:InvoiceAmount>66.71</fu:InvoiceAmount> <fu:PaymentAmount>66.71</fu:PaymentAmount> <fu:TaxesPerSeller> <fu:VAT> <fu:TaxRate>22.00</fu:TaxRate> <fu:TaxableAmount>23.14</fu:TaxableAmount> <fu:TaxAmount>5.09</fu:TaxAmount> </fu:VAT> </fu:TaxesPerSeller> <fu:OperatorTaxNumber>NNNNNNNN</fu:OperatorTaxNumber> <fu:ProtectedID>5bcc900979b088a469e7049ee10467bf</fu:ProtectedID> </fu:Invoice> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /> <Reference URI=""> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> <DigestValue>CqK5DS17tf2RS7mL/dZ4J2OTeKDDsR6vVSct7MWjP28=</DigestValue> </Reference> </SignedInfo> <SignatureValue>NC4FVjHZtwHv+W536O+IoNzmoBPrVTG8TYCJymuE25XwK6u0vmBN+rDsjJq6Um7J2egObek0wykzEgJpGv1Y7d8ZmV17XbFETN3IrUMYrrPf2vz9Og2X7QJmyEYVkcwX7/lSvm0Lrrn2cn3F/ly/m+8RfcmgdrBKwftXfctBOrsCZVte8vLzyIt056Gl5ekdGGHDc5ORbisiK8R/iLApsxQNr5SDW57LK77AMuRCtB+ZySfrp6tbu+AWR/HBO+vlWyG9SoIIjPeDvoOMmnFiPatXyRyBKvbG9tM8f1vEMXjXWXe1h7DI27CMPqRmbiEiBKuLI5KFuHtrTmvYso6Lkg==</SignatureValue> <KeyInfo> <X509Data> <X509IssuerSerial> <X509IssuerName>CN=Tax CA Test, O=state-institutions, C=SI</X509IssuerName> <X509SerialNumber>6590709512357687811</X509SerialNumber> </X509IssuerSerial> <X509SubjectName>CN=TESTNO PODJETJE 147, SERIALNUMBER=1, OU=NNNNNNNN, OU=DavPotRacTEST, O=state-institutions, C=SI</X509SubjectName> </X509Data> </KeyInfo> </Signature> </fu:InvoiceRequest> </soapenv:Body> </soapenv:Envelope>
Pri tem dobim odgovor z napako "Digitalni podpis ni ustrezen", kljub temu da uporabljam isto kodo za podpis in pošiljanje obeh.
In tako izgleda XML poslovnega prostora predno pošljem:
<?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> <fu:Header> <fu:MessageID>8f0f4451-2a71-41e6-9f1b-ff6dbca94475</fu:MessageID> <fu:DateTime>2015-11-17T10:04:48</fu:DateTime> </fu:Header> <fu:BusinessPremise> <fu:TaxNumber>NNNNNNNN</fu:TaxNumber> <fu:BusinessPremiseID>Trgovina1</fu:BusinessPremiseID> <fu:BPIdentifier> <fu:RealEstateBP> <fu:PropertyID> <fu:CadastralNumber>365</fu:CadastralNumber> <fu:BuildingNumber>12</fu:BuildingNumber> <fu:BuildingSectionNumber>3</fu:BuildingSectionNumber> </fu:PropertyID> <fu:Address> <fu:Street>Dunajska cesta</fu:Street> <fu:HouseNumber>24</fu:HouseNumber> <fu:HouseNumberAdditional>B</fu:HouseNumberAdditional> <fu:Community>Ljubljana</fu:Community> <fu:City>Ljubljana</fu:City> <fu:PostalCode>1000</fu:PostalCode> </fu:Address> </fu:RealEstateBP> </fu:BPIdentifier> <fu:ValidityDate>1990-08-25</fu:ValidityDate> <fu:SoftwareSupplier> <fu:TaxNumber>NNNNNNNN</fu:TaxNumber> </fu:SoftwareSupplier> </fu:BusinessPremise> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /> <Reference URI=""> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> <DigestValue>NQ0tIraMuNI1qdYxFtD2NI/83an9umeq55e1fsSAXxk=</DigestValue> </Reference> </SignedInfo> <SignatureValue>Xu5asojnUh31l9UmHnSnjqADX9yb3Y/857m5mimRxnAbXTMO1bKBpJr+y1GaHwXTF1GpmXaHH+iDTVnd2qn3hX3hxrwpIEX4Cuu1BoeE16p1ygyzwvYan+vMEJTRuD4qCwzz4xnb0t8j3HXapH0BV00kXL70bQvmYo6Ycj1I2wot2K6Gs+j61bvfd5qMIoWOOALBVfV2T+94S6omOpQ/+xlfPjYrK3hAwSNoYBoNnDnaFKwlPJgKlNCVaGDk3O1EDwbk8iNKkM2fOAcMtT+JGH3jDdRJNpYxkBF3+iZRg2WfrqKhid7aaWl1rMM8VPPpm/164zFsBkmu0OXhHc3lCw==</SignatureValue> <KeyInfo> <X509Data> <X509IssuerSerial> <X509IssuerName>CN=Tax CA Test, O=state-institutions, C=SI</X509IssuerName> <X509SerialNumber>6590709512357687811</X509SerialNumber> </X509IssuerSerial> <X509SubjectName>CN=TESTNO PODJETJE 147, SERIALNUMBER=1, OU=NNNNNNNN, OU=DavPotRacTEST, O=state-institutions, C=SI</X509SubjectName> </X509Data> </KeyInfo> </Signature> </fu:BusinessPremiseRequest> </soapenv:Body> </soapenv:Envelope>
Odogovor od tega je samo MessageID, ki se ujema s tistim, ki sem ga poslal in DateTime. Nobenih napak ni v tem odgovoru.
Že ogromno časa iščem rešitev ampak je ne najdem, je mogoče kdo imel iste probleme in ve za rešitev?
BOCo. ::
Ali mogoče kdo ve, kako odpravim sporočilo z napako "Digitalni podpis ni ustrezen"?
To sporočilo se mi pojavi samo pri pošiljanju računov, pri pošiljanju poslovnih prostorov ni nobenih napak.
Tako izgleda moje sporočilo računa (vse davčne sem spremenil v NNNNNNNN)
Odogovor od tega je samo MessageID, ki se ujema s tistim, ki sem ga poslal in DateTime. Nobenih napak ni v tem odgovoru.
Že ogromno časa iščem rešitev ampak je ne najdem, je mogoče kdo imel iste probleme in ve za rešitev?
V prvem XML-ju ti manjkajo podatki v headerju -
<soapenv:Header />.
Pa tudi Id boš moral dodati pri
<fu:BusinessPremiseRequest>ter pri
<fu:InvoiceRequest>Tako da boš imel zapisane elemente kot
<fu:BusinessPremiseRequest Id="data">
<fu:InvoiceRequest Id="data">Nato boš podpisal samo ta del XML-ja
<Reference URI="data">
vajenec ::
Postavljen imam WAMP (komunikacija z FURS-om bo preko PHP-ja) na WIN 7 in poskušam namestiti silne certifikate na ustrezna mesta pa do sedaj brez uspeha. A mi lahko prosim pomagate z nasvetom kam je potrebno dati posamezni certifikat, da se bo dalo komunicirati s FURS-om.
MH0 ::
A komu dela pregled poslanih računov preko https://blagajne-test.fu.gov.si:9002/ca...?
Kaj pojmuješ pod dela/ne dela?
To, da mi tam pokažejo json z base64 vsebino je približno tako kot, da ne deluje. :-)
_Sajmon_ ::
A komu dela pregled poslanih računov preko https://blagajne-test.fu.gov.si:9002/ca...?
Kaj pojmuješ pod dela/ne dela?
To, da mi tam pokažejo json z base64 vsebino je približno tako kot, da ne deluje. :-)
Meni se nič ne izpiše. Prazna stran...
_Sajmon_ ::
No, odgovor sem dobil sam: spletna stran za preverjanje računov očitno (doma) deluje, le v službi je neka blokada, zato nič ne prikaže.
SuperSQL ::
V prvem XML-ju ti manjkajo podatki v headerju -<soapenv:Header />.
Si mislil na to?
<fu:Header>V primerih je to prazno polje, tako kot sem jaz imel.
<soapenv:Header/>
Pa tudi Id boš moral dodati pri<fu:BusinessPremiseRequest>ter pri<fu:InvoiceRequest>Tako da boš imel zapisane elemente kot<fu:BusinessPremiseRequest Id="data"><fu:InvoiceRequest Id="data">
To sem sedaj dodal in tudi v referenci dodal isti ID.
<fu:InvoiceRequest Id="data">
Nato boš podpisal samo ta del XML-ja<Reference URI="data">
Tudi to sem imel že v kodi isto kot v C# primeru.
Tako pa izgleda ta del, s katero podpisuje (pač enostavno prevedeno v C++, _xmlDoc je nepodpisan xml)
// Create a SignedXml object. signedXml = gcnew SignedXml(_xmlDoc); //Get public key from certificate String ^ base64 = Convert::ToBase64String(certificate->GetPublicKey()); RSACryptoServiceProvider ^ rsaCSP = (RSACryptoServiceProvider ^)certificate->PrivateKey; CspParameters ^ cspParameters = gcnew CspParameters(); cspParameters->KeyContainerName = rsaCSP->CspKeyContainerInfo->KeyContainerName; cspParameters->KeyNumber = rsaCSP->CspKeyContainerInfo->KeyNumber == KeyNumber::Exchange ? 1 : 2; RSACryptoServiceProvider ^ rsaAesCSP = gcnew RSACryptoServiceProvider(cspParameters); signedXml->SigningKey = rsaAesCSP; //newKey; KeyInfo ^ keyInfo = gcnew KeyInfo(); KeyInfoX509Data ^ keyInfoData = gcnew KeyInfoX509Data(); keyInfoData->AddIssuerSerial(certificate->Issuer, certificate->SerialNumber); X509Extension ^ extension = certificate->Extensions[1]; AsnEncodedData ^ asndata = gcnew AsnEncodedData(extension->Oid, extension->RawData); keyInfoData->AddSubjectName(certificate->SubjectName->Name); // Create a reference to be signed. Reference ^ reference = gcnew Reference(); reference->Uri = "#data"; reference->DigestMethod = "http://www.w3.org/2001/04/xmlenc#sha256"; // Add an enveloped transformation to the reference. XmlDsigEnvelopedSignatureTransform ^ env = gcnew 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();
Problem je žal isti: registracija poslovnega prostora dela ampak pošiljanje računov pa ne zaradi napake S003 Digitalni podpis ni ustrezen
Zgodovina sprememb…
- spremenilo: SuperSQL ()
jambro ::
Pozdravljeni,
Naletel sem na tole temo in si drznil sposodit del PHP kode za ECHO.
XML dokument sem že podpisal s PHP-jem, zataknilo pa se je pri povezavi na https://blagajne-test.fu.gov.si:9002/v1...
Response, ki ga dobil, ali bolje ne dobim je tale: CODECURL: SSL certificate problem: self signed certificate in certificate chain
Zelo bi bil hvaležen, če bi mi zaupali kako ste se uprli tej težavi ;)
Hvala in lp, Rok
Naletel sem na tole temo in si drznil sposodit del PHP kode za ECHO.
XML dokument sem že podpisal s PHP-jem, zataknilo pa se je pri povezavi na https://blagajne-test.fu.gov.si:9002/v1...
<?php $url = 'https://blagajne-test.fu.gov.si:9002/v1/cash_registers'; $Cert = 'C:\\wamp\\www\\Davkarija\\examples\\keys\\test-tls.cer'; $xml_string = file_get_contents('testxml.xml'); $xml = new DOMDocument(); $xml->loadXML($xml_string); $header = array( "Content-Type: text/xml; charset=UTF-8", "Cache-Control: no-cache", "Pragma: no-cache", "SOAPAction: \"/echo\"" ); $conn = curl_init(); $settings = array( CURLOPT_URL => $url, CURLOPT_CONNECTTIMEOUT_MS => 3000, CURLOPT_TIMEOUT_MS => 3000, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $xml, CURLOPT_FRESH_CONNECT => true, CURLOPT_HTTPHEADER => $header, CURLOPT_SSLVERSION => 'CURL_SSLVERSION_TLSv1_2', // secure this! CURLOPT_SSL_VERIFYHOST => 2, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_CAINFO => $Cert ); curl_setopt_array($conn, $settings); if ($rawResponse = curl_exec($conn)) { print_r($rawResponse); } else { $status = curl_getinfo($conn,CURLINFO_HTTP_CODE); $errno = curl_errno($conn); throw new Exception('CODECURL: ' . curl_error($conn) . 'STATUS CODE: ' . $status); } echo "\n".$xml->saveXML(); //$client = new SoapClient("http://localhost/Davkarija/examples/keys/FiscalVerification.wsdl"); ?>
Response, ki ga dobil, ali bolje ne dobim je tale: CODECURL: SSL certificate problem: self signed certificate in certificate chain
Zelo bi bil hvaležen, če bi mi zaupali kako ste se uprli tej težavi ;)
Hvala in lp, Rok
theanswer3 ::
Še komu komunikacija s produkcijskimi certifikati ne deluje več? S testnim deluje vse ok.
SuperSQL ::
A ma mogoče še kdo težave z "neustreznim digitalnem potrdilu" samo pri pošiljanju računov in ne pri registraciji poslovnega prostora? Res je nerodno da tok daleč prideš s tem in na koncu več dni iščeš rešitev za en problem.
theanswer3 ::
A je produkcijski sistem že online? Oz. zakaj poskušaš s produkcijskih certifikatom?
Dobil sem namensko digitalno potrdilo za pravo podjetje (ne tisto, ki ga imamo za testiranje TESTNO PODJETJE XXX) S tistim deluje na testnem strežniku vse (prijava prostora in objava računov). S testnim mislim na: https://blagajne-test.fu.gov.si:9002/v1...
No z namenskim certifikatom tega novega podjetja pa sem pravtako hotel testirati na https://blagajne-test.fu.gov.si:9002/v1... pa se povezava noče vzpostaviti, isto tudi če zamenjam na https://blagajne-test.fu.gov.si:9003/v1...
Zdaj načeloma bi na testnem vsaj moralo delovati ... ali ne?
Nisem spremljal sedaj en mesec če se je kaj spreminjalo, samo mi je čudno, da bi z enim certifikatom delovalo z drugim pa ne.
theanswer3 ::
A očitno ni res. Piše v dokumentaciji: "V produkcijskem okolju ni dovoljeno pošiljanje sporočil podpisanih s testnimi potrdili in obratno."
Tako da očitno res samo strežnik za produkcijo še ni na red.
Tako da očitno res samo strežnik za produkcijo še ni na red.
kzendra ::
theanswer3 je izjavil:
A je produkcijski sistem že online? Oz. zakaj poskušaš s produkcijskih certifikatom?
Dobil sem namensko digitalno potrdilo za pravo podjetje (ne tisto, ki ga imamo za testiranje TESTNO PODJETJE XXX) S tistim deluje na testnem strežniku vse (prijava prostora in objava računov). S testnim mislim na: https://blagajne-test.fu.gov.si:9002/v1...
No z namenskim certifikatom tega novega podjetja pa sem pravtako hotel testirati na https://blagajne-test.fu.gov.si:9002/v1... pa se povezava noče vzpostaviti, isto tudi če zamenjam na https://blagajne-test.fu.gov.si:9003/v1...
Zdaj načeloma bi na testnem vsaj moralo delovati ... ali ne?
Nisem spremljal sedaj en mesec če se je kaj spreminjalo, samo mi je čudno, da bi z enim certifikatom delovalo z drugim pa ne.
To je produkcijsko digitalno potrdilo in to ne deluje na testnem serverju.
kzendra ::
Tisti ki delate v C#, kako generirate QR kodo?
Jaz imam zunanji generator kater mi ni všeč pa bi ga rad nadomestil z čem boljšim pa ne najdem...
Jaz imam zunanji generator kater mi ni všeč pa bi ga rad nadomestil z čem boljšim pa ne najdem...
pulse ::
perci ::
theanswer3 je izjavil:
A očitno ni res. Piše v dokumentaciji: "V produkcijskem okolju ni dovoljeno pošiljanje sporočil podpisanih s testnimi potrdili in obratno."
Tako da očitno res samo strežnik za produkcijo še ni na red.
Pa upam, da razumeš, da produkcijsko okolje ne bo namenjeno testiranju (ko bo na voljo). Računi, ki jih pošlješ s produkcijskih certifikatom v produkcijsko okolje, bodo tretirani v skladu z določbami zakona.
peterv6i ::
bem.. samo da si pomagamo ;)
Imam še eno vprašanje.. in sicer..
Jaz imam masovne obdelave faktur po par 1000 faktur na obdelavo (tudi 300000)..
In sedaj moram te fakture spravit v FURS.. (10 procesov hkrati bo to pošiljalo)..
V javi (če zadevo spišem lokalno traje podpis cca 70msek, in pošiljanje na furs in nazaj cca 200 - 300 msec)..
Ko to zadevo uporabim na bazi se čas poveča na 700-1000 msec po fakturi.. kar je ogromno..
(moram še pisat na Oracle zakaj delujejo java stored procedure tako počasi.. čeprav uporabljam exadata server)..
Kako pa vi drugi uporabljate masovni prenos faktur na furs? in kakšne odzivne čase imate?
Ni panike.. kurc pa furs, ko jih vprašaš če imajo primer v javi te odslovijo...
Imam še eno vprašanje.. in sicer..
Jaz imam masovne obdelave faktur po par 1000 faktur na obdelavo (tudi 300000)..
In sedaj moram te fakture spravit v FURS.. (10 procesov hkrati bo to pošiljalo)..
V javi (če zadevo spišem lokalno traje podpis cca 70msek, in pošiljanje na furs in nazaj cca 200 - 300 msec)..
Ko to zadevo uporabim na bazi se čas poveča na 700-1000 msec po fakturi.. kar je ogromno..
(moram še pisat na Oracle zakaj delujejo java stored procedure tako počasi.. čeprav uporabljam exadata server)..
Kako pa vi drugi uporabljate masovni prenos faktur na furs? in kakšne odzivne čase imate?
hvala "Rozhy"..
Evo tukaj je če kdo potrebuje pošiljanje Echo sporočila na FURS.. cerifikat podjetja si nastavite sami in pa geslo...
Hvala Peter!!! 100x!
Ni panike.. kurc pa furs, ko jih vprašaš če imajo primer v javi te odslovijo...
Zgodovina sprememb…
- spremenilo: peterv6i ()
kzendra ::
Težko boš našel v naši državi nekoga k ima tako število faktur.
Kaj je namen? Kako se poračuna 300.000 faktur z gotovino ali kartico?
Ker za fakturo katera je plačana nakazilom na TRR ni potrebno davčno potrjevanje...
Kaj je namen? Kako se poračuna 300.000 faktur z gotovino ali kartico?
Ker za fakturo katera je plačana nakazilom na TRR ni potrebno davčno potrjevanje...
J.McLane ::
A to gre za kakšne šolarje in račune za 1€? Ali pa vstopnice, ki veljajo kot račun, samo moraš potem vse prodati.
Piknik ::
Pozdravljen kzendra,
Na spletu sem našel kodo za generiranje QR kode
www.aipsys.com/download/QRCodeEncodeNET...
Upam, da je v pomoč
Na spletu sem našel kodo za generiranje QR kode
www.aipsys.com/download/QRCodeEncodeNET...
Upam, da je v pomoč
perci ::
bem.. samo da si pomagamo ;)
Imam še eno vprašanje.. in sicer..
Jaz imam masovne obdelave faktur po par 1000 faktur na obdelavo (tudi 300000)..
In sedaj moram te fakture spravit v FURS.. (10 procesov hkrati bo to pošiljalo)..
V javi (če zadevo spišem lokalno traje podpis cca 70msek, in pošiljanje na furs in nazaj cca 200 - 300 msec)..
Ko to zadevo uporabim na bazi se čas poveča na 700-1000 msec po fakturi.. kar je ogromno..
(moram še pisat na Oracle zakaj delujejo java stored procedure tako počasi.. čeprav uporabljam exadata server)..
Kako pa vi drugi uporabljate masovni prenos faktur na furs? in kakšne odzivne čase imate?
hvala "Rozhy"..
Evo tukaj je če kdo potrebuje pošiljanje Echo sporočila na FURS.. cerifikat podjetja si nastavite sami in pa geslo...
Hvala Peter!!! 100x!
Ni panike.. kurc pa furs, ko jih vprašaš če imajo primer v javi te odslovijo...
Zaradi lažje poslovne logike hoče pošiljati tudi gotovinske račune. Kar je možno.
Peter, predlagam ti, da še par dni počakaš ker FURS pripravlja servis za masovno potrjevanje računov za tiste, ki boste potrjevali cele svežnje računov.
Zgodovina sprememb…
- spremenil: perci ()
kzendra ::
Pozdravljen kzendra,
Na spletu sem našel kodo za generiranje QR kode
www.aipsys.com/download/QRCodeEncodeNET...
Upam, da je v pomoč
Hvala, pogledam
theanswer3 ::
theanswer3 je izjavil:
A očitno ni res. Piše v dokumentaciji: "V produkcijskem okolju ni dovoljeno pošiljanje sporočil podpisanih s testnimi potrdili in obratno."
Tako da očitno res samo strežnik za produkcijo še ni na red.
Pa upam, da razumeš, da produkcijsko okolje ne bo namenjeno testiranju (ko bo na voljo). Računi, ki jih pošlješ s produkcijskih certifikatom v produkcijsko okolje, bodo tretirani v skladu z določbami zakona.
Js samo programiram, uporabljajo jih drugi, samo ko mi rečejo da ne dela hočem to stestirat :P Drugače pa ja hvala vseeno za pripombo. Raje še enkrat slišat, kot pa neki delat pol pa katastrofa hehe.
GlavniCar ::
Zakaj koda ki se izvaja pod IIS Express izračuna drugačen podpis kot tista ki se izvaja pod IIS?
V IIS Express in v IIS sem izdelal site, ki kaže na isti fizični direktorij na disku. Če podpišem zahtevo za potrjevanje računa preko IIS Express gre podpis skozi, če pa poženem preko IIS pa dobim napako S003? Kaj bi lahko bilo narobe?
V IIS Express in v IIS sem izdelal site, ki kaže na isti fizični direktorij na disku. Če podpišem zahtevo za potrjevanje računa preko IIS Express gre podpis skozi, če pa poženem preko IIS pa dobim napako S003? Kaj bi lahko bilo narobe?
peterv6i ::
Pošiljam še 1x kodo za podpis v javi, ki deluje z Javo > 1.6.2 , da ne javlja tistih traparij okoli ID-jev... (ne da se mi pisati)
Zavarovalnice brez skrbi..
package com.in2; import com.sun.org.apache.xml.internal.security.utils.IdResolver; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import java.net.URL; import java.security.*; import java.security.cert.X509Certificate; import java.util.*; import javax.xml.XMLConstants; import javax.xml.crypto.dsig.*; import javax.xml.crypto.dsig.dom.DOMSignContext; import javax.xml.crypto.dsig.keyinfo.*; import javax.xml.crypto.dsig.spec.*; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; import org.w3c.dom.*; import org.xml.sax.ErrorHandler; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; /** * Sign XML file. */ public class SignFileExample { public static void main(String[] args) throws Exception { String referenceURI = null; List transforms = null; long begin; long end; -- test za 1000 podpisov for (int i=0; i < 1000; i++) { begin = System.currentTimeMillis(); String xml="<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + "<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#\">\n" + " <soapenv:Body>\n" + " <fu:BusinessPremiseRequest Id=\"data\">\n" + " <fu:Header>\n" + " <fu:MessageID>246A3A8E-62A5-7FF4-E053-4200080A2A66</fu:MessageID>\n" + " <fu:DateTime>2015-11-13T11:50:40</fu:DateTime>\n" + " </fu:Header>\n" + " <fu:BusinessPremise>\n" + " <fu:TaxNumber>92582087</fu:TaxNumber>\n" + " <fu:BusinessPremiseID>5000</fu:BusinessPremiseID>\n" + " <fu:BPIdentifier>\n" + " <fu:RealEstateBP>\n" + " <fu:PropertyID>\n" + " <fu:CadastralNumber>1725</fu:CadastralNumber>\n" + " <fu:BuildingNumber>387</fu:BuildingNumber>\n" + " <fu:BuildingSectionNumber>7</fu:BuildingSectionNumber>\n" + " </fu:PropertyID>\n" + " <fu:Address>\n" + " <fu:Street>Slovenska cesta</fu:Street>\n" + " <fu:HouseNumber>35</fu:HouseNumber>\n" + " <fu:HouseNumberAdditional/>\n" + " <fu:Community>Ljubljana</fu:Community>\n" + " <fu:City>Ljubljana</fu:City>\n" + " <fu:PostalCode>1505</fu:PostalCode>\n" + " </fu:Address>\n" + " </fu:RealEstateBP>\n" + " </fu:BPIdentifier>\n" + " <fu:ValidityDate>2015-11-13</fu:ValidityDate>\n" + " <fu:SoftwareSupplier>\n" + " <fu:TaxNumber>92582087</fu:TaxNumber>\n" + " </fu:SoftwareSupplier>\n" + " <fu:SpecialNotes>Prijava poslovnega prostora</fu:SpecialNotes>\n" + " </fu:BusinessPremise>\n" + " </fu:BusinessPremiseRequest>\n" + " </soapenv:Body>\n" + "</soapenv:Envelope>" ; String outputFile = "c:/brisi/podpisanracun.xml"; // Instantiate the document to be signed DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); dbFactory.setNamespaceAware(true); Document doc = (Document) dbFactory.newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes())); NodeList nl = doc.getElementsByTagName("fu:BusinessPremiseRequest"); Node node = nl.item(0); ((Element) node).setIdAttribute("Id", true); KeyStore p12 = KeyStore.getInstance("pkcs12"); p12.load(new FileInputStream("c:/cert/testfurs.p12"), "Geslo123#".toCharArray()); Enumeration e = p12.aliases(); String alias = (String) e.nextElement(); System.out.println("Alias certifikata:" + alias); Key privateKey = p12.getKey(alias, "Geslo123#".toCharArray()); KeyStore.PrivateKeyEntry keyEntry = (KeyStore.PrivateKeyEntry) p12.getEntry(alias, new KeyStore.PasswordProtection("Geslo123#".toCharArray())); X509Certificate cert = (X509Certificate) keyEntry.getCertificate(); PublicKey publicKey = cert.getPublicKey(); final XMLSignatureFactory sigFactory = XMLSignatureFactory.getInstance("DOM"); // Create a Reference to the enveloped document Reference ref = sigFactory.newReference("#data", sigFactory.newDigestMethod(DigestMethod.SHA256, null), Collections.singletonList(sigFactory.newTransform(Transform.ENVELOPED, (TransformParameterSpec) null)), null, null); SignedInfo si = sigFactory.newSignedInfo(sigFactory.newCanonicalizationMethod(CanonicalizationMethod.INCLUSIVE, (C14NMethodParameterSpec) null), sigFactory.newSignatureMethod("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256", null), Collections.singletonList(ref)); // Create a KeyValue containing the RSA PublicKey KeyInfoFactory keyInfoFactory = sigFactory.getKeyInfoFactory(); X509IssuerSerial x509IssuerSerial = keyInfoFactory.newX509IssuerSerial(cert.getSubjectX500Principal().getName(), cert.getSerialNumber()); List x509Content = new ArrayList(); x509Content.add(cert.getSubjectX500Principal().getName()); x509Content.add(x509IssuerSerial); KeyValue keyValue = keyInfoFactory.newKeyValue(publicKey); X509Data xd = keyInfoFactory.newX509Data(x509Content); // Create a KeyInfo and add the KeyValue to it KeyInfo keyInfo = keyInfoFactory.newKeyInfo(Collections.singletonList(xd)); // Create a DOMSignContext and specify the RSA PrivateKey and // location of the resulting XMLSignature's parent element DOMSignContext dsc = new DOMSignContext( privateKey, node ); // Create the XMLSignature (but don't sign it yet) XMLSignature signature = sigFactory.newXMLSignature(si, keyInfo); // Marshal, generate (and sign) the enveloped signature signature.sign(dsc); // output the resulting document OutputStream os = new FileOutputStream("c:/brisi/PodpisanXml.xml"); //ByteArrayOutputStream os = new ByteArrayOutputStream(); Transformer trans = TransformerFactory.newInstance() .newTransformer(); trans.transform(new DOMSource(doc), new StreamResult(os)); os.flush(); os.close(); end = System.currentTimeMillis(); System.out.println("dokument podpisan" + (end-begin)); } // System.out.println(new String(os.toByteArray())); /* System.out.println("preverjam xml"); SchemaFactory fc = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = fc.newSchema(new URL("http://www.datoteke.fu.gov.si/dpr/files/wsdl_v1/FiscalVerificationSchema.xsd")); Validator validator = schema.newValidator(); final List<SAXParseException> exceptions = new LinkedList<SAXParseException>(); validator.setErrorHandler(new ErrorHandler() { @Override public void warning(SAXParseException exception) throws SAXException { exceptions.add(exception); } @Override public void fatalError(SAXParseException exception) throws SAXException { exceptions.add(exception); } @Override public void error(SAXParseException exception) throws SAXException { exceptions.add(exception); } }); validator.validate(new StreamSource(new File(outputFile))); */ //System.out.println(exceptions.toString()); } private static void usage() { System.out.println("Usage: java SignFile <inputFile> <outputFile> [id|path|whole]"); } }
Težko boš našel v naši državi nekoga k ima tako število faktur.
Kaj je namen? Kako se poračuna 300.000 faktur z gotovino ali kartico?
Ker za fakturo katera je plačana nakazilom na TRR ni potrebno davčno potrjevanje...
Zavarovalnice brez skrbi..
Zgodovina sprememb…
- spremenilo: peterv6i ()
matijaDS ::
Pozdravljeni,
mene samo zanima ali je QR koda s 25x25 moduli in ravnjo odprave napak M ok po najnovejših specifikacijah, ker imam tako narejeno, pa sem zadnjič enkrat bral neke specifikacije kjer je pisalo 29x29 modulov in raven odprave napak L (možno je, da sem bral kakšno outdated verzijo specifikacij).
hvala za info
mene samo zanima ali je QR koda s 25x25 moduli in ravnjo odprave napak M ok po najnovejših specifikacijah, ker imam tako narejeno, pa sem zadnjič enkrat bral neke specifikacije kjer je pisalo 29x29 modulov in raven odprave napak L (možno je, da sem bral kakšno outdated verzijo specifikacij).
hvala za info
peterv6i ::
Težko boš našel v naši državi nekoga k ima tako število faktur.
Kaj je namen? Kako se poračuna 300.000 faktur z gotovino ali kartico?
Ker za fakturo katera je plačana nakazilom na TRR ni potrebno davčno potrjevanje...
No en primer od včearj..
==============
Včeraj popoldan sem pognal prenose skoraj 70.000 računov z istočasnimi 6 jobi (procesi).
Nastavitev timeouta je na 300 milisekund.
število poslanih faktur : 68.644
dobili nazaj EOR - uspešno : 67.401
zgodil se je timeout - nuespešno : 1.243
povprečen čas 98 milisekund
==============
perci ::
Težko boš našel v naši državi nekoga k ima tako število faktur.
Kaj je namen? Kako se poračuna 300.000 faktur z gotovino ali kartico?
Ker za fakturo katera je plačana nakazilom na TRR ni potrebno davčno potrjevanje...
No en primer od včearj..
==============
Včeraj popoldan sem pognal prenose skoraj 70.000 računov z istočasnimi 6 jobi (procesi).
Nastavitev timeouta je na 300 milisekund.
število poslanih faktur : 68.644
dobili nazaj EOR - uspešno : 67.401
zgodil se je timeout - nuespešno : 1.243
povprečen čas 98 milisekund
==============
In to se ti bo s takim timeoutom dogajalo tudi v produkciji, če ne boš uporabil servisa za masovno potrjevanje.
peterv6i ::
Se strinjam.. to so le testi, da nekako potrdimo delovanje..
Glede masovnega potrjevanja so že morda objavili WS? (moram malo pogledati dokumentacijo če je kaj novega)
Glede masovnega potrjevanja so že morda objavili WS? (moram malo pogledati dokumentacijo če je kaj novega)
perci ::
Ne, niso še. Mi je pa ptička povedala, da naj bi jutri. Patience, patience :).
Mimogrede, kaj, če bi tole tvojo maso poskusil z malo večjimi timeouti pošiljati? Čist tko, da vidimo, če lahko sesujemo sistem? :)
Ma brezveze, bi moral bistveno povečat število vzporednih povezav.
Mimogrede, kaj, če bi tole tvojo maso poskusil z malo večjimi timeouti pošiljati? Čist tko, da vidimo, če lahko sesujemo sistem? :)
Ma brezveze, bi moral bistveno povečat število vzporednih povezav.
Zgodovina sprememb…
- spremenil: perci ()
peterv6i ::
Ja to kar smo testirali je 6 job-ov na bazi, ki hkrati pošiljajo.. Lahko probaš z SOAPUI-jem narediti stress test.. ;)
kkrajnc ::
kzendra ::
No en primer od včearj..
==============
Včeraj popoldan sem pognal prenose skoraj 70.000 računov z istočasnimi 6 jobi (procesi).
Nastavitev timeouta je na 300 milisekund.
število poslanih faktur : 68.644
dobili nazaj EOR - uspešno : 67.401
zgodil se je timeout - nuespešno : 1.243
povprečen čas 98 milisekund
==============
Timeout po priporočilih fursa naj bi bil 4000 ms
Men je v testih skupni čas (inicializacija certifikata, izračun ZOI, kreiranje XML pa pridobitev EOR) okrog 110 ms.
Glede na to da nimam masovnih obdelav, je tak čas izredno zadovoljiv.
Zdele pa testiram pošiljanje XML-ja ko stranka ni zavezanec za DDV. Tole imam v XML:
<fu:InvoiceAmount>3.80</fu:InvoiceAmount> <fu:PaymentAmount>3.80</fu:PaymentAmount> <fu:ExemptVATTaxableAmount>3.80</fu:ExemptVATTaxableAmount>
Nazaj dobim da XML ne ustreza. Ideje?
kzendra ::
Našel rešitev:
<fu:InvoiceAmount>3.80</fu:InvoiceAmount> <fu:PaymentAmount>3.80</fu:PaymentAmount> <fu:TaxesPerSeller>' <fu:ExemptVATTaxableAmount>3.80</fu:ExemptVATTaxableAmount> </fu:TaxesPerSeller>'
peterv6i ::
Me zanima kako je s to EOR številko?
Namreč če vnesem eno fakturo večkrat dobim vsakič drugačen EOR? a ni EOR enoličen? torej 1 faktura 1 številka v nasprotnem primeru napaka?
Namreč če vnesem eno fakturo večkrat dobim vsakič drugačen EOR? a ni EOR enoličen? torej 1 faktura 1 številka v nasprotnem primeru napaka?
MH0 ::
Za vsaki submit imaš drugi EOR. EOR je toliko enoiličen koliko je guid enoličen. Po dosedaj videnem me sicer ne bi čudilo, če bi tudi to naredili narobe. :-)
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 | 7581 (4344) | ivanhoe5x |
» | PHP davčna blagajnaOddelek: Programiranje | 8186 (6210) | brble |
» | [JAVA] HTTPS clientOddelek: Programiranje | 3197 (1927) | peterv6i |