Example #1
0
        public XmlDocument PosaljiRacun(Schema.RacunType racun, string certificateSubject, DateTime datumVrijeme)
        {
            XmlDocument racunOdgovor = null;

            Schema.RacunZahtjev zahtjev    = PopratneFunkcije.XmlDokumenti.KreirajRacunZahtjev(racun, datumVrijeme);
            XmlDocument         zahtjevXml = PopratneFunkcije.XmlDokumenti.SerijalizirajRacunZahtjev(zahtjev);

            PosaljiZahtjev(certificateSubject, ref racunOdgovor, zahtjevXml);

            return(racunOdgovor);
        }
Example #2
0
        public XmlDocument PosaljiRacun(Schema.RacunType racun, string certificateSubject, StoreLocation storeLocation, StoreName storeName)
        {
            XmlDocument racunOdgovor = null;

            Schema.RacunZahtjev zahtjev    = PopratneFunkcije.XmlDokumenti.KreirajRacunZahtjev(racun);
            XmlDocument         zahtjevXml = PopratneFunkcije.XmlDokumenti.SerijalizirajRacunZahtjev(zahtjev);

            PosaljiZahtjev(certificateSubject, storeLocation, storeName, ref racunOdgovor, zahtjevXml);

            return(racunOdgovor);
        }
Example #3
0
        public XmlDocument PosaljiRacun(Schema.RacunType racun, X509Certificate2 certifikat)
        {
            XmlDocument racunOdgovor = null;

            Schema.RacunZahtjev zahtjev    = PopratneFunkcije.XmlDokumenti.KreirajRacunZahtjev(racun);
            XmlDocument         zahtjevXml = PopratneFunkcije.XmlDokumenti.SerijalizirajRacunZahtjev(zahtjev);

            PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(zahtjevXml, certifikat);
            PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref zahtjevXml);

            racunOdgovor = SendSoapMessage(zahtjevXml);


            return(racunOdgovor);
        }
        public static Schema.RacunZahtjev KreirajRacunZahtjev(Schema.RacunType racun, DateTime datumVrijeme)
        {
            Schema.RacunZahtjev zahtjev = new Schema.RacunZahtjev()
            {
                Id = "signXmlId", Racun = racun
            };

            Schema.ZaglavljeType zaglavlje = new Schema.ZaglavljeType()
            {
                DatumVrijeme = Razno.FormatirajDatumVrijeme(datumVrijeme), IdPoruke = Guid.NewGuid().ToString()
            };

            zahtjev.Zaglavlje = zaglavlje;

            return(zahtjev);
        }
        public static Schema.RacunZahtjev KreirajRacunZahtjev(string ID, Schema.RacunType racun)
        {
            Schema.RacunZahtjev zahtjev = new Schema.RacunZahtjev()
            {
                Id = ID, Racun = racun
            };

            Schema.ZaglavljeType zaglavlje = new Schema.ZaglavljeType()
            {
                DatumVrijeme = Razno.DohvatiFormatiranoTrenutnoDatumVrijeme(), IdPoruke = Guid.NewGuid().ToString()
            };

            zahtjev.Zaglavlje = zaglavlje;

            return(zahtjev);
        }
Example #6
0
        private void SnimiDokumentUDatoteku(string oib)
        {
            Raverus.FiskalizacijaDEV.CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav();

            Raverus.FiskalizacijaDEV.Schema.RacunType racun = GetRacun(oib);


            Schema.RacunZahtjev zahtjev    = PopratneFunkcije.XmlDokumenti.KreirajRacunZahtjev(racun);
            XmlDocument         zahtjevXml = PopratneFunkcije.XmlDokumenti.SerijalizirajRacunZahtjev(zahtjev);

            PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(zahtjevXml, PopratneFunkcije.Potpisivanje.DohvatiCertifikat("FISKAL 1"));
            PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref zahtjevXml);

            Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.SnimiXmlDokumentDatoteka(zahtjevXml, @"D:\Users\Nino\Desktop\Zahtjev.xml");

            XmlDocument doc = cis.PosaljiSoapPoruku(zahtjevXml);

            Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.SnimiXmlDokumentDatoteka(doc, @"D:\Users\Nino\Desktop\Odgovor.xml");
        }
        /// <summary>
        /// Koristi se za serijalizaciju XML-a zahtjeva.</summary>
        /// <param name="racunZahtjev">Objekt tipa Schema.RacunZahtjev koji sadrži RacunZahtjev.</param>
        /// <example>
        ///  Schema.RacunZahtjev zahtjev = PopratneFunkcije.XmlDokumenti.KreirajRacunZahtjev(racun);
        ///  XmlDocument zahtjevXml = PopratneFunkcije.XmlDokumenti.SerijalizirajRacunZahtjev(zahtjev);
        /// </example>
        /// <returns>
        /// Vraća XmlDocument koji sadrži XML zahtjeva. U slučaju greške vraća null.</returns>
        public static XmlDocument SerijalizirajRacunZahtjev(Schema.RacunZahtjev racunZahtjev)
        {
            string xml = "";

            try
            {
                xml = racunZahtjev.Serialize();
                xml = xml.Replace("<tns:Pdv />", "");
                xml = xml.Replace("<tns:Pnp />", "");
                xml = xml.Replace("<tns:OstaliPor />", "");
                xml = xml.Replace("<tns:Naknade />", "");
                //xml = xml.Replace(@"Id=""signXmlId""", @"Id=""racunId"" xsi:schemaLocation=""http://www.apis-it.hr/fin/2012/types/f73 ../schema/FiskalizacijaSchema.xsd""");
            }
            catch (Exception ex)
            {
                Trace.WriteLine(String.Format("Greška kod serijalizacije zahtjeva za račun: {0}", ex.Message));
                throw;
            }

            XmlDocument doc = UcitajXml(xml);


            return(doc);
        }
Example #8
0
        private void CertifikatDatoteka(string oib)
        {
            Raverus.FiskalizacijaDEV.CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav();

            Raverus.FiskalizacijaDEV.Schema.RacunType racun = GetRacun(oib);

            X509Certificate2 cert = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat(@"D:\Users\Nino\Desktop\Fiskalizacija\MojCert.pfx", "PASSWORD");

            if (cert != null)
            {
                // varijanta 1
                XmlDocument odgovor = cis.PosaljiRacun(racun, cert);


                // varijanta 2
                Schema.RacunZahtjev zahtjev    = PopratneFunkcije.XmlDokumenti.KreirajRacunZahtjev(racun);
                XmlDocument         zahtjevXml = PopratneFunkcije.XmlDokumenti.SerijalizirajRacunZahtjev(zahtjev);

                PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(zahtjevXml, cert);
                PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref zahtjevXml);

                XmlDocument doc = cis.PosaljiSoapPoruku(zahtjevXml);
            }
        }
Example #9
0
        private void btnStartTest_Click(object sender, EventArgs e)
        {
            txtLog.Text = "";
            if (CheckCertificate())
            {
                if (CheckOib())
                {
                    if (CheckSsl())
                    {
                        Raverus.FiskalizacijaDEV.Schema.RacunType racun = GetRacun(certifikat);
                        if (racun != null)
                        {
                            progressBar1.Maximum = iterations * 3;
                            btnStartTest.Enabled = false;
                            stopWatch.Reset();
                            RefreshLog("ECHO test počinje...");
                            stopWatch.Start();
                            Raverus.FiskalizacijaDEV.CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav();
                            for (int i = 0; i < iterations; i++)
                            {
                                cis.Echo();
                                Application.DoEvents();
                                progressBar1.PerformStep();
                            }
                            stopWatch.Stop();
                            echo = stopWatch.Elapsed.TotalSeconds;
                            RefreshLog(String.Format("ECHO test završen. Vrijeme: {0:n4}. Prosjek: {1:n4}", echo, echo / iterations));
                            RefreshLog("");

                            RefreshLog("Račun test počinje...");
                            RefreshLog("Kreiranje i potpisivanje računa...");
                            SortedList <int, XmlDocument> sl = new SortedList <int, XmlDocument>();
                            stopWatch.Reset();
                            stopWatch.Start();
                            for (int i = 0; i < iterations; i++)
                            {
                                Schema.RacunZahtjev zahtjev    = PopratneFunkcije.XmlDokumenti.KreirajRacunZahtjev(racun);
                                XmlDocument         zahtjevXml = PopratneFunkcije.XmlDokumenti.SerijalizirajRacunZahtjev(zahtjev);
                                PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(zahtjevXml, certifikat);
                                PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref zahtjevXml);

                                sl.Add(i, zahtjevXml);

                                Application.DoEvents();
                                progressBar1.PerformStep();
                            }
                            stopWatch.Stop();
                            potpis = stopWatch.Elapsed.TotalSeconds;
                            RefreshLog(String.Format("Kreiranje i potpisivanje završeno. Vrijeme: {0:n4}. Prosjek: {1:n4}", potpis, potpis / iterations));
                            RefreshLog("");

                            RefreshLog("Slanje računa...");
                            stopWatch.Reset();
                            stopWatch.Start();
                            foreach (XmlDocument item in sl.Values)
                            {
                                cis.PosaljiSoapPoruku(item);
                                Application.DoEvents();
                                progressBar1.PerformStep();
                            }
                            stopWatch.Stop();
                            slanje = stopWatch.Elapsed.TotalSeconds;
                            RefreshLog(String.Format("Slanje računa završeno. Vrijeme: {0:n4}. Prosjek: {1:n4}", slanje, slanje / iterations));
                            RefreshLog("");

                            RefreshLog(String.Format("Račun test završen. Vrijeme: {0:n4}. Prosjek: {1:n4}", potpis + slanje, (potpis + slanje) / iterations));

                            btnStartTest.Enabled = true;
                            testFinished         = true;
                        }
                        else
                        {
                            MessageBox.Show("Greška kod kreiranja test računa.");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Nije moguće uspostaviti SSL vezu prema CIS-u. Provjerite da li su potrebni certifikati uredno instalirani.");
                        DialogResult dire = MessageBox.Show("Želite li provjeriti status CIS-a?", "Status CIS-a", MessageBoxButtons.YesNo);
                        if (dire == DialogResult.Yes)
                        {
                            MessageBox.Show(Raverus.FiskalizacijaDEV.PopratneFunkcije.Razno.DohvatiStatusCisServisa().ToString());
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Greška kod dohvata OIB-a iz certifikata.");
                }
            }
        }