[ popmilan76 @ 24.04.2024. 14:43 ] @
Zanima me sledece,kako mogu u vc sharpu,da prebacim podatke sa weba u moju vc sharp aplikaciju?Hocu da kada mi ucita sa sajta uplatnicu za razne takse sa mup sajta,te podatke iskopiram u moju formu aplikacije.Jel to izvodljivo?
[ Shadowed @ 24.04.2024. 14:50 ] @
Citat:
popmilan76:
Zanima me sledece,kako mogu u vc sharpu,da prebacim podatke sa weba u moju vc sharp aplikaciju?Hocu da kada mi ucita sa sajta uplatnicu za razne takse sa mup sajta,te podatke iskopiram u moju formu aplikacije.Jel to izvodljivo?

Jeste izvodljivo ali nisi dao dovoljno informacija. Kako dobijas te podatke (neki url, rest api, sta?), u kom su formatu i kako zelis da prikazes podatke u formi i sta imas/koji deo je zapeo.
[ popmilan76 @ 24.04.2024. 16:10 ] @
To je sajt za pravljenje uplatnica za licne karte,pasose i slicno...preko e plati...I tu imam generisanu uplatnicu za razne takse...gde je ime,prezime,adresa,ziro racun,primalac,iznos i poziv na broj....
[ djux66 @ 25.04.2024. 08:21 ] @
Probaj da li možeš webview2 da staviš na formu pa eventualno da korisnik odradi kreiranje uplatnice preko sajta a ti da parsiraš krajnji html uplatnice?
Evo ti primer

[Ovu poruku je menjao djux66 dana 25.04.2024. u 15:10 GMT+1]
[ popmilan76 @ 25.04.2024. 14:50 ] @
Ok,pogledacu primer...I mislio sam da odradim kreiranje preko sajta,pa samo da uzmem podatke sa sajta mupa,i prebacim kod mene u aplikaciju?
[ popmilan76 @ 25.04.2024. 15:28 ] @
Video sam ,možda je to što meni treba,možda i bolje,samo je pravljeno u nekom mladjem Visual Studiju,jel može ovo u VS2008?Mada,ovaj htmlagilitypack i ne moze u 2008,pretpostavljam...

[Ovu poruku je menjao popmilan76 dana 25.04.2024. u 18:38 GMT+1]
[ mjanjic @ 25.04.2024. 20:35 ] @
Misliš na praznu uplatnicu ili potvrdu o realizovanoj uplati?

Ako hoćeš samo da generišeš personalizovanu uplatnicu, možeš negde da nađeš algoritam kojim se određuje recimo poziv na broj, pa da uplatnicu generišeš sam plus dodaš i QR kod preko NBS IPS QR generatora.

Koliko znam, uplatnice preko eUprave ne moraju da se generišu preko ličnog naloga, znam da ih generišu i agencije kod kojih mogu da se odrade plaćanja taksi i sl. (recimo, može da se uradi kod ovih što rade tehnički pregled i osiguranje vozila, jer se uplatnica generiše na osnovu lične karte ili čak samo JBMG).
[ popmilan76 @ 25.04.2024. 20:53 ] @
Da,sve je to tacno,al svi generisu preko e plati,preko njihovog sajta...Ne bih smeo da se igram sa tim,bojim se da ne bude sto pogresno...pa mi je najsigurnije preko weba.Mislim na generisanu uplatnicu,ne na praznu...Mogu i preko qrcoda,al tu nemam ime i prezime uplatioca,a i malo mi je komplikovanije...
[ popmilan76 @ 26.04.2024. 18:55 ] @
Da još malo pojasnim,kada generišem uplatnicu sa svim podacima,želim da izdvojim poziv na broj,tj kada idem na source,hoću ovaj podatak da ubacim kod mene?

<label class='referenceNumber'>
71005216079767101990G00

Poziv na broj,tj reference number?
[ bokinet @ 03.05.2024. 22:39 ] @
Bitno je da pokupis HTML koji je generisan od strane MUP-a.
Kada imas celokupan sadrzaj onda lepo krenes sa parsovanjem tog HTML koristeci recimo XML (HTML) DOM objekat kako bi nasao to sto ti treba preko tagova i vrednosti. Dakle na datom primeru node sa imenom (name) label koji sadrzi class (classname) referenceNumber, kada nadjes taj node onda uzimas vrednost tog Node-a tj. innerText.
[ popmilan76 @ 04.05.2024. 07:56 ] @
Da,ali ta generisana uplatnica,nije html,vec api...i ne znam kako to da radim...pokusao sam i preko web browser kontrole,ali ona prijavljuje skript gresku,nece da otvori stranicu...Link za uplatnicu je
https://plati.euprava.gov.rs/api/Payment/PaymentSlips
[ mjanjic @ 08.05.2024. 08:34 ] @
Za API ne znam šta vraća od podataka, ali link koji si ostavio ne funkcioniše ako korisnik nije ulogovan ili nema API ključ.
Drugo, teško da može u prastaroj verziji da se uradi, zahteva se maltene najnovija verzija TLS-a (mada proveri, za svaki slučaj, koja se verzija SSL-a ili TLS-a traži).

I očigledno ne razumeš šta je API čim pominješ da generisana uplatnica nije HTML, već API, a API može da vrati i HTML, ne mora da bude običan tekst, JSON ili XML.

Ovde su dali neke "korisne linkove" u vezi API servisa, ali kako je navedeno, podaci se vraćaju u JSON formatu: https://euprava.gov.rs/usluge/7558

Pitanje je da li ta tvoja aplikacija uopšte "razume" JSON format, koji je standardizovan tek 2013. godine, iako je specifikacija postojala negde 2006. godine.
[ popmilan76 @ 08.05.2024. 17:00 ] @
Mozda se nisam dobro izrazio,a i ne razumem bas kako to funkcionise...za e plati ne trazi se logovanje,to je javni pristup,a kljuc svakako nemam...Kad sam napisao da nije html,mislio sam da nije klasican link,vec nekakav apiend...Nista hvala,ako nije moguce to u vs 2008,a nemam mogucnosti za koriscenje drugih vs ,bar ne u firmi...
[ djux66 @ 08.05.2024. 20:25 ] @
Citat:
popmilan76:
Da još malo pojasnim,kada generišem uplatnicu sa svim podacima,želim da izdvojim poziv na broj,tj kada idem na source,hoću ovaj podatak da ubacim kod mene?

<label class='referenceNumber'>
71005216079767101990G00

Poziv na broj,tj reference number?


Pošto ti svaki html tag ima closing tag na kraju, onda ti je to prosto izvlačenje texta između 2 taga.
Ako ti je ovo deo html-a:
Code:
var html = @"<label class='referenceNumber'>
    22003629069807101020G0B
</label>";

Onda možeš da napraviš string extension metod npr. ovako
Code:
    public static class StringExtensions
    {
        public static string Between(this string value, string start, string end)
        {
            int startIndex = value.IndexOf(start);

            if (startIndex < 0)
                return string.Empty;

            int adjustedStartIndex = startIndex + start.Length;
            int endIndex = value.IndexOf(end, adjustedStartIndex);

            if (endIndex < 0)
                return string.Empty;

            return value.Substring(adjustedStartIndex, endIndex - adjustedStartIndex);
        }
    }

Pa da onda pozoveš ovako
Code:
            var start = @"<label class='referenceNumber'>";
            var end = @"</label>";

            Console.WriteLine(html.Between(start, end).Trim());

[ popmilan76 @ 09.05.2024. 16:28 ] @
To razumem,al kako da na osnovu te generisane uplatnice,prikazem taj html....S tim sto ga prikazujem ne u mojoj aplikaciji,pomocu web kontrola,vec na njihovom sajtu....
[ djoka_l @ 09.05.2024. 18:45 ] @
Nema teorije da to uradiš, suviše mnogo stvari ne znaš.

Možda je bolje da se koncentrišeš na generisanje poziva na broj.

71005216079767101990G00

Ovaj broj se sastoji od 4 elementa

71 - kontrolni broj po modulu 97

0052 - cifre predtavljaju šifru opštine, konkretno ovo je šifra za Kruševac https://porezionline.rs/obrasci.php?pID=30222

1607976710199 - matični broj onoga ko plaća za dokument

0G00 - ovo stalno dodaju na poziv na broj kada se plaća MUP-u, možda znači da je G građanin, nemam pojma

Proveri na cekos sajtu da ubaciš ovaj broj bez vodećeg kontrolnog broja i dobiješ 71 https://www.cekos.rs/kontrolni-broj-modul-97

Još samo da naučiš kako se računa kontrolni broj po modulu 97, i za 5-6 godina imaš gotov softver

[ mjanjic @ 10.05.2024. 17:51 ] @
Citat:
popmilan76:
Mozda se nisam dobro izrazio,a i ne razumem bas kako to funkcionise...za e plati ne trazi se logovanje,to je javni pristup,a kljuc svakako nemam...Kad sam napisao da nije html,mislio sam da nije klasican link,vec nekakav apiend...Nista hvala,ako nije moguce to u vs 2008,a nemam mogucnosti za koriscenje drugih vs ,bar ne u firmi...


Ako nemaš API ključ, kako misliš da ti to radi sigurno i za recimo mesec dana?
Čak i da nabudžiš svoju aplikaciju da sada može iz HTML-a da izvuče te podatke, šta ako na sajtu promene izgled stranice i samo par HTML tagova, tako da ti aplikacija dobija pogrešne podatke ili ne dobije ništa?


Jedan od (ispravnih) načina, ako nećeš da radiš preko API-ja, je da recimo koristiš Selenium drajver za Chrome/Edge/Firefox, preko koga preko koda otvoriš link, popuniš polja i pokupiš rezultat.
Recimo, tako radi ona Python skripta za kreiranje Eset trial ključeva, da ne moraš ručno da se registruješ kod njih na sajtu i odradiš sve ostalo, pa pogledaj kako su to odradili. Nisam siguran da iz VS2008 možeš da uradiš nešto tako, ali možda možeš da pozoveš recimo Python skriptu da to odradi i da vrati određene podatke.
[ popmilan76 @ 10.05.2024. 20:10 ] @
API kljuc ne mogu svakako da nabavim,a i vrlo verovatno da ne mogu to uopste uraditi iz VS 2008 ne bilo koji nacin...Hvala svakako svima.