Search  
Thursday, May 24, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Aplicatii Web  RAPORTARE SIUI...
 RAPORTARE SIUI
 
 3/13/2011 12:01:21 PM
User is offlinegusu
22 posts


RAPORTARE SIUI
 (N/A)
BUNA ZIUA
Va rog daca puteti sa ma lamuriti si sa ma ajutati in ceea ce trebuie facut pentru a putea accesa serviciile web ale SIUI, mai exact trebuie sa accesez urmatoarele adrese

·         https://www.siui.ro/svapntws/services/SiuiWS

·         https://www.siui.ro/svapntws/services/SiuiInsuredWS

·         https://www.siui.ro/svapntws/services/SiuiValidateWS

incerc sa inregistrez dar imi da eroarea din imagine

Va multumesc anticipat



imagine 1.jpg 
 3/13/2011 2:16:18 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: RAPORTARE SIUI
 (N/A)
Esti sigur ca alea sunt adresele corecte ale serviciilor web? Eu nu reusesc sa le accesez din browser.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 3/13/2011 5:39:19 PM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
Atasez raspunsul care l-am primit de la reprezentantul SIUI vis a vis de accesarea serviciilor puse la dispozitie.

DISCUTIE.doc 
 3/13/2011 10:12:26 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: RAPORTARE SIUI
 (N/A)
Aha, acum capata sens. Uite cum e treaba asta: definitia serviciului web este stocata in fisierul wdsl. In mod normal serviciile web au o adresa de genul http://host/cale/fisier.wdsl (accesibil din browser). Astea de la SIUI n-au, dar au pus la dispozitie fisierele wdsl pentru download. Copiaza fisierele alea trei in folderul aplicatiei si inregistreaza-le pe ele; ar trebui sa mearga serviciul web dupa ce faci chestia asta. Eu n-am foxul instalat asa ca nu pot sa verific, dar asa ar trebui sa functioneze.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 3/14/2011 6:54:01 AM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
Buna ziua,

Inregistrarea  serviciului web este ca in imaginea atasata. Va rog lamuriti-ma unde anume trebuie sa fie copiat fisierul WDSL  si cum sa il inregistrez daca este  intr-o aplicatie ?

Va multumesc anticipat

Cu stima,
Sorin  Florian
poza 1.jpg 
 3/14/2011 7:34:26 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: RAPORTARE SIUI
 (N/A)
Copiezi fisierul wdsl in folderul aplicatiei si in comboboxul ala scrii calea de cautare c:\aplicatie\fisier.wdsl.

Arunca un ochi la codul din pagina asta: http://infovalutar.ro/howto/foxpro.aspx ca sa vezi cum se poate folosi un web service fara prostia aia de inregistrare, ci direct din cod. In locul adresei web scrii calea de cautare a fisierului wdsl.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 3/14/2011 8:28:11 AM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
Am facut dar imi da eroare ca in imaginile atasate.
Imi permit sa atasez si fisierele wdsl

Sistemul SIUI foloseste trei fisiere WSDL corespunzătoare functionalitătilor majore expuse:
- SiuiWS.wsdl pentru serviciile pentru sincronizarea nomenclatoarelor, fisierelor de personalizare, transmiterea de raportări si preluarea rezultatelor prelucrării raportărilor, precum si alte servicii conexe, expuse în sectiunile următoare. Toate aceste servicii expun online functionalitătiile oferite până acum de sistem în mod offline, prin transferul fișierelor folosind medii de stocare mobile.

- SiuiInsuredWS.wsdl pentru serviciul-Web de verificare online a calitătii de asigurat al unei persoane/pacient. Acest serviciu este o functionalitate nouă adusă de SIUI 2.0. (se face dupa cnp-ul pacientului)

- SiuiValidateWS.wsdl pentru serviciile-Web de prevalidare online a eligibilitătii la decontare a serviciilor prestate de furnizori. Acest serviciu este o functionalitate nouă adusă de SIUI 2.0.
Specificatie Interfatare SIUI 2.0 - Aplicatii_de_Raportare_pentru_Furnizori.pdf 
 3/14/2011 8:30:38 AM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
Scuze, aici sunt toate fisierele atasate.
00.ZIP 
 3/14/2011 10:40:18 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: RAPORTARE SIUI
 (N/A)
Eu nu pot sa testez - n-am VFP instalat si nici nu pot sa-l instalez. Poate intervine altcineva in discutie.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 3/14/2011 11:51:48 AM
User is offlineDoru Constantin
321 posts
3rd




Re: RAPORTARE SIUI
 (N/A)
Ai citit pagina 32 din "Specificatie Interfatare SIUI 2.0 - Aplicatii_de_Raportare_pentru_Furnizori.pdf" ?

 
Adresele serviciilor-Web expuse de SIUI sunt următoarele:
https://www.siui.ro/svapntws/services/SiuiWS
https://www.siui.ro/svapntws/services/SiuiValidateWS
https://www.siui.ro/svapntws/services/SiuiInsuredWS

Adresa serviciului de autentificare și validare OCSP a certificatelor digitale este următoarea:
https://www.siui.ro/OCSP/validator

Serviciul de autentificare transmite aplica iei client un jeton de sesiune care trebui adăugat decătre aplica ie în antetul cererii HTTP pentru a putea accesa serviciile web din lista anterioară.
Jetonul de sesiune este generat de serviciul de autorizare pe baza certificatului digital al utilizatorului SIUI.

OBSERVA-IE
Pentru a putea ob&ine jetonul de sesiune serviciul de autentificare necesită transmiterea ca parametru a numelui utilizatorului SIUI care se solicită acccesul.
De notat că acest jeton are o perioadă de valabilitate limitată, după care expiră, fiind necesară obtinerea unui nou jeton.


Serviciile acelea web nu poti sa la accesezi decat dupa autentificare
 3/14/2011 12:15:14 PM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
imi da eroare cand incerc sa accesez https://www.siui.ro/OCSP/validator.


 3/14/2011 12:26:32 PM
User is offlineDoru Constantin
321 posts
3rd




Re: RAPORTARE SIUI
 (N/A)
Inteleg ca ai certificatul digital (tokenul), user si password.

Poati sa postezi codul cu care incerci sa te autentifici.

PS: Te rog sa nu-mi spui ca ai incercat in internet browser si nu merge !
 3/14/2011 12:53:15 PM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
Da, certificatul digital exista.
As dori sa pot spune ca nu este asa... dar din browser am incercat.
Nu am mai lucrat cu chestii de genul internet , autentificare web ceva de genul asta.
A fost simplu sa generez fisierul xml si cu el pe stik la CJAS.
Incerc sa ma prind dar inca nu am reusit.

 3/14/2011 1:56:51 PM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania) Modified By Gabriel  on 3/14/2011 3:06:57 PM)
Daca vrei sa vezi din browser poti incerca  asa : https://www.siui.ro/OCSP/validator?username=COD_FISCAL_CAS-JUDET
Adica ceva de genul https://www.siui.ro/OCSP/validator?username=123456_CAS-BV  

OCSP-acela se poate obtine relativ usor din codul care il gasesti la pag 32 din Specificatie Interfatare ( daca instalezi Visual C# 2010 express si generezi o aplicatie tip consola ):

// configurare opŃiuni generale http
ServicePointManager.ServerCertificateValidationCallback = ServerCertificateBypass;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 |   SecurityProtocolType.Tls; // default in .NET
// creare cerere web https
var url = String.Format("https://www.siui.ro/OCSP/validator?username={0}", userName);
var request = (HttpWebRequest)WebRequest.Create( new Uri(url) );
// configurare cerere web
request.Accept = "*/*";
request.KeepAlive = true; 
request.AllowAutoRedirect = false;
request.PreAuthenticate = true;
 // preluare Proxy din Internet Explorer   Daca esti conectat direct la net se poate scoate linia de mai jos daca nu trebuie sa fie dar o sa apara un avertisment ca conform net 2.0
//request.Proxy = ProxyHelper.GetSystemWebProxy();
 // adăugare certificat digital
request.ClientCertificates.Add(userCertifcate);
// configurare autentificare pe bază de utilizator şi parolă
var credentials = new CredentialCache();
//  aici era o mica greseala adica in loc de virgula era punct
credentials.Add( uri, "Basic", new NetworkCredential( userName,password ) );
request.Credentials = credentials;
 // suprasciere CookieContainer pentru a păstra cookie-urile
request.CookieContainer = CookieJar; // CookieJar este un CookieContainer static
 // obŃinere răspuns de la serviciul web
var response = request.GetResponse();
 // extragere jeton de sesiune din antetul răspunsului https
return response.Headers["OSCP_RESPONSE"];


Mai departe este problema transmiteri acestuia  catre al doilea apel prin headerul aplicatie .Un "model" de apel incomplet apare la pag 32
Aici sint si nu reusesc sa trec mai departe adica sa folosesc OCSP returnat din primul apel catre cel de al doilea apel .
Imi apare tot timpul eroare de autentificare .






 3/14/2011 2:24:35 PM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania)
In legatura cu wsdl-urile am inceput cu  SiuiInsuredWS.wsdl

Si eu am citeva nelamuriri si anume :

-Care este modalitatea de transmitere corecta a jetonului de sesiune primit din primul apel catre OCSP catre cel de al doilea apel facut catre serviciul web ?
(apar in pag 32 si pag 33 niste exemple incomplete dar inca  nu am  reusit sa ma  descurc cu ele )

-Cum ar trebui sa arate requestul facut catre serviciul  web  ? (  request care trebuie  trebuie generat manual din wsdl )


Problema este de C# nu tine de foxpro dar ma gindesc ca cineva s-a mai lovit si el de asemenea lucruri.



SiuiInsuredWS.zip 
 3/15/2011 10:26:26 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A)
Mai departe in documentatie este exemplificat request-ul 2 (dupa obtinerea jetonului):

// adăugare jeton de sesiune la antetul cererii
request.Headers.Add("OSCP_RESPONSE", sessionToken);

unde sessionToken este valoarea intoarsa de la request-ul anterior:
return response.Headers["OSCP_RESPONSE"];

Ar trebui sa mearga. Cred ca esti foarte aproape.
Da' cum faci toate chestiile astea in VFP ?
 3/15/2011 10:32:50 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A)
Jetonul nu cred ca are legatura cu descrierea serviciului (wsdl), are legatura cu https.
Este o variabila de sesiune. Ea este memorata pe server dupa obtinerea autentificarii, transmisa clientului si verificata la cererile urmatoare (un cookie in https).
 3/16/2011 9:10:10 AM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania)
  Am incercat si cu tokenul de autentifcare introdus in header cf pag 32 dar nu am reusit  inca sa trec de al doilea server de autentificare

  In wsdl este descris modul de accesare  al  celui de-al treilea server cel care de fapt ruleaza efectiv  serviciul web .  ( Cel putin asa inteleg eu lucrurile din ce am lecturat din wsdl pina acuma si din cit ma pricep )

  Pentru moment sap in C# si in limbajul wsdl ca sa incerc sa inteleg cum stau treburile
 


 3/16/2011 5:07:24 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A) Modified By Dumitru  on 3/16/2011 6:20:11 PM)
@Gabriel ceea ce faci tu seamana cu ce vreau si eu sa fac.
Am scris in alt post, vreau sa folosesc din VFP Msxml2.xmlHttp in loc del MSSOAP.SoapClient.
Prin codul de mai sus ai creeat header-ul ai trimis request-ul si ai prins raspunsul serverului.
Am incercat si nu reusesc,

Pe scurt, in C#, "request" este un obiect de tip XMLHttpRequest si pot sa setez aceleasi prorpietati (Accept, KeepAlive, AllowAutoRedirect, PreAutenticate,...) din orice limbaj ?
Cine/ce este "ServicePointManager" ?
(unde sa citesc?)

In VFP folosesc :
xmlhttp = CREATEOBJECT("MSxml2.xmlhttp")
xmlhttp.open("POST", "http://link.wso?wsdl", .F.)
xmlhttp.setRequestHeader ("SOAPAction", "http://link2")
xmlhttp.setRequestHeader ("Content-Type", "text/xml")
xmlhttp.send(xmlToSend);

Merge, dar vreau https si nu reusesc sa formez corect header-ul.
Merci
 3/16/2011 5:36:30 PM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania) Modified By Gabriel  on 3/16/2011 6:37:42 PM)
  Uite aici  :
                
 http://193.151.30.188/cnas/forum/viewtopic.php?p=5908#5908

un post interesant  despre SIUI si unde apare un exemplu clar in C# si niste lamuriri "interesante"
  In cazul meu (daca cine a postat are dreptate ) trebuie sa aflu cum se calculeaza acele 3 variabile nedocumentate pe care el le-a citit direct pe trafic si sa le introduc in header-ul meu


  In ce priveste problema ta incearca sa folosesti   ServerXMLHTTP   (google sa traiasca )
> Problem:
> Server-to-server XML using the XMLHTTP object requesting XML from a
> secure SSL (HTTPS) page, throws error 800c0008 (-2148270088) and the
> message: "The download of the specified resource has failed."
>
> Solution:
> Use the "Msxml2.ServerXMLHTTP" object instead of the regular "XMLHTTP"
> object. For some reason the regular object works server-to-server over
> HTTP, but when using HTTPS, only the ServerXMLHTTP object will work.
>
> Reason, according to MSDN:
> "The only supported method for making HTTP requests from server-side
> ASP script is if you use ServerXMLHTTP object (MSXML2.ServerXMLHTTP)
> that is provided with XML 3.0 or later." (http://support.microsoft.com/
> kb/237906)
>
> See the ServerXMLHTTP Reference here:

http://msdn2.microsoft.com/en-us/library/ms754586.aspx
>



 

 3/16/2011 7:39:34 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A) Modified By Dumitru  on 3/17/2011 11:39:08 PM)
Extraordinar forumul asta, voi impusca doi iepuri.
Alta documentatie nu exista la CAS-uri (eu lucrez la CAS), daca exista ii ajutam pe cei care intreaba pe aici.
Poate instalez C# ca sa inteleg fenomenul, pe urma vad ce fac cu fox-ul.
Merci Gabriel

[Edit]
 3/18/2011 6:58:38 AM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
UNDE GRESESC ?
DOC.jpg 
 3/18/2011 5:50:44 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A)
Eu vad URL-ul gresit, dupa String.Format trebuie sa arate asa:

https://www.siui.ro/OCSP/validator?username=5848584_CAS-BV


 3/18/2011 10:24:31 PM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania)
   Presupun ca este vorba de contract cu casa Braila . 

Incearca sa introduci 2 variabile  asa
string username = "5848584_CAS-BR";
 string password = "799A6-LNLQ-NYSX-IJOG";


si atunci poti pune in cod  :

var url = String.Format("https://www.siui.ro/OCSP/validator?username={0}", username);

request.Credentials = new NetworkCredential(username, password);


Vezi si aici  : http://193.151.30.188/cnas/forum/viewtopic.php?t=1597    este un exemplu mult mai complet


 3/20/2011 4:59:51 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A) Modified By Dumitru  on 3/20/2011 6:21:50 PM)
Am ajuns si eu in punctul in care este Gabriel, dar folosind VFP

* Msxml2.ServerXMLHTTP
* MSxml2.xmlhttp
* WinHttp.WinHttpRequest
* MSSOAP.SoapClient
* Cred ca se poate folosi oricare daca cunosti bine documentatia de pe site-ul Microsoft
* Eu am folosit WinHttp.WinHttpRequest
*
* adresa server autentificare
m.lsURL = "https://www.siui.ro/OCSP/validator"

* utilizator si parola primite de la CAS
m.lsUserCAS = [CUI_CAS_JD]
m.lsPassCAS = [xxxxx-xxxx-xxxx-xxxx]

* certificat digital
lsCertName = [XXXXXXX XXXXXXX]
* in documentatia de la Microsoft specifica : Location//Cerificat store//Subject name
* Am incercat asa si nu le-am nimerit, am pus numai "Subject name" (numele care apare in IE cand selectezi VIEW CERIFICATE)
lsUserName = [utilizator_certificat]
lsPassword = [parola_certificat]
* Pentru ca am folosit "Subject name" si nu intreg string-ul, la primul apel (numai la primul) trebuie sa introduc manual lsPassword

* Se creeaza obiectul HttpRequest (de tip resource)
oHttp = CREATEOBJECT([WinHttp.WinHttpRequest.5.1])

*Se deschide conexiunea GET cu serverul
oHttp.Open([GET], lsURL+[?username=]+m.lsUserCAS, .F.)

* configurare cerere web
oHttp.SetRequestHeader("Accept", "*/*")
oHttp.SetRequestHeader("KeepAlive", .T.)
oHttp.SetRequestHeader("AllowAutoRedirect",.F.)
oHttp.SetRequestHeader("PreAuthenticate",.T.)

* configurare autentificare (aici solicita parola eToken-ului)
oHttp.SetClientCertificate(lsCertName)

* Acum ar trebui :
*oHttp.SetCredentials(lsUserCAS, lsPassCAS , 0)
* 0/1 - request sincron/asincron
* In acest prim pas linia poate sa lipseasca pentru ca user-ul este trimis GET serverului

* Timp asteptare (exact asa am gasit la Microsoft exemplul, se asteapata maxim 30 de secunde
* pentru fiecare operatie din lantul send-receive
oHttp.SetTimeouts(30000, 30000, 30000, 30000)
oHttp.Send()

* Se verifica statusul (200 inseamna OK, exact ca la MSxml2.xmlhttp
IF oHttp.status==200
? "OK"
* ? oHttp.responseXML.xml - proprietatea asta exista la celelalte obiecte (alea 3 de sus) adr nu si la
* WinHttp.WinHttpRequest (cand se foloseste probabil trebuie setat si
* oHttp.SetRequestHeader("Content-Type", "text/xml")

? oHttp.ResponseText && aici apare un string formatat HTML, prin care te informeaza ca certificatul a fost recunoscut

* jetonul :
m.OSCP_RESPONSE = oHttp.GetResponseHeader("OSCP_RESPONSE")

* Cookie asa cum se arata in exemplu, trebuie prins si schimbat cu serverul - exact cum face un browser
m.lcCookie = oHttp.GetResponseHeader("Set-Cookie")

? m.OSCP_RESPONSE
? m.lcCookie

* Pentru editficare, iata tot header-ul de raspuns
* ? oHttp.GetAllResponseHeaders()

ELSE
? "NOT OK!"

* se afiseaza numarul erorii
? TRANSFORM( oHttp.Status )

* se afiseaza textul erorii
? TRANSFORM( oHttp.StatusText )
ENDIF

Am trecut si mai departe, am construit anvelopa SOAP si am trimis-o la https://www.siui.ro/svapntws/services/SiuiInsuredWS (tot GET !?!)
(am incercat sa o postez aici dar tag-urile sunt interpretate de forum si nu se afiseaza corect, daca nu stie cineva cum se construieste sa spuna si o atasez)

la care :) serverul zice:
"SiuiInsuredWS
Hi there, this is an AXIS service!
Perhaps there will be a form for invoking the service here..."

Am citit despre acest raspuns pe net dar nu m-am lamurit.

Nu stiu ce trebuie sa fac eu din punctul de vedere al clientului cu linia asta din WSDL

wsdlsoap:address location="http://balsiui/svapntws/services/SiuiInsuredWS"

din tag-ul wsdl:service

E o redirectare, metoda care-mi va rezolva problema (este persoana asigurata sau nu) nu se gaseste la https://www.siui.ro/svapntws/services/SiuiInsuredWS si la http://balsiui/svapntws/services/SiuiInsuredWS
dar nu stiu (cum ziceam) e treaba mea sau a serverului ? E clar trebuie sa mai citesc daca nu se va gasi cineva sa ma lamureasca.

Poate am alta greseala si nu stiu, ma gandesc la
oHttp.SetRequestHeader("KeepAlive", .T.)
asta inseamna conexiune pastrata deschisa si trebuie sa lucrez tot pe ea cu conditia sa-i trimit mereu jetonul pana la mesajul jeton expirat
(Aha! Mi-a venit ideea in timp ce scriam aici)

Gabriel daca reusesti in C# te rog posteaza

 3/21/2011 12:50:20 AM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A) Modified By Dumitru  on 3/21/2011 1:57:41 AM)
Gata! Merge
Am primit raspunsul state=1 (conform GetInsuredResponse.xsd sunt asigurat)

Se foloseste acelasi cod (vezi postul anterior) cu cateva modificari
- header-ul este POST si contine si :
oHttp.SetRequestHeader("OSCP_RESPONSE", m.OSCP_RESPONSE) && de sine statator in header, cookie sunt separate
oHttp.SetRequestHeader("Set-Cookie", m.lcCookie)

- oHttp.Send(m.content) - m.content este XML-ul SOAP (XMLDOM). Acesta trebuie sa fie absolut corect, am avut erori si singurul mesaj primit a fost: Perhaps there will be a form for invoking the service here...
(hint: m-am folosit de "Altova XMLSpy" pentru generare corecta, sunt foarte bune uneltele de la Microsoft dar pe asta mi-au picat ochii in rezultatele lui Googu)

- am adaugat la header si :
oHttp.SetRequestHeader("Content-type", "application/soap+xml; charset=utf-8")
(mi s-a parut normal)

In documentatie se explica cum se face bypass (in .NET) la validarea certificatului serverului (ServerCertificateValidationCallback), nu stiu daca trebuie, am inteles despre ce-i vorba dar nu am facut nimic, in Fox merge asa.

Nu m-am gandit cum va fi raspunsul serverului cand jetonul expira,

Pentru folosire in VFP, ori se parseaza oHttp.ResponseText in cautarea tag-ului "insuredResponse" ori se transforma direct intr-un cursor VFP (XMLTOCURSOR()) si rezulta un cursor cu doua campuri (pid si state) si o inregistrare.

Sporuri
 3/21/2011 6:59:36 AM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
Te rog ataseaza si tag-urile.
De ce nu vrea ? Am atasat imaginea cu eroare. Ce treci la lsCertName ?


imagine.jpg 
 3/21/2011 4:01:52 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A)
Eu am DigiSign si am introdus ceea ce apare in FireFox
Tools - Option - Tab: Advanced -> Button: View Cerificate -> Col: Certificate Name
La primul apel ma intreaba parola de la eToken.

Microsoft :
// Select a client certificate.
HttpReq.SetClientCertificate("LOCAL_MACHINE\\Personal\\My Middle-Tier Certificate");
Am cautat calea si n-am gasit-o in registri asa ca am incercat

Am atasat XML -ul SOAP.

In legatura cu eroarea. Cred ca ai reusit sau esti foarte aproape, ai inregistrat certificatul la CAS ?



request.xml 
 3/21/2011 6:01:28 PM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania)
  Felicitari  pentru reusita ,eu sint blocat  pentru moment

 La mine imi apare ca am cheie de licenta invalida  cind incerc sa ma conectez cu desktop-ul .

 Cred ca va trebui sa merg pe la CJAS sa cer alta cheie  :(



 3/22/2011 8:12:13 AM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
Certificatul este inregistrat la CJAS. Nu vrea si pace.

 3/22/2011 9:06:00 AM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
asta imi apare: "Un certificat este necesar pentru a finaliza autentificarea clientului". certificatul este inregistrat la CJAS .

Ca paranteza in afara subiectului nu stiu ce se intampla dar se putea rezolva toate problemele daca se aplica acelasi principiu ca la declaratia 112. Program pus la dispozitie de ei pentru validarea XML-ului si modul de transmitere mult mai usor decat aici.


 3/22/2011 3:26:07 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (Romania) Modified By Dumitru  on 3/22/2011 4:28:45 PM)
In legatura cu mesajul: e clar, nu transmite certificatul, deci nu-l vede.
Cauta iin registrii in calea LOCAL_MACHINE poate gasesti. Am sa ma uit si eu. Ce certificat ai, adica de la cine (DigiSign, CertSign sau TransSpeed) ? ( ma gandesc ca o fi diferit)
Studiez problema si-ti spun daca aflu.

Toate aplicatiile desktop distribuite gratuit de CNAS, recunosc orice certificat imediat si se conecteaza online pentru raportari si pentru consultari in timp real, ceea ce nu face PDF-ul inteligent.
N-am ce reprosa tehnologiei, probleme sunt dar orice este perfectibil (nu spun asta pentru ca-s in sistem!!!)
Initial pe mine ma interesa pentru o aplicatie in PHP pe care un prieten vrea sa o transforme in stilul SIUI-ului pentru ca intra pe net cu tot felul de dispozitive care n-au viteza dorita si nu are nevoie de conexiune tot timpul ca sa-si faca treaba.
Am vazut chestia aia faina a lui Grig de pe cursvalutar si i-am propus aplicatie desktop VFP si servicii web (PHP). A fost de acord dar nu vrea sa-i citeasca oricine stocul sau sa-l intercepteze.

Sper sa reusesti,
La fel si eu
:)
 3/22/2011 6:44:37 PM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
Certificatul este de la CertSign. Principiul este acelasi deci ar trebui sa functioneze dar mai stii...

In ceea ce priveste aplicatiile desktop asa este cum ai spus dar datele care se culeg prin aplicatia pusa la dispozitie nu sunt suficiente si pentru alte situatii care sunt cerute.
Multumesc anticipat si o sa mai cotrobai si eu.

 
 3/23/2011 12:28:21 PM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania) Modified By Gabriel  on 3/23/2011 2:39:50 PM)
   Cele care vin de la Certisign sint cele mai bine documentate plus ca sint singurele  care vin cu CD de instalare .
   Trebuie doar identificat tipul de dispozitiv ( pina acuma am vazut vreo 3 dar mai sint  ) si in functie de model mers pas cu pas dupa pdf-ul   de instalare

  
   Verificarea daca exista certificat  instalat se face in Internet explorer la options=>Content  cu stickul introdus in calc
    Daca apare este instalat ,daca nu apare se reiau pasi din pdf-ul de instalare ( sa zic subliniez  atentie la modelul fizic de stick !!!!!! )

  
Edit :
Am incercat si eu codul din fox al lui Dumitru si desi am certificatul instalat  programul in fox nu il vede
Cred ca  certificatul a fost instalat in alta locatie  pe calculatorul meu fata de ce este postat  pe site

 3/23/2011 12:45:11 PM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania)
 Dumitru Echim wrote
Extraordinar forumul asta, voi impusca doi iepuri.
Alta documentatie nu exista la CAS-uri (eu lucrez la CAS), daca exista ii ajutam pe cei care intreaba pe aici.
Poate instalez C# ca sa inteleg fenomenul, pe urma vad ce fac cu fox-ul.
Merci Gabriel

[Edit]



 La CJAS se vad erorile de conectare pe undeva in loguri ? Nu imi explic cum se "blocheaza" asa de repede cheile de activare  daca fac greseli de apel

 Am mai incercat sa mai fac ieri conectari cu alt stick si alta cheie ,nu am reusit mare lucru  si astazi iarasi  nu mai functioneaza nici stickul 2 si cheia 2

 Sint in pana de idei pentru moment 





 



 3/23/2011 1:40:13 PM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
In atasament am pus exact ce imi apare in Internet Explorer si eroarea aparuta in program .Dispozitiv criptografic: Aladdin eToken Pro. Chiar nu mai stiu ce sa fac. Nu vrea sa vada dispozitivul si nu stiu de ce ?
IMAGINE.ZIP 
 3/24/2011 12:17:46 AM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania)
Certificatul este instalat  corect dupa imaginea pe care ai atasat-o
 
  Problema este ca foxul nu il vede
  Si eu am incercat cu codul in fox si  tot asa cu certificat instalat ( vazut de codul din C#)  am primit acelasi mesaj ca al tau  la rulare



  
 3/24/2011 7:13:43 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A)
Nu m-am uitat atent in log sa vad cat de detaliate sunt erorile. E foarte lung si nu e un log text, este afisat de interfata aplicatiei. La mai mult CJAS nu are acces.
Cred ca daca nu trimiti bine jetonul este ca si cand ai incerca parole care nu-s bune si de aia se suspenda contul. SIUI-ul asa face si cu utilizatorii interni, daca gresesti de trei ori parola numai administratorul te mai poate pune in drepturi.

M-ati pus pe ganduri cu nerecunoasterea certificatului digital, am sa incerc si eu pe alt calculator cu alt certificat.
La inceput am incercat in VFP fara succes si m-am decis sa instalez C#.
Dupa ce l-am instalat fara sa-l lansez am dat de documentatia de la Microsoft, am citit-o cap-coada ca la scoala cu creionul ("vorba vine" dar mi-a luat mai mult de 10 ore adunate) si apoi am incercat in fox si am reusit aproape din prima.
V-am spus ... eu nu gasesc cheia aia in registri. Gabriel, nu o poti afisa din C# ?
 3/24/2011 7:57:53 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: RAPORTARE SIUI
 (N/A)
Mai baieti, uite la ce m-am gandit: va pot ajuta daca scriu eu o aplicatie in .NET care sa citeasca xml-ul de pe disc si sa o trimita catre SIUI?

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 3/25/2011 8:03:04 AM
User is offlinedcristut
99 posts


Re: RAPORTARE SIUI
 (N/A)
Cred ca ar fi suuuper, multumesc(mim). Nici o solutie VFP n-ar fi rea :) Multumesc Daniel
 3/25/2011 12:01:54 PM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
Ar fi super. Un ajutor foarte mare. Multumesc anticipat.
 3/25/2011 3:04:21 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: RAPORTARE SIUI
 (N/A)
Ok, deci in afara de documentatie ce-mi mai trebuie? inteleg ca astia dau un fel de stick? am nevoie de el?

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 3/25/2011 7:35:49 PM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (Romania)
stick-ul este de fapt certificatul digital, care trebuie inregistrat la CJAS.Da vei avea nevoie ca nu o sa te poti autentifica deoarece o sa-ti ceara certificatul digital.
 3/25/2011 9:04:03 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: RAPORTARE SIUI
 (N/A)
Ok, de unde iau unul? O sa am nevoie de un certificat si de un xml valid.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 3/25/2011 10:08:51 PM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania)
      Multumesc ca m-ai lamurit cu partea cu blocajul.Imi este  acuma clar ce s-a intimplat cu blocajele mele .

     Cit despre partea de certificat  din cite imi dau seama  este citit direct de pe stick in C#  
(  Acuma C#  este un limbaj pe care nu l-am mai folosit aproape niciodata pina recent .
      Tot ce am invatat a fost pe baza codurilor exemple pe care le-am gasit deci nu pot emite o parere pertinenta asupra acestui subiect )

     Ca sa imi simplific viata insa , am pus urmatorul cod  in partea de obtinere a ocsp-ului :

         X509Certificate userCert = X509Certificate.CreateFromCertFile(@"C:\farm\certificat.cer");

        certificat.cer  il export cu minuta din Internet explorer dupa ce  am stickul instalat  si inainte de a apela rutina



   


 3/25/2011 10:28:33 PM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania) Modified By Gabriel  on 3/26/2011 12:27:26 AM)
  In principiu   ptr conectare ai nevoie de  3 lucruri :

- certificat digital calificat  asociat  unui furnizor care este in relatie contractuala cu un CJAS
- nume utilizator (se compune din codul fiscal al furnizorului de mai sus concatenat cu codul casei cu care acesta are contract valid)  (Exemplu  123456_CAS-BV   cod fiscal =123456    CAS-BV codul CJAS BRASOV )
- parola utilizator ( este un grup de cifre care le primeste pe semnatura furnizorul respectiv de la CJAS-ul local cu care este in contract )


Pentru partea de verificare a cnp-ului nu trebuie xml .
Pentru partea de transmitere a datelor catre CJAS da este necesar  sa existe un xml valid dar acesta trebuie trimis intr-o perioada valida .De obicei sint 2-3 zile pe luna cind CJAS-urile accepta raportari ,nu stiu cum se determina acestea

Cam astea sint problemele organizatorice :)


 
 3/25/2011 10:45:14 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A)
Ar fi super daca am trece de partea de autentificare cu care poate sa ne ajute Grig.

Aseara n-am avut eToken sa verific si nici n-am avut timp azi sa mai incerc, acum primesc raspunsul :
Acest certificat nu a putut fi verificat de unitatea emitenta.
Cred ca au modificat ceva. Trebuie sa vad cum fac cu variabila asta de tip X509.

Si nici mai departe nu-i usor, ajunsesem la chestia cu arhiva JavaZip codata Base64, imbracata in anvelopa SOAP si acum trebuie sa o iau de la inceput.
XML-ul SOAP nu-i in toate cazurile simplu de facut.

 3/25/2011 11:31:20 PM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania)
           Si la mine apare acelasi mesaj  si am folosit desktop-ul lor  nu aplicatii proprii

 3/26/2011 12:01:13 AM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A)
Merci, inseamna ca nu merge serverul de autentificare
Bine ca n-am stricat certificatul
:)

 3/26/2011 4:03:51 PM
User is offlinedcristut
99 posts


Re: RAPORTARE SIUI
 (N/A) Modified By dcristut  on 3/26/2011 5:04:23 PM)
SPER ca nu merge serverul de autentificare... Am folosit codul pe care l-ati postat voi (multumesc Dumitru) si imi da eroare 401 de autentificare. Pana face Grig modulul de upload fisier XML pe care l-a promis ;) o sa mai incerc (revin: cu mari sperante in Dumitru :)) cu modulul VFP, care din pacate nu merge momentan. Problema este ca vor trebui facute raportarile la 01 aprilie in acest sistem si din pacate nu i-am dat de capat :( Multumesc, Daniel
 3/26/2011 11:19:39 PM
User is offlinecivitas
19 posts


Re: RAPORTARE SIUI
 (Romania)
Felicitari pt munca depusa Am cateva sugesti pt certificate sper sa ajute Fiecare certificat e practic atasat de un user daca folositi consola microsoft Start -> Run -> MMC 1.File -> Add/Remove Snapin 2.Add the Certificates Snap In 3.Select My USer Acount, then hit next 4.Select Local Computer (the default), then click Finish 5.On the left panel from Console Root, navigate to Certificates (My USer Acount) -> Personal -> Certificates 6.You're certificate will most likely be here (dar el nu exista !!!!! ) 7.Right click on your certificate -> All Tasks -> Manage Private Keys 8.Set you're private key settings here. Daca cautam asa 1.File -> Add/Remove Snapin 2.Add the Certificates Snap In 3.Select Computer Account, then hit next 4.Select Local Computer (the default), then click Finish 5.On the left panel from Console Root, navigate to Certificates (Local Computer) -> Personal -> Certificates 6.You're certificate will most likely be here. (gasim certificatele instalate) Cum am rezolvat ! 1 Am intrat pe token 2 Fiecare smartcard (token) are o functie export certificate 3 am exportat certificatul intrun fisier "mycert.cer" in my document am intrat in run>mmc 1.File -> Add/Remove Snapin 2.Add the Certificates Snap In 3.Select My USer Acount, then hit next 4.Select Local Computer (the default), then click Finish 5.On the left panel from Console Root, navigate to Certificates (My USer Acount) -> Personal -> Certificates Din meniul Action> all task> import> am adus certificatul "mycert.cer" din my document am testat programele ok Specific ca certificatul ramane in acelasi loc pe disc cu privilegii restrinse de acces "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\MachineKeys" pentru a seta privilegii de acces la acest folder 1) Open Windows Explorer and navigate to the directory where the keys are located: C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys 2) Make sure you’re not using the "Simple File Sharing" mode in Windows Explorer. In the Windows Explorer Tools menu, select "Folder Options". Then select the "View" tab. Scroll down and make sure the "Use simple file sharing" checkbox is unchecked. 4) Right-click on the MachineKeys folder. Select "Properties", then select the "Security" tab. (Note: If you didn’t turn off simple file sharing, you wouldn’t see the "security" tab.) 5)advanced >find now (daca doriti sa adaugatii un nou account) 6) Daca account-ul e listat de exempu ( userul curent ) > Select it and then check the "Full Control" checkbox (causing all the other Allow checkboxes to be selected). Then click "Apply". Asta va da control acount current user to container Eu am rezolvat semnatura zip-ul si base64 encript cu chilkat.cript2 in vfp Multa bafta
 3/27/2011 10:18:13 AM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A) Modified By Dumitru  on 3/27/2011 11:44:54 AM)
@civitas, bine ai venit!
Ai testat zip-ul?
Ai cumparat librariile de la ckilkat?
 3/27/2011 12:54:37 PM
User is offlinecivitas
19 posts


Re: RAPORTARE SIUI
 (Romania)
Din cata inteleg eu din documentatiea siui fisierul xml generat in farmacie cu den Farm_... 1 se semneaza cu semnatura atasata de date (rezolvat chilkat.cript2.dll foarte bine documentat cu exemple , rezulta myfile.ps7 testat cu clickSIGN 2.6.9.326 > ok ) 2 se redenumete extensia smime (simplu) 3 se arhiveaza java zip (rezolvat) Se icarca intro variaba string si se acceseaza oHTTP.send( filetostr("myfile.zip")) aici va fi automat codat base64 nu mai e nevoie de o codare prin semnatura se apeleaza sendReport cu jetonul de sesiune obtinut Daca gresesc te rog sa ma corectezi chilkat dll sunt gratuite 30 zile dupa care trebuie cumparate sau primite... dupa introducerea codului de activare ele pot fi distribuite in aplicatile clientilor inregistrarea .dll in windows este foarte simpla si poate fi facuta in program Multe salutari
 3/27/2011 8:10:31 PM
User is offlineDumitru
172 posts
5th


Re: RAPORTARE SIUI
 (N/A) Modified By Dumitru  on 3/27/2011 8:18:14 PM)
Aproximativ asa inteleg si eu, numai ca nu vad unde scrie sa semnez si fisierul XML inainte de transmitere, la metoda SendReport scrie numai :
"parametrul reportXml de tip sir de caractere reprezintă continutul fisierului de raportare arhivat în formatul ZIP (JavaZip) si codat ulterior în formatul Base64."
Daca-l semnez, pentru decriptare SIUI ar trebui sa apeleze din nou serviciul OCSP si nu mi se pare normal de indata ce mi-a verificat antetul https. Nu sunt sigur, asa cred.

[Edit]
Ai dreptate, am gasit la pagina 17
"Fișierele XML generate de aplicatia de raportare vor fi semnate electronic folosind certificatul digital al utilizatorului care realizează raportarea, beneficiind astfel de toate avantajele oferite de această tehnologie. Certificatul digital va fi prezent pe calculatorul pe care este instalată aplicatia de raportare și va fi accesibil aplicatiei prin mijloace de interconectare (instalare pe sistemul de operare sau acces prin driver sistem de pe eToken). "

 3/28/2011 9:53:21 AM
User is offlinecivitas
19 posts


Re: RAPORTARE SIUI
 (Romania)
Ce pot sa spun e, ca nu stiu daca e necesar acum sa fie semnate dar sigur va fi in viitor.

Din cate vad eu in documentatie fisierul arhivat ar tebui sa fie .jar , iar codatea base64 se face pt a putea transmite prin http . Am codat base64/'utf8'. pt .jar incerc un java script ceva de genul Run( 'cscript.exe myfile.js' ) dar ma rot blochez la comanda scriptului " jar -cf test.jar test.xml ; " primesc ceva de genul Error expected " ; " Am folosit filetostr() pt a incarca fisierul de raportare zipat si codat intro variabila si lucru cu ea pt a construi xml-ul soap. dupa care trec la winhttp. Pentru raportare folosesc 2 retete reale de lua aceasta dar cu parafa la medic schimbata pe a nu le incarca (practic urmaresc ca serverul sa-mi raspunda daca raspude cu eroare inseamna ca le va si incarca in final ).

la fisierul xml-soap
voi folosi ceva de genul in body

FARM_denumire_raport
00000000.....variabila filetostr() .... 00000000000000

Daca ai ceva idei sunt binevenite .

 3/28/2011 12:05:58 PM
User is offlinedcristut
99 posts


Semnatura digitala pt. XML
 (N/A)
Buna ziua, Ma indepartez un pic de faza asta a topicului (scuze) si va intreb: pana a ajunge la trimiterea fisierului XML la SIUI el trebuie semnat-arhivat-codat base64. Din cate am vazut, se poate semna un fisier XML utilizand CSPParameters si RSACryptoServiceProvider dar nu-mi merge in VFP, chiar de la pasul 0 = crearea unei instante CSPParameters pe care s-o folosesc in continuare. Ati trecut cumva de pasul asta? Multumesc, Daniel
 3/28/2011 12:37:05 PM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Daniel am folosit chilkat.crypt2 dll

Poate fi acesat din fox si merge perfect

Ca sa folosesti smartcard trebuie sa specifici csp provider name din registri exact

loCsp.ProviderName = "eToken Base Cryptographic Provider"

Semnatura trebuie sa fie atasata de fisier (exista si detasata)
loCrypt.CreateP7M(lcstrdata,lcDataout)

cu acelasi dll codezi si base64 dar dupa ce semnezi si arhivezi

am verificat semnatura cu aplicatile furnizorilor e ok

nu sunt convins ca in prima faza va trebui semnat xml-ul

daca folosesti alte api-uri nu pot sa te ajut

biblioteca o poti folosi free 30 zile

Bafta
 3/28/2011 1:08:51 PM
User is offlinedcristut
99 posts


Re: Semnatura digitala pt. XML
 (N/A)
Multumesc @civitas, o sa incerc cu chilkat dar... o intrebare (idioata probabil): de unde downloadezi chilkat.crypt2 dll pt. ca saitul lor nu-i dau de urma? Ai si alte coordonate de contact? Multumesc, Daniel
 3/28/2011 1:20:04 PM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Daniel :

vezi pagina
http://www.chilkatsoft.com/downloads_ActiveX.asp

Ai un win_reg32.bat in arhiva
Extrage arhiva inr-un folder in aplicatia ta si foloseste win_reg32.bat
La client la fel win_reg32.bat la prima rulare

Bafta
 3/28/2011 1:26:51 PM
User is offlinedcristut
99 posts


Re: Semnatura digitala pt. XML
 (N/A) Modified By dcristut  on 3/28/2011 2:24:44 PM)
Multumesc mult, merge... Evident am downloadat cu totul altceva mai inainte :( O sa incerc si sper sa se rezolve doua din problemele de raportare SIUI. Mai ramane partea de upload fisier XML si receptionare rezultat prin Web services; om vedea... Merge = merge downloadul, nu si aplicatia, acolo mai am de sapat ... Multumesc inca o data, Daniel
 3/28/2011 5:37:46 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
@civitas, sintaxa pentru jar :
jar -cfM test.jar test.xml
"M" pentru a nu creea folderul si fisierul Manifest
Am incercat si eu dar o fi bine sa arhivam cu jar ?

Cristut, ma bucur ca ti-a reusit!


 3/28/2011 11:09:46 PM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Eu vad in documentatie:

Parametrul reportXml de tip sir de caractere reprezintă cotinutul fisierului de
raportare arhivat în formatul ZIP (JavaZip) si codat ulterior în formatul Base64.

Sunt nehotarat pentru acest format cred ca le voi face amandoua
si le voi selecta din setari am tot consultat formatele si nu am gasit java zip ci doar biblioteci
de arhivare in format .zip facute in java

In schimb .jar provine de la java archive
Poate ca gresesc.Oricum documentatia lasa loc de multe interpretari si vom reusi doar prin incercari.
Cineva care lucra la cas stie cum sa facut incarcarea pana acum pe server .zip sau .jar

Domnul Dumitru ati putea posta al doilea apel winhttp de la verificare cnp dupa ce primiti jetonul
undeva fac o gresala primesc un xml ceva de genul 'Verificat Ok' si nu mai am timp sa caut prea mult vreau sa trec la incarcarea rapoartelor

Numele meu e Mihai.
Imi cer scuze am facut o gresala la setarea contului
 3/29/2011 8:11:25 AM
User is offlinealexb17
1 posts


Re: RAPORTARE SIUI
 (France)
La ce anume folosesc string-ul (tokenul) obtinut aici: [b]ret.Headers["OSCP_RESPONSE"][/b]? As dori sa pot valida CNP-ul unui asigurat; pentru asta folosesc: [code]SiuiEnsuredWS.SiuiInsuredWSClient w = new SiuiEnsuredWS.SiuiInsuredWSClient(); string verificareAsigurat = w.getInsured("1234567890123", DateTime.Now);[/code] Cu toate astea, nu vad unde intervine token-ul un cererea aceasta...
 Gabriel wrote
   Presupun ca este vorba de contract cu casa Braila . 

Incearca sa introduci 2 variabile  asa
string username = "5848584_CAS-BR";
 string password = "799A6-LNLQ-NYSX-IJOG";


si atunci poti pune in cod  :

var url = String.Format("https://www.siui.ro/OCSP/validator?username={0}", username);

request.Credentials = new NetworkCredential(username, password);


Vezi si aici  : http://193.151.30.188/cnas/forum/viewtopic.php?t=1597    este un exemplu mult mai complet


 3/29/2011 9:36:08 AM
User is offlineGabriel
52 posts


Re: RAPORTARE SIUI
 (Romania)
Din pacate tot acolo sint .Nu am reusit sa fac pasi inainte.
In principiu trebuie bagat in headerul celui de-al doilea apel  si ambele apeluri trebuie facute intr-o singura conexiune http.


 3/29/2011 10:44:32 AM
User is offlinecivitas
19 posts


Re: RAPORTARE SIUI
 (Romania)
Acesta este al doilea apel imediat dupa primul

x=oHttp.Open([GET], lsURL+[?username=]+m.lsUserCAS, .F.)

oHttp.SetRequestHeader("Accept", "*/*")
oHttp.SetRequestHeader("KeepAlive", .T.)
oHttp.SetRequestHeader("AllowAutoRedirect",.F.)
oHttp.SetRequestHeader("PreAuthenticate",.T.)
oHttp.SetClientCertificate(lsCertName)
oHttp.SetCredentials(m.lsUserCAS, m.lsPassCAS , 0)

**incarcare jeton de la primul apel
oHttp.SetRequestHeader("OSCP_RESPONSE", m.OSCP_RESPONSE)
oHttp.SetRequestHeader("Set-Cookie", m.lcCookie)

oHttp.SetRequestHeader("Content-type", "application/soap+xml; charset=utf-8")
oHttp.SetTimeouts(30000, 30000, 30000, 30000)


m.content=filetostr('cnptest.xml')
**cnptest e fisierul soap-xml care contine comenzile soap listate in documentatie la vsdl
oHttp.Send(m.content)

**raspunsul
? oHttp.ResponseText

Primesc xml cu raspunsul Verificat ok .
Ceva gresesc daca aveti idei sunt binevenite
Bafta
 3/29/2011 11:36:07 AM
User is offlinedcristut
99 posts


Re: RAPORTARE SIUI
 (N/A) Modified By dcristut  on 3/29/2011 1:45:11 PM)
Ce pui in variabila lsCertName ?? Multumesc P.S. Ce parere aveti: raportarea XML-urilor prin servicii Web este OBLIGATORIE din 01.04 sau se poate raporta si ca inainte? In Specificatii, la pct.3.2.2. se spune: "Daca utilizatorul nu dispune de conexiune cu SIUI poate salva fisierul de raportare pe un mediu de stocare mobil si se va prezenta cu acest fisier la casa de asigurari." !!
 3/29/2011 2:00:09 PM
User is offlinegusu
22 posts


Re: RAPORTARE SIUI
 (N/A)
Cei de la CJAS Braila au spus ca nu este nici o problema daca nu se face raportarea online se poate merge ca pana acum cu XML-ul pe mediu de stocare mobil. Bucurestiu spune ca momentan ce scrie in documentatie aia se va face. Deci eu zic ca se poate dar mai sti ce le trasneste in cap.

O ZI BUNA SI SPOR LA BUTONAT
 3/29/2011 6:03:09 PM
User is offlinecivitas
19 posts


Re: RAPORTARE SIUI
 (Romania)
CN de la certificate subject
O sa incerc si cu o variabila x509 cum vad prin alte forumuri
dar eu cred ca aceasta comanda incarca chiar variabila x509.

Certificatul trebuie instalat in local machine store
Majoritatea se instaleaza in default user store

Exportati certificatul de pe token intr-un folder pe disc
folositi conosla microsoft start > run > mmc ...>>> file add_remove snapin >add >certificates>Add>computer acout>next>finish> Close>ok>..... >in certificates>personal>Din meniu >action>import> de unde l-ai salvat

Iti spun asta pt ca ca foarte multa lume greseste aici si nu se vad certificatele incarcate dupa CN
Bafta

 3/30/2011 9:49:54 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A) Modified By Dumitru  on 3/31/2011 2:44:59 AM)
Iata codul pentru getInsured.
Am optat pentru varianta ON ERROR in loc de TRY ... CATCH pentru a functiona si pe versiuni inferioare.
Am folosit VFP7.0

Stie cineva ce conditii trebuie sa indeplineasca un program C# si cum se compileaza DLL mai exact OCX ?

Bucurie tuturor

getInsuredY.rar 
 3/31/2011 8:12:52 AM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Multumesc pt coduri acum verific

Mai exact doresti sa folosesti mai multe dll-uri si sa formezi un obiect ocx in .net . Conteaza in ce mediu doresti sa-l dezvolti (...visual studio vrs.. sau chiar si vfp stie sa faca .dll refolosibile in c si vb )
Plus ca ar mai trebui urmarit si programul target (e mult mai bine pt tranferul variabilelor sa le prelucrezi in deja in ocx-ul sau .dll-ul compilat . Dar parerea mea e ca ar trebui sa creezi o biblioteca dinamica .dll si sa o documentezi cu exemple clare)

Mihai
 3/31/2011 8:41:01 AM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Dn-ul Echim

Am tras o ocheada peste cod. Va felicit pt munca depusa. Codul este ingrijit si documentat. Va multumesc.
Caut un colaborator de mult. Daca nu avetii alte angajamente foarte mari va rog sa-mi scrieti la civitasbn@yahoo.com .
 3/31/2011 9:44:01 AM
User is offlinegusu
22 posts


Re: Semnatura digitala pt. XML
 (N/A)
Felicitari pentru cod, felicitari pentru munca. O zi buna sa aveti.
 3/31/2011 12:58:12 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (Romania)
Ma bucur daca va este de folos
 3/31/2011 2:04:04 PM
User is offlinedcristut
99 posts


Re: Semnatura digitala pt. XML
 (N/A)
Ne este de FOARTE mare folos. Multumim mult Dumitru! O intrebare: in GetInsured1, nu trebuia un m.P_YHTTP = CREATEOBJECT([WinHttp.WinHttpRequest.5.1]) inainte de m.P_YHTTP.Open... ? Multumesc inca o data, Daniel
 3/31/2011 2:13:55 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (Romania) Modified By Dumitru  on 3/31/2011 11:57:33 PM)
Nu trebuie, exista PUBLIC ALL LIKE P_* imediat dupa parametrii. Initial l-am pus dar mi-am dat seama ca obiectul exista.
Am pus publice acele variabile pentru ca la intrarea in aplicatie sa fie initializate, prin apelul getJeton() se obtine jetonul si legatura exista.
Daca ulterior in getInsured(cnp, data) apare o eroare functia apeleaza ea getJeton() si reinitializeaza obiectul WinHTTPRequest.
Am facut asa pentru ca nu stiu cum arata raspunsul serverului cand jetonul expira.

[Edit]
M-am uitat peste cod si asa este, ai dreptate, ca sa se inteleaga mai trebuia un apel getJeton()

IF !getJeton(@m.sResponse)
? sResponse
RETURN
ENDIF
IF getInsured(m.pcCNP, m.pdDate, @m.sResponse)
? sResponse
ELSE
? sResponse
ENDIF

dar in aplicatia mare

IF !getJeton(@m.sResponse)
? sResponse
RETURN
ENDIF

se gaseste in partea de initializare la fel si variabilele globale.
Evident se poate opta pentru orice alta variana. Eu de obicei initializez un obiect pe post de Register unde le tin dar asa am facut probele.
 4/4/2011 10:17:03 AM
User is offlinegusu
22 posts


Re: Semnatura digitala pt. XML
 (N/A)

Buna dimineata

Domnule Echim  pentru SiuiWS.wsdl si SiuiValidateWS.wsdl se poate merge ca principiu pe programul facut de dumneavoastra ?  Banuiesc ca trebuie schimbata anvelopa SOAP sau gresesc ? Va multumesc anticipat.

 4/4/2011 11:09:13 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A) Modified By Dumitru  on 4/4/2011 11:10:24 PM)
Principiul trebuie sa fie acelasi, nu vad de ce nu ar merge.
Am atasat XML-urile SOAP pentru toate serviciile, poate va sunt utile. N-am muncit, Altova XMLSpy le-a facut.
Pentru metoda sendReport nu am clar fluxul:
XML->semnare->comprimare JavaZip->codare Base64 sau XML->comprimare JavaZip->codare Base64
Nu stiu care-i corect. Stie cineva?
SOAP.rar 
 4/5/2011 2:49:01 AM
User is offlineGabriel
52 posts


Re: Semnatura digitala pt. XML
 (Romania)
Din  specificatii citire :

"Se pregătesc datele pentru raportare:
    - Se generează fişierul de raportare XML corespunzător perioadei selectate.
    - Se validează fişierul XML cu schema de validare XSD corespunzătoare.
    - Se semnează electronic fişierul XML, schimbându-i-se extensia în SMIME.
    - Se arhivează fişierul XML folosind algoritmul ZIP.
    - Se codifică conŃinutul arhivei folosind codarea Base64.
Se apelează metoda sendReport cu parametrii corespunzători.
Dacă metoda întoarce valoarea true se afişează mesaj de succes.
Altfel se afişează un mesaj de eroare de comunicaŃie.
"
 4/5/2011 7:43:48 AM
User is offlinegusu
22 posts


Re: Semnatura digitala pt. XML
 (N/A)
Buna dimineata.

Multumesc / Multumim mult pentru ajutor. Ne sunt de folos , ne-ati scos din incurcatura. O sa incerc. Sper sa  ma descurc. 

O zi buna 
 4/5/2011 1:34:02 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (Romania) Modified By Dumitru  on 4/6/2011 12:20:30 AM)
SMIME! Multumesc Gabriel

[Edit]
Esti sigur?
Si algoritmul de semnare trebuie sa respecte specificatiile S/MIME ?

Am observat ca un XML SIGN este foarte sensibil, devine invalid daca-l redenumesti. La fel daca te "uiti" in el fara sa modifici nimic si-l salvezi.
Am folosit C#, e un exemplu la Microsoft - merge din prima.
Cred ca aici s-ar impune o detaliere in documentatie, inclusiv o referinta spre ce inseamna algoritm JavaZip daca SIUI nu intelege orice zip.
 4/6/2011 8:10:45 AM
User is offlineGabriel
52 posts


Re: Semnatura digitala pt. XML
 (Romania)
Aici este tot documentul : http://193.151.30.188/cnas/siui_2.0/docs/WebServices/Specificatie%20Interfatare%20SIUI%202.0%20-%20Aplicatii_de_Raportare_pentru_Furnizori.pdf
La pagina 39 apare "algoritmul"  de generare al fisierului  pentru trimitirea raportului
Chestia cu semnatura electronica a aparut ca un cadou de 8 martie cu termen de implementare  01 aprilie (Nu era in documentatia originala publicata la sfirsitul lui decembrie 2010)


"Suportul"   este aproape inexistent desi au fost norocosi care au primit raspuns la problemele care le-au trimis prin email  .
Eu nu am primit nimic decit niste numere de sesizare asta undeva prin decembrie 2010 si de atunci nimic altceva.Este adevarat ca nici nu i-am mai deranjat  cu email-uri, poate aici am gresit  si trebuia sa insist.

Adresa  de "suport tehnic"  este : suport.siui@hp.com

Ce este mai interesant este cadrul legal  pentru "suport" si anume , conform aceste hotariri  afisate la adresa : http://gw.casbv.ro/forum_smf/index.php?topic=1673.0
,linkul direct :  http://gw.casbv.ro/forum_smf/index.php?action=dlattach;topic=1673.0;attach=321  nu prea exista o obligatie contractuala  pentru  Siveco  in privinta suportului  asigurat dezvoltatorilor de programe .

Eu am interpretat acest document ca ceva de genul : ce vor ei sa iti raspunda este bine raspuns .,nu vor sa iti raspunda este perfect legal si nu ai unde sa te plingi




 4/6/2011 2:43:30 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (Romania) Modified By Dumitru  on 4/6/2011 3:12:08 PM)
Da,multumesc. Nu l-am vazut.
 4/8/2011 1:07:18 PM
User is offlinedcristut
99 posts


In concluzie...
 (N/A)
Stiu ca s-a amanat raportarea cu 2 luni dar, in acest moment, a reusit cineva un ciclu complet de semnare-arhivare-codare-transmitere-receptie a fisierelor XML pentru SIUI 2? Multumesc, Daniel
 5/2/2011 8:26:39 AM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Dn Echim
Ati mai lucrat la getisured

Incerc sa o apelaz si primesc eroare 401 la cel de-al doilea apel

Aveti o ideie de verificare

Multumesc
 5/2/2011 9:46:53 AM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
 civitas wrote
Dn Echim
Ati mai lucrat la getisured

Incerc sa o apelaz si primesc eroare 401 la cel de-al doilea apel

Aveti o ideie de verificare

Multumesc

Exact codul de mai sus la mine merge (mai exact mergea, n-am mai incercat, poate au modificat iar ceva).

Am citit un pic cum sta treaba in PHP pentru ca nu stiu cum as putea in Fox sa fac cererile de pe un singur calculator din reteaua locala (adica sa pun etoken-ul numai pe unul). Nu stapanesc tehnica COM din fox (asa cred ca tebuie procedat) mi-ar prinde bine un ABC
 5/3/2011 9:00:21 AM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Din cate am citit eu in documentatie MS

Trebuie creat un obiect la distanta avand in vedere ca mediul vfp functioneaza ca server

Primul apel se executa la pornirea serverului se obtine jetonul . . .
Al doilea apel se face prin creerea de catre client a unui obiect pe server care executa comenzile soap cu jetonul obtinut de la pornirea serverului CreateObject()
Bineinteles ca aplicatile sunt compilate ca atare
 5/3/2011 10:44:47 AM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Am luat ex asta de pe situl microsoft si functioneaza perfect pe local
La comanda CreateObject("myserver.myclass") dai si numele computerului unde ruleaza serverul com vezi in specificatii
Cand definesti clasa introduci o functie cu primul apel si alta cu al doilea apel ( in pricipiu ) dupa care apelezi .
link http://msdn.microsoft.com/en-us/library/ms917477.aspx#vfpandcom_topic07





*This entirely self-contained program will build a COM server
* called "myserver.myclass"
* It will unregister a prior instance, if any

IF PROGRAM() != "MYCLASS"
?"this file MUST BE NAMED 'myclass.prg'"
return
ENDIF

IF FILE("myclass.dll")
DECLARE integer DllUnregisterServer IN myclass.dll
DllUnregisterServer()
CLEAR DLLS
ENDIF

BUILD PROJECT myserver FROM myclass
BUILD DLL myserver from myserver recomp
*now test this COM server:

RETU
ox = CreateObject("myserver.myclass") && create the server object
ox.mydocmd("USE home(1)+'samples\data\customer'") && use a table
?ox.myeval("RECCOUNT()") && get the record count



DEFINE CLASS myclass AS session OLEPUBLIC
PROCEDURE MyDoCmd(cCmd as String) as Variant ;
helpstring "Execute a VFP cmd"
&cCmd && just execute parm as if it were a fox command
FUNCTION MyEval(cExpr as String) ;
helpstring "Evaluate a VFP expression"
RETURN &cExpr && evaluate parm as if it were a fox expr
FUNCTION Error(nError, cMethod, nLine)
COMreturnerror(cMethod+' err#='+str(nError,5)+;
' line='+str(nline,6)+' '+message(),_VFP.ServerName)
&& this line is never executed
ENDDEFINE
 5/4/2011 12:23:29 AM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
Aha! Ma uit, multumesc
 5/4/2011 9:31:41 AM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Am reverificat getinsured
Merge perfect
Era o problema cu conventia primita de la cas imi cer scuze

Mihai
 5/4/2011 1:32:03 PM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Am verificat com server cu get insured
Aici e codul doar cu primul acess



**SET DEFAULT TO

IF PROGRAM() != "MYCNP"
?"this file MUST BE NAMED 'mycnp.prg'"
return
ENDIF

IF FILE("mycnp.dll")
DECLARE integer DllUnregisterServer IN mycnp.dll
DllUnregisterServer()
CLEAR DLLS
ENDIF

BUILD PROJECT myserver FROM mycnp
BUILD DLL myserver from myserver recomp

***********************************************************

DEFINE CLASS mycnp AS session OLEPUBLIC

ohttp=null

PROCEDURE Init
This.ohttp = CREATEOBJECT([WinHttp.WinHttpRequest.5.1])
P_YCertName = [Nume - Cosmin M. Talos]
OSCP = "https://www.siui.ro/OCSP/validator"
this.ohttp.Open([GET], OSCP+[?username=]+'11111111_CAS-BN', .F.)
this.ohttp.SetRequestHeader("Accept", "*/*")
this.ohttp.SetRequestHeader("KeepAlive", .T.)
this.ohttp.SetRequestHeader("AllowAutoRedirect",.F.)
this.ohttp.SetRequestHeader("PreAuthenticate",.T.)
this.ohttp.SetClientCertificate(P_YCertName)
this.ohttp.SetTimeouts(30000, 30000, 30000, 30000)

ENDPROC

PROCEDURE MyDoCmd(cCmd as String) as Variant ;
helpstring "Execute a VFP cmd"
&cCmd && just execute parm as if it were a fox command


FUNCTION MyEval(cExpr as String) ;
helpstring "Evaluate a VFP expression"
RETURN &cExpr && evaluate parm as if it were a fox expr

PROCEDURE cnptest(cEx as String)
this.ohttp.Send()
cex=ALLTRIM(STR(this.ohttp.status))
RETURN &cEx


FUNCTION Error(nError, cMethod, nLine)
COMreturnerror(cMethod+' err#='+str(nError,5)+;
' line='+str(nline,6)+' '+message(),_VFP.ServerName)
&& this line is never executed

ENDDEFINE



*********** accesare server din fereastra de comenzi

** ox = CreateObject("myserver.mycnp","servername")
** ?ox.cnptest
 5/4/2011 10:03:42 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
Merge si la mine, nu era buna seria de licenta. Ciudat ca a fost buna.
Revin si eu la fox.
Multumesc @civitas
 5/5/2011 8:16:49 AM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Ati reusit sa semnati xml pt. raportare ?
Daca nu va pot ajuta acolo.

Mihai
 5/5/2011 10:09:23 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A) Modified By Dumitru  on 5/5/2011 10:10:01 PM)
Mihai, ti-a reusit sendReport?
 5/5/2011 10:24:38 PM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Inca nu am trimis dar cred ca semnatura arhivarea si codarea base 64 sunt bune

Din cate am inteles da ceva eroare dupa incarcare

O sa incep in curand sa incerc.
 5/17/2011 3:07:24 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
 Dumitru Echim wrote
Mihai, ti-a reusit sendReport?

Dl. Dumitru, am incercat getinsuredy atasat de dvs. Vroiam sa va multumesc. Merge perfect. Acum incerc sa lamuresc si problema cu trimiterea raportului, pentru ca acolo vreau sa ajung, de fapt. Si verificarea calitatii de asigurat e ok. Mi-am facut o idee cam care este mersul. Daca, intre timp, reusiti ceva si cu trimiterea raportului, poate postati aici un exemplu similar cu cel de la getinsuredy, care, daca imi permiteti, este cel mai bine documentat exemplu cu care am avut de lucru pina acum.
Inca o data, va multumesc.
 5/18/2011 6:38:31 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
Unele trebuie sa le ghicesc pentru ca nu am mai lucrat ceva asemanator. Cand voi avea ceva stabil voi posta. Sper sa fie in timp util.
Intampin probleme si la GetInsured acolo unde windows-ul nu este updatat la zi.
 5/19/2011 9:54:40 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Huh... deci de acolo mi se trage si mie.. :D
Am incercat getinsured si pe alt calculator, unde nu a vrut sa mearga sub nici o forma... si intr-adevar, era un SP2, fara nici un fel de update. Thx dl.Dumitru. M-am linistit. Azi o sa incerc sa vad ce pot sa fac cu raportarea, desi mi-am cam prins urechile la arhivare/incapsulare. Probabil tot din acelasi motiv ca si dvs. Nici eu nu am mai lucrat la nivelul asta, si o iau babeste.
La partea de semnare digitala a fisierului, am rezolvat-o mai low tech. Am luat de pe site de la Digisign (de unde am eu tokenul) un programel care imi permite semnarea digitala a fisierului, din Explorer. Si asta pentru ca nu am nici cea mai mica idee cum sa o fac via cod.
Daca mai aflu ceva/ma mai lovesc de ceva probleme, o sa imi permit sa revin cu un update aici.
Multumesc, inca o data.
 5/27/2011 4:12:38 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Ceva idee cum pot sa "codific continutul arhivei folosind codarea Base64" ? Sa zicem ca am reusit sa arhivez xml-ul, desi nu sint convins ca e bine, dar la partea de codare a continutului m-am intepenit. Tot ce am putut sa fac/gasesc apropo de aceasta codare se refera la o codare de string.
Orice idee e binevenita, pentru ca, oricum, in momentul asta, neuronii mei deja se sinucid. :D
Thx.
 5/28/2011 2:21:54 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Semnatura digitala pt. XML
 (N/A)
Uite-te la functia StrConv() - permite codarea/decodarea base64 a unui string dat.
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 5/28/2011 3:54:34 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A) Modified By Dumitru  on 5/28/2011 4:11:31 PM)
CRIPTARE-DECRIPTARE BASE64

obj64 = CREATEOBJECT('base64')
* Criptare
IF !obj64.encrypt('test.zip','test.b64')
    =MESSAGEBOX(obj64.msgErr,0,'Eroare!')
ENDIF    
* Decriptare
IF !obj64.decrypt('test.b64','test1.zip')
    =MESSAGEBOX(obj64.msgErr,0,'Eroare!')
ENDIF    


DEFINE CLASS base64 AS custom

    sourceFile = ""
    destFile   = ""
    msgErr = ""

    PROCEDURE verifyParams
    PARAMETERS sMethod, sourceFile, destFile
        PRIVATE m.testErr
        STORE .F. TO testErr
        THIS.msgErr = ""
        IF EMPTY(sourceFile)
            THIS.msgErr = '*** Eroare in '+ m.sMethod + ', parametrul/proprietatea "sourceFile" nu este setata.'
            m.testErr = .T.
        ENDIF
        IF EMPTY(destFile)
            THIS.msgErr = THIS.msgErr + CHR(13) + '*** Eroare in '+ m.sMethod + ', parametrul/proprietatea "destFile" nu este setata.'
            m.testErr = .T.
        ENDIF
        IF ! FILE(m.sourceFile)
            THIS.msgErr = THIS.msgErr + CHR(13) + '*** Eroare in '+ m.sMethod + ', Fisierul "'+ m.sourceFile+'" nu exista .'
            m.testErr = .T.
        ENDIF
        IF FILE(m.destFile)
            nResponse = MESSAGEBOX('Fisierul "'+ m.destFile + '" exista! Scriu peste?', 36, 'Hop!')
            IF nResponse = 7
                THIS.msgErr = THIS.msgErr + CHR(13) + '*** Actiune intrerupta de utilizator'
                m.testErr = .T.
            ENDIF
        ENDIF    
        RETURN !testErr
    ENDPROC    
    
    PROCEDURE encrypt
    PARAMETERS sSourceFile, sDestFile
        PRIVATE sourceFile, destFile, cSrc, nFlags, nBufSize, cDst
        m.sourceFile = IIF(TYPE('sSourceFile') != 'C', THIS.sourceFile, sSourceFile)
        m.destFile =  IIF(TYPE('sDestFile') != 'C', THIS.destFile, sDestFile)
        IF ! THIS.verifyParams('base64::encrypt',sourceFile, destFile)
            RETURN .F.
        ENDIF
        DECLARE INTEGER CryptBinaryToString IN Crypt32;
            STRING @pbBinary, LONG cbBinary, LONG dwFlags,;
            STRING @pszString, LONG @pcchString
        cSrc = FILETOSTR(sourceFile)
        nFlags = 0x0001
        nBufsize=0
        = CryptBinaryToString(@cSrc, LEN(cSrc),;
            m.nFlags, NULL, @nBufsize)
        cDst = REPLICATE(CHR(0), m.nBufsize)
        IF CryptBinaryToString(@cSrc, LEN(cSrc), m.nFlags,;
            @cDst, @nBufsize) = 0
            CLEAR DLLS
            THIS.msgErr = '*** Eroare necunoscuta in base64::encrypt (1)'
            RETURN .F.   
        ENDIF
        STRTOFILE(cDst,destFile)
        CLEAR DLLS
        IF !FILE(destFile)
            THIS.msgErr = '*** Eroare necunoscuta in base64::encrypt  (2)'
            RETURN .F.
        ELSE
            THIS.msgErr = "OK"
            RETURN .T.
        ENDIF
    ENDPROC
    
    PROCEDURE decrypt
    PARAMETERS sSourceFile, sDestFile
        PRIVATE sourceFile, destFile, cSrc, nFlags, nBufSize, cDst
        m.sourceFile = IIF(TYPE('sSourceFile') != 'C', THIS.sourceFile, sSourceFile)
        m.destFile =  IIF(TYPE('sDestFile') != 'C', THIS.destFile, sDestFile)
        IF ! THIS.verifyParams('base64::decrypt',sourceFile, destFile)
            RETURN .F.
        ENDIF
       DECLARE INTEGER CryptStringToBinary IN crypt32;
            STRING @pszString, LONG cchString, LONG dwFlags,;
            STRING @pbBinary, LONG @pcbBinary,;
            LONG pdwSkip, LONG pdwFlags
         cSrc = FILETOSTR(sourceFile)
        nFlags = 0x0001
        nBufsize=0
        = CryptStringToBinary(@cSrc, LEN(m.cSrc),;
            nFlags, NULL, @nBufsize, 0,0)
        cDst = REPLICATE(CHR(0), m.nBufsize)
        IF CryptStringToBinary(@cSrc, LEN(m.cSrc),;
            nFlags, @cDst, @nBufsize, 0,0) = 0
            CLEAR DLLS
            THIS.msgErr = '- Eroare necunoscuta in base64::decrypt (3)'
            RETURN .F.   
        ENDIF
        STRTOFILE(cDst,destFile)
        CLEAR DLLS
        IF !FILE(destFile)
            THIS.msgErr = '- Eroare necunoscuta in base64::decrypt  (4)'
            RETURN .F.
        ELSE
            THIS.msgErr = "OK"
            RETURN .T.
        ENDIF
    ENDPROC
    
ENDDEFINE
 




Pune cineva si pentru semnatura digitala!?!




  Visual FoxPro  Aplicatii Web  RAPORTARE SIUI...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement