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...
 Re: Semnatura digitala pt. XML
 
 5/30/2011 10:41:15 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
 Grigore Dolghin wrote
Uite-te la functia StrConv() - permite codarea/decodarea base64 a unui string dat.

Well, la aia m-am uitat. Dar, asa cum am mai zis, neuronii mei erau la capitolul sinucidere in masa. Probabil d-aia am zis ca nu e ce imi trebuie mie, ca strconv(13) face codare string (nu continut de arhiva) si 14 face decodare.
Thx.
 5/30/2011 10:43:34 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Thx Dumitru. Mi-ai salvat neuronii de la moarte. :)
Cu semnatura, daca mi-ar fi iesit ceva, ajutam si eu cu cea mai mare placere, dar, asa cum am mai zis, eu semnez fisierul offline. Daca are cineva nevoie de softul respectiv, sa zica, si il atasez aici. Este pentru tokenul usb de la Digisign.
Thx.
Sa vedem daca ma descurc sa merg mai departe.
PS. De ce este nevoie sa faca oamenii de la Siveco chestia asta atit de complicata ?!
 5/30/2011 11:13:45 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
Ataseaza, daca vrei, un fisier XML semnat cu softul de care zici.
(nu cred ca incalci nici o regula de confidentialitate, un XML oarecare, eventual unul de raportare din care lasi doar cateva inregistrari de test)
 5/31/2011 1:09:28 PM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (Romania)
Un inceput pt Semnatura Digitala

La inceput sa vedem cum se face

Fisier de semnat > functia matematica de calcul hasp > returneaza sting hasp (necriptat de lungime fixa indiferent de lungimea fisierului) > Criptare string hasp cu keia de pe token > rezulta semnatura digitala detasata > atasarea la fisierul original

Cam astea zic eu ca sunt operatile

Acum folosind cryptoapi din windows
Atentie cod incomplect mai trebuie lucrat

**#include "....director ..vfp\fcc\wincrypt.h"
**verificati wincript din director vfp\fcc


#DEFINE dnALG_TYPE_ANY 0
#DEFINE dnALG_TYPE_RSA BITLSHIFT(2,9)
#DEFINE dnALG_CLASS_HASH BITLSHIFT(4,13)
#DEFINE dnALG_SID_SHA 4
#DEFINE dnPROV_RSA_FULL 1
#DEFINE dsMS_DEF_PROV_A "Oberthur Card Systems Cryptographic Provider"
#DEFINE dnCRYPT_VERIFYCONTEXT 0xF0000000
#DEFINE dnCALG_SHA BITOR(BITOR(dnALG_CLASS_HASH,dnALG_TYPE_ANY),dnALG_SID_SHA)

#DEFINE dnHP_HASHVAL 0x0002

SET DEFAULT TO c:\cript

PUBLIC tcdata
PUBLIC error


**luati orice fisier text
tcData=FILETOSTR('test.xml')

LOCAL lnStatus, lnErr, lhProv, lhHashObject, lnDataSize, lcHashValue, lnHashSize
lhProv = 0
lhHashObject = 0
lnDataSize = LEN(tcData)
lcHashValue = REPLICATE(CHR(0), 16)
lnHashSize = LEN(lcHashValue)


DECLARE INTEGER GetLastError ;
IN win32api AS GetLastError

DECLARE INTEGER CryptAcquireContextA ;
IN WIN32API AS CryptAcquireContext ;
INTEGER @lhProvHandle, ;
STRING cContainer, ;
STRING cProvider, ;
INTEGER nProvType, ;
INTEGER nFlags

* load a crypto provider
lnStatus = CryptAcquireContext(@lhProv, 0, 0, dnPROV_RSA_FULL,dnCRYPT_VERIFYCONTEXT)
?lnStatus
IF lnStatus = 0

=MESSAGEBOX(GetLastError())
** THROW GetLastError()
ENDIF




DECLARE INTEGER CryptCreateHash ;
IN WIN32API AS CryptCreateHash ;
INTEGER hProviderHandle, ;
INTEGER nALG_ID, ;
INTEGER hKeyhandle, ;
INTEGER nFlags, ;
INTEGER @hCryptHashHandle

* create a hash object that uses sha1 algorithm
lnStatus = CryptCreateHash(lhProv, dnCALG_SHA, 0, 0, @lhHashObject)
?lnStatus
IF lnStatus = 0
THROW GetLastError()
ENDIF


DECLARE INTEGER CryptHashData ;
IN WIN32API AS CryptHashData ;
INTEGER hHashHandle, ;
STRING @cData, ;
INTEGER nDataLen, ;
INTEGER nFlags

* add the input data to the hash object
lnStatus = CryptHashData(lhHashObject, tcData, lnDataSize, 0)
?lnStatus
IF lnStatus = 0
=MESSAGEBOX(GetLastError())
**THROW GetLastError()
ENDIF


***** aici apare eroarea
*****daca aveti idei .......

DECLARE INTEGER CryptGetHashParam ;
IN WIN32API AS CryptGetHashParam ;
INTEGER hHashHandle, ;
INTEGER nParam, ;
STRING @cHashValue, ;
INTEGER @nHashSize, ;
INTEGER nFlags

* retrieve the hash value, if caller did not provide enough storage (16 bytes for MD5)
* this will fail with dnERROR_MORE_DATA and lnHashSize will contain needed storage size
lnStatus = CryptGetHashParam(lhHashObject, dnHP_HASHVAL, @lcHashValue, @lnHashSize, 0)
?lnStatus
IF lnStatus = 0

=MESSAGEBOX(GetLastError())
THROW GetLastError()
ENDIF


*** @lcHashValue e stringul semnaturi criptat
*** ramane de atasat la stringul fisierului

retu

Arhivarea..
Diferenta dintre win zip si java zip
In sistemele unix sunt doua lucruri diferite arhiva fisierelor se face cu un program si comprimarea
cu altul sunt 2 lucruri diferite asta face java zip o arhiva si comprimare in acelasi fisier

Base 64 codifica fisierul pt a putea fi trimis prin http



 6/1/2011 12:50:44 AM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A) Modified By Dumitru  on 6/1/2011 12:54:30 AM)
Incearca cu 7z.exe si 7z.dll (sunt un fel de runtime pentru pachetul 7z). Am trimis fisiere zip-ate cu el si a mers.
La fel este verificata si codarea Base64 dintr-un post anterior.

 6/1/2011 10:36:51 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
uite si atasamentul. un xml semnat offline. daca sint ceva probleme/nelamuriri, va rog sa imi spuneti si mie. sa nu ma omor sa merg mai departe, daca nu e bine.
Nu pot sa sui fisiere p7m. I-am schimbat terminatia in zip. Dupa semnare, fisierul are terminatia p7m. O schimbati de mina, daca vreti sa folositi fisierul.
MD_12345678_20100114_1611.xml.zip 
 6/1/2011 12:45:36 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (Romania)
Multumesc. Ma uit
 6/2/2011 1:23:02 AM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A) Modified By Dumitru  on 6/2/2011 7:23:09 AM)
Mihai, nu inteleg unde-i legatura cu certificatul calificat in codul tau. Cred ca trebuie criptat cu string-ul cheie privata.
Este o clasa _crtpt.vcx in \FFC, stie sa faca asta are si o metoda (signFile) doar ca trebuie sa-i dai string-ul cu care sa cripteze.
Partea asta mai trebuie si e rezolvat totul in Fox (cu ajutor API de la Windows).
 6/2/2011 7:20:29 PM
User is offlinecivitas
19 posts


Re: Semnatura digitala pt. XML
 (N/A)
Ai dreptate cu certificatul aici se incarca doar csp-ul
Clasa din fox nu stie sha1 ci md5 e o diferenta mare altfel era rezolat totul
Problema e ca nu am timp zilele astea cu noile modificari siui
Ramane de vazut
In orice caz cryptoapi rezolva totul asta e sigur pentru ca am semnat
cu alt program ce folosea cryptoapi.
 6/9/2011 9:36:53 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Dumitru, ai avut timp sa te uiti la fisierul ala ? E totul OK cu el ? Pot sa continui procesul de descoperire la raportarea asta ?
Inca o intrebare.
Din ce am citit in documentatie, si daca am inteles eu bine, fisierul trebuie trimis ca string ? Si ma poti ajuta cu treaba cu SOAP ? Sau cu un exemplu de fisier format pentru trimitere (Eventual cu ceva x-uri unde trebuie sa bag eu stringul din fisierul de raportat.) Multumesc.
Berea o dau eu, daca esti (sau ai vreodata treaba prin Bucuresti.).
Inca o data, multumesc.
 6/10/2011 2:19:34 AM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A) Modified By Dumitru  on 6/10/2011 2:50:25 AM)
Am uitat ca forumul interpreteaza tag-urile HTML, dupa ce am scris am vazut. Pentru ca nu-i devreme [ sau e! :) ] am atasat repede raspunsul cu copy/paste, sper ca nu e asta o problema
sendReport.txt 
 6/10/2011 10:24:55 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Nu e nici o problema. Iti multumesc. Sper, ca de acum, sa ma descurc. Daca mai am ceva probleme, o sa revin cu o strigare.
Inca o data, ramin dator.

 6/24/2011 12:28:07 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Dumitru... AJUTOR ?
Am facut toata povestea care mi-ai trimis-o tu.
Problema este ca primesc un raspuns (xml) de la server, de genul:
- <html>
  <head />
  <body>Verificat: OK!</body>
</
html>
Asta ce inseamna ?
Iar variabila sResponse este.. ahem.. nuda... :)
Ce inseamna chestia asta ?
E bine ? E rau ? Am cautat pe net de am tocit lentilele la ochelari.. si n-am gasit nimic... :)
Thx.
 6/24/2011 11:17:30 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
Nu stiu cum ai facut ca sa-mi dau seama.
Au postat http://193.151.30.188/cnas/siui_2.0/specificatii informatii despre semnarea XML-ului, cred ca trebuie sa facem si asta
 6/26/2011 11:06:21 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (N/A)
Eu banuiesc 2 chestii.
1. Am trimis un fisier din aprilie, si
2. Care e adresa la care se trimit fisierele ? Eu am lucrat cu aia care mi-ai dat-o tu (http://tempuri.org/SiuiWS/services/SiuiWS?sendReport).
Oricum, multumesc pentru raspuns. Sa inteleg ca iar au schimbat ceva ? Inca nu am avut timp sa citesc, dar vad ca ultima revizie este din 01.06.2011.
Miine, cind ajung la munca, iti trimit si codul pe care l-am folosit. In mod sigur tu o sa reusesti sa iti dai seama care/unde e problema.Desi trebuie sa recunosc ca raspunsul primit (Verificat : OK!) imi place cum suna..
Pina atunci, o duminica placuta.
Thx.
 6/27/2011 11:32:56 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Uite si codul, asa cum am promis.
Daca ai timp, arunca-ti un ochi pe el, si spune-mi si mie care/unde e problema.
Ce am mai incercat azi.
Am schimbat m.adrBin din 'http://tempuri.org/SiuiWS/services/SiuiWS?sendReport' in 'http://siui.ro/SiuiWS/services/SiuiWS?sendReport' si in 'https://www.siui.ro/svapntws/services/SiuiWS?sendReport' . Acelasi raspuns il primesc.
Am schimbat o cifra la seria de licenta a SIUI, si am primit acelasi raspuns. Deci, banuiesc, ma invirt in jurul cozii.
Thx Dumitru.
Astept o veste de la tine. Daca iti e mai usor, pot sa iti dau o adresa de email si/sau un numar de telefon.
Thx.
sendcuverok.txt 
 6/28/2011 12:15:54 AM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
Mii se pare bine. Raspunsul "verificat OK" cred ca este in urma verificarii jetonului.
Nu stiu ce sa zic trebuie sa ma uit mai atent.
Incearca sa citesti erorile pentru fisierul trimis, asa iti vei da seama daca a ajuns sau nu.
 6/28/2011 12:32:24 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Dupa 15 mii de incercari... am aflat 2 chestii.. :D
1. Serverul de validare merge din 5 in 3
Adica din x incercari de trimitere a fisierului (acelasi fisier) primesc de y ori raspuns de genul "The server returned an invalid or unrecognized response", citeva erori 404, citeva erori 500 si chiar si citeva "Hi there ! This is an Axis server... blah-blah"
2. Unul din raspunsurile care au putut fi citite este
<?xml version="1.0" encoding="utf-8" ?>
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soapenv:Body>
- <soapenv:Fault>
  <faultcode>soapenv:Server.userException</faultcode>
  <faultstring>ro.siveco.svapnt.utils.webservices.exceptions.RaportariException: Nume de fisier invalid: MD_12345678_20100114_1601.xml.p7m</faultstring>
- <detail>
- <ns1:fault xmlns:ns1="http://webservices.utils.svapnt.siveco.ro">
  <ns1:errorCode>2</ns1:errorCode>
  <ns1:message>Nume de fisier invalid: MD_12345678_20100114_1601.xml.p7m</ns1:message>
  </ns1:fault>
  <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">fe15</ns2:hostname>
  </detail>
  </soapenv:Fault>
  </soapenv:Body>
  </soapenv:Envelope>
Am semnat acelasi fisier, dar i-am lasat terminatia xml si am incercat sa il trimit din nou. Acum raspunsul serverului este din ciclul "The server returned an invalid or unrecognized response".
O sa mai incerc un pic mai incolo, ca merg pe ideea ca are niste perioade de time-out intre "raportari".
Pina atunci, ceva pareri ? Sugestii ?
Thx.
 6/28/2011 1:14:51 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Am reusit sa trimit fisierul si fara terminatia p7m.
Deci, s-a modificat ceva prin ce isi doresc cei de la siveco. Adica, fisierul sa ramina xml.
Acum eroarea returnata de server este "Error on parsing xml.". Nu gasesc nimic prin documentatia pe care o am eu apropo de schimbarea modului de arhivare a xmlului. Banuiesc ca de acolo mi se trage problema.
Ceva sfaturi ?
LE. Daca arhivez zip xmlul, fara sa il semnez digital, primesc un raspuns "0" in xml la tagul <sendReportReturn>.
Unde gasesc ce inseamna asta ?
Si ce e de facut mai departe ?
Cum verific daca fisierul a ajuns la CAS ?
THX.
Recunosc ca mi-a scos peri albi chestia asta cu raportarea... :(
 6/28/2011 10:33:41 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
E bine "0" fara semnatura, fisierul s-a dus dar nu este procesat automat, asteapta interventia operatorului de la CAS.
Daca continui sa trimiti cu acelasi nume vei primi eroare sau in cel mai fericit caz "0" pentru ca fisierul exista.
In legatura cu extensia, eu fac asa fara sa semnez:
MD_yyy.xml -> zip-are -> MD_yyy.xml.zip -> codare base 64 -> MD_yyy.xml.zip.b64
Pe asta il incarc in SOAP in elementul reportXML.
Primesc "0" dar ajunge la casa, SIUI face operatiile inverse obtinand XML-ul.
Cu semnatura intinerarul este:
MD_yyy.xml -> semnare -> MD_yyy.xml (semnat) ->zip-are -> MD_yyy.xml.zip -> codare base 64 -> MD_yyy.xml.zip.b64
N-am incercat pentru ca desi algoritmul de semnare este unul destul de cunoscut eu nu-s lamurit.
Felicitari pentru ca deja ai reusit
 6/29/2011 8:12:42 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (N/A)
Multumesc Dumitru. Chestia cu interventia operatorului e o chestie generala, adica la toate CJAS ? Parca citisem undeva ca cineva de pe aici lucra in sistem. Sa citesc din nou forumul, si sa vad daca ma poate ajuta cu o verificare. Cum aflu care sint erorile la prelucrarea fisierului ? O sa ma interesez cum e si cu semnatura, dar pina atunci, daca e cineva interesat de codul asta de trimitere, sa scrie un rind pe aici, si il sui. Inca o data, multumesc. Te tin la curent cu semnatura.
 6/29/2011 11:46:12 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A) Modified By Dumitru  on 6/29/2011 11:49:27 PM)
Eu sunt ala.

Da, SIUI-ul e unic (e pleonasm) functioneaza la toate casele la fel. Daca nu semnezi fisierul fara sa intervina operatorul nu trece. Asa merge acum dar pana la urma semnarea (cred ca) va deveni obligatorie. Tu la ce casa trimiti?

Erorile le aflii folosind metoda getReportFeedback a aceluiasi serviciu.
In fisierul XML exista pentru fiecare element, atributul AppID, acesta este optional si poate fi completat cu ce vrei. Trebuie sa-l completezi cu cheia care iti identifica in aplicatia ta setul de date aferente fiecarui element din XML-ul de raportare.
Fisierul de raspuns (XML-ul cu erorile) contine pentru fiecare AppID un "status" si eventual codul de eroare conform nomenclatorului.
Daca nu completezi AppID sau il completezi cu ceva care nu are legatura cu aplicataia ta, nu ai cum sa identifici erorile.

Dupa ce termini cu erorile trebuie sa treci la getRefund si getRefundForInvoice pentru a obtine deconturile, unul sau mai multe fisiere pdf pe care le descarci si care contin valoarile dupa care se fac facturile.

Alta documentatie in afara de ce este publicat pe site-ul CNAS nu exista.
Ma bucur ca ti-a reusit si inca in fox.
Pana la urma SIVECO nu a ingradit cu nimic producatorii de software, merge aproape in orice limbaj.
Si mai am o lauda la adresa lor, au inceput prin 2003 si tehnologia folosita este la moda si acum, ba mai mult, multi nu o stiu nici acum (vezi cat a trebuit sa sapam noi!).
Am altele care nu-mi convin dar nu se discuta in public, nu-i frumos si poate ma insel.
Apropo, da' in LISP merge!?! :)

 6/30/2011 9:36:30 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
:) Huh... Lucrezi la CAS ? Stiam eu ca am citit ceva pe undeva prin forumul asta.. :D
Am incercat sa trimit fisierul la un snop de case. Am incercat si la Botosani.. si la Satu Mare. Giurgiu.. Mehedinti.. Olt.. Brasov... Cind am primit un 0 raspuns, cred ca era la Mehedinti. Cel putin in prg-ul cu care m-am jucat, e licenta SIUI de la Mehedinti. Spune-mi tu la ce CAS lucrezi, si trimit acolo, fara nici un fel de problema.

In legatura cu aflarea erorilor... retin ca in fisierul xml care il generez din aplicatia folosita in firma, am pus un tag "report AppID=x" care se incrementeaza automat, pentru fiecare fisier/CAS la care raportez. Despre atributul ala e vorba ? Daca da, crezi ca te mai pot stresa un pic, sa imi dai un exemplu de interogare ?

Sincer, si eu sint uimit ca am reusit totusi sa trimit un fisier, mai ales, asa cum ai zis si tu, din fox. Multumiri TIE si celorlalti participanti la discutia de pe forum. Singur, nu cred ca i-as fi dat de cap, si nu cred ca ajungeam nici macar pina la pozitia unde sint acum, adica sa ma interesez cum trag erorile inapoi. Asa cum am mai zis.. daca esti din Bucuresti, sau ai drum pe aici vreodata, berea o dau eu.
Thx.
PS. Forumul asta nu are un buton de "THX" ?
 6/30/2011 11:26:50 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Semnatura digitala pt. XML
 (N/A)
Are. E un combobox numit "Rate" in dreapta sus.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 6/30/2011 2:44:38 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Thx Grigore. E bun si asta. Eu cautam ceva pentru utilizator. Dumitru m-a ajutat din greu, si merita un "Thx". Din cite mi-am dat seama, "Rate" este global, pentru tot threadul. Sau nu am inteles eu bine ?
 6/30/2011 2:53:07 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Pina la urma... ca sa cer erorile raportarii... este "GET" ? Sau "POST" ? Sau nici una din astea, si sint cu neuronii pe pereti ?
La "GET" raspunsul primit de la server este ala cu "Hi there, this is an Axis service!", iar la "POST" este "org.xml.sax.SAXParseException: Premature end of file."
Asta este codul cu care ma joc, desi incep sa cred ca azi nu e o zi buna pentru joaca... :D
m.adrBin = 'http://tempuri.org/SiuiWS/services/SiuiWS?getReportFeedback'+'(MD_12345678_20110317_0826.xml)'
m.url_ASG = "https://www.siui.ro/svapntws/services/SiuiWS"
WITH m.p_yhttp
.Open([GET], m.url_ASG, .F.)
.SetRequestHeader("Accept", "*/*")
.SetRequestHeader("KeepAlive", .F.)
.SetRequestHeader("AllowAutoRedirect",.F.)
.SetRequestHeader("PreAuthenticate",.T.)
.SetRequestHeader("OSCP_RESPONSE", m.P_YJeton)
.SetRequestHeader("Set-Cookie", m.P_YCookie)
.SetRequestHeader("SOAPAction", m.adrBin)
.SetRequestHeader("Cache-Control","no-cache")
.SetCredentials(m.P_YUserCas, m.P_YPassCAS , 0)
.SetClientCertificate(m.P_YCerName)
.SetTimeouts(90000, 90000, 90000, 90000)
.Send()
ENDWITH
? m.p_yhttp.status
sXML = m.P_YHTTP.ResponseText
? "sXML="+ALLTRIM(sxml)
m.p_yhttp.status este 200, daca ajuta cu ceva.
Thx.
 6/30/2011 4:03:20 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
M-am lamurit. Este "POST". Problema este alta. Primesc status 500, iar in xmlul primit de la server am 2 raspunsuri.
1. <faultstring>ro.siveco.svapnt.utils.webservices.exceptions.RaportariException: Fisierul "MD_12345678_20110627_1106.xml" nu a fost procesat. Va rugam sa incercati mai tarziu</faultstring>
2.
<ns1:errorCode>-1</ns1:errorCode>
Din documentatia SIUI, la erori, -1 inseamna "Fisierul este deja raportat si nu poate fi sters!"
Si toata povestea asta pe un fisier trimis din aplicatia SIUI la CAS BT, si confirmat ca e OK, tot din interfata SIUI.
Ce raspuns il consider bun ? :D Cel numeric ? Sau cel in clar, unde mi se spune ca fisierul nu a fost procesat ?
hmmmmmmmm...............................
Thx.

 7/1/2011 2:25:56 AM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A) Modified By Dumitru  on 7/1/2011 2:54:33 AM)
N-am studiat amanuntit problema dar pentru fisierul de erori este publicata schema XSD, te poti uita acolo sa vezi toate posibilitatile de raspuns,
SIUI este o aplicate web based, deci la CJAS exista o intefata web prin care se acceseaza. In plus este foarte bine securizat, un utilizator nu face ce vrea el in SIUI are drepturi limitate care rezulta din fisa postului.
Cel care poate sa-ti dea un raspuns este operatorul de la MD (dispozitive medicale-vad ca fisier din domeniul asta trimiti). De la noi ai primit raspunsul "0", pentru teste ar trebui sa folosesti adresa de test ca sa nu incurci activitatea de acolo si asa destul de incarcata (la 2-3 zile se pun patch-uri). Este un sistem in continua miscare, tocmai este adaptat la noul contract-cadru, asta-i si cauza multor nemultumiri ale furnizorilor, dar e una obiectiva n-ai ce sa-i faci.

Apropo de eroare
Amandoua spun acelasi lucru, fisierul a fost raportat dar nu este inca procesat. daca-l semnai era si procesat si puteai sa culegi erorile, asa trebuie sa astepti pana se dumireste omul daca trebuie procesat sau nu.

Cred ca ti-a reusit si asta, incearca decontul, merge sa obtii si unele din urma (nu stiu cu cat timp). Vei primi niste PDF-uri.

Ma bucur ca te-am putut ajuta
 7/6/2011 12:00:04 AM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
@za_sly, ai avansat, merge?
Primesc aleator eroare 500
Am observat ca apare cand fisierul XML nu are structura corecta sau cand numarul de contract este gresit (in XML) si inca in cateva situatii a caror cauza nu am depistat-o.

Am o intrebare, daca stie cineva il rog frumos sa-mi spuna pe scurt sau sa-mi dea un link.
Cum ma folosesc de evenimentele OCX-ului WinHttpRequest (OnError, OnResponseDataAvailable, OnResponseFinished, OnResponseStart), adica unde sa scriu eu cod care sa se execute atunci cand apare un eveniment?

 7/6/2011 2:05:24 AM
User is offlineDaniel Buduru
2334 posts
1st




Re: Semnatura digitala pt. XML
 (N/A)
 Dumitru Echim wrote
.......
Am o intrebare, daca stie cineva il rog frumos sa-mi spuna pe scurt sau sa-mi dea un link.
Cum ma folosesc de evenimentele OCX-ului WinHttpRequest (OnError, OnResponseDataAvailable, OnResponseFinished, OnResponseStart), adica unde sa scriu eu cod care sa se execute atunci cand apare un eveniment?



Se foloseste functia Eventhandler(oSourceEvent, oEventhandler)

*winhttprequest.prg

DEFINE CLASS WinHttpRequestEvents AS session OLEPUBLIC
    IMPLEMENTS IWinHttpRequestEvents IN "winhttp.dll"

    PROCEDURE IWinHttpRequestEvents_OnResponseStart(Status AS Number, ContentType AS STRING) AS VOID
*!*         WAIT WINDOW 'OnResponseStart Status '+TRANSFORM(status) nowait
    * add user code here
    ENDPROC

    PROCEDURE IWinHttpRequestEvents_OnResponseDataAvailable(Data AS VARIANT) AS VOID
*!*         WAIT WINDOW 'OnResponseDataAvailable' nowait
    * add user code here
    ENDPROC

    PROCEDURE IWinHttpRequestEvents_OnResponseFinished() AS VOID
*!*        WAIT WINDOW 'OnResponseFinished' nowait
    * add user code here
    ENDPROC

    PROCEDURE IWinHttpRequestEvents_OnError(ErrorNumber AS Number, ErrorDescription AS STRING) AS VOID
*!*          MESSAGEBOX('Error '+TRANSFORM(Errornumber)+CHR(13)+ErrorDescription,0,'WinHttpRequest')
    * add user code here
    ENDPROC

ENDDEFINE

Utilizarea:

oHttp=Createobject('winhttp.winhttprequest.5.1')
oHttpEvents=Newobject('winhttprequestevents','winhttprequestevents.prg')
EVENTHANDLER(oHttp,oHtttpEvents)

Fie pui cod in mettodele clasei winhttprequestevents, fie in metodele unui alt obiect, pe care le legi de evenimentul obiectului ohttpEvents cu BINDEVENTS.


Daniel Buduru
 7/6/2011 3:13:53 AM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
Multumesc Daniel, acum e prea tarziu sa incerc dar cred ca am inteles.
 7/7/2011 11:40:23 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
@Dumitru.
Profesore, am ramas la aceeasi pozitie. Adica, urmeaza sa incerc sa cer un decont. Si am si o "scuza"... :D Baietii "destepti" racesc vara. Well, acum si eu ma numar printre cei "destepti". Am o raceala de zile mari si sarbatori legale. Avia daca imi pot tine miinile pe tastatura.
Oricum, te tin la curent.
Mai am de lamurit cum e treaba cu decontul.. si sa ma luminze ce e de facut cu semnatura digitala (SHA1). Dupa aia vina bucata aia cea mai ingrata.. sa integrez toata povestea in aplicatia mea, si sa fac povestea user freindly.
Salutari din Bucuresti. ;)
PS. La tine banuiesc ca este mai racoare. :D
 7/7/2011 5:19:18 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A)
Sanatate
Treba cu "profesore" nu ma deranjeaza dar e neadevarata, sunt aici sa invat si daca pot sa ajut si eu la randul meu pe altii o fac cu placere. Nu e suparare!
Bucata cu decontul imi merge bine, daca ai nevoie de ea sa spui cand te insanatosesti. :)
Apropo, Daniel multumesc inca odata pentru eventhandler, vreau sa fac o clasa in jurul lui WinHttpRequest si captarea erorilor e o treaba importanta.

 7/8/2011 10:53:24 AM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
 Dumitru Echim wrote


Scuze pentru apelativ. A devenit un tic verbal, dupa o intilnire mai dura cu un profesor. :D
Nu am vrut sa supar pe nimeni, si inca o data, imi cer scuze.
Eu cred ca abia luni reusesc sa revin la munca, si pentru ca am primit ceva instiintari de la diferite CAS-uri, ca nu mai primesc raportarile decit on-line, daca ma poti ajuta cu bucata pentru decont, ar fi perfect. Mi-ar mai ramine mie de studiat doar problema cu semnatura. Adica, s-ar putea sa ma incadrez, sa incep sa fac raportarile din aplicatia mea.
Cu ocazia asta, revin si cu oferta mea. Daca mai e cineva interesat de un exemplu de cod de arhivare/incapsulare/trimitere/cerere erori (adica ce am eu pina acum, facut in MARE parte cu ajutorul tau, Dumitru), sa dea un semn, si il sui aici, cu cea mai mare placere.
Inca o data, scuze daca te-a deranjat apelativul, si multumesc pentru urari.
 7/10/2011 5:23:08 PM
User is offlinegusu
22 posts


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

Va rog puteti sa puneti exemplu de cod de arhivare/incapsulare/trimitere/cerere erori

Multumesc anticipat.
 7/11/2011 12:00:46 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Back @ work... buuuuuuuuuuuuuu
Anyhow, am apucat sa citesc chestia cu semnatura fisierelor. Si nu inteleg o chestie. Din cite am citit eu, SHA-1, ce vrea Siveco, este un mod de a genera un hash. Eu cel putin asta am reusit sa inteleg. Dupa ce generez hashul asta, ce fac cu el ? Ca de aici m-am pierdut.
Daca nu am inteles eu bine, rog pe cineva care stie despre ce e vorba, sa isi dea cu parerea, sa ma indrume pe drumul bun. :D Dumitru, ceva pareri ?
Thx.
-------
Gusu, da-mi o adresa de mail, unde sa iti trimit codul. Nu reusesc sa il pun aici, desi nu e prima oara cind sui pe forum. Cred ca inca nu mi-am revenit complet, dupa raceala asta minunata.
 7/11/2011 1:45:20 PM
User is offlinegusu
22 posts


Re: Semnatura digitala pt. XML
 (N/A)
Buna ziua
ecsorinflorian@gmail.com

Multumesc

Insanatosire grabnica
 7/11/2011 1:57:52 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
 gusu wrote
Buna ziua
ecsorinflorian@gmail.com
Multumesc
Insanatosire grabnica


Thx. Ai mail. Iti dai seama din subiect despre ce e vorba in fiecare mail. Le-am "rupt" in bucati. Arhivare/codare, primul, si al doilea e bucata de trimis fisier/cerere erori. Partea de decont o sa o poti lua de aici, cind o sa aiba Dumitru timp sa o puna, iar partea de semnare digitala fisier o sa o pun aici, cind si daca ii dau de cap. Sau poate reuseste altcineva sa o faca inaintea mea, si o suie tot aici.
----
E urit sa racesti pe caldurile astea. :D
 7/12/2011 8:28:07 AM
User is offlinegusu
22 posts


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

"ZA_SLY"  nu a ajuns mail-ul
Va rog le puteti trimite inca o data.

Multumesc
 7/12/2011 12:43:10 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
 gusu wrote
Buna dimineata
"ZA_SLY"  nu a ajuns mail-ul
Va rog le puteti trimite inca o data.
Multumesc

Exact ce vroiam si eu sa zic. Mi-a intors gmail-ul mail-ul meu, ca nu poate livra catre adresa aia de mail.
Ia sa vedem....

 7/12/2011 12:44:30 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
arhivare fisier... si codare in base64
*********
loZip = Createobject('XStandard.Zip.1')
lcZipFile = 'arh.zip' && calea si fisierul unde se face arhiva
llStorePath = .F.
lnMode = 9    && 1 = min, 9 = max, 6 = default
lcfile=GETFILE('xml','Fisier.','Go',0,'Cauta fisier.')
    ? 'Compressing : ' + lcFile
    loZip.Pack(lcFile,lcZipFile,llStorePath,'',lnMode)
******
*codez baza 64
obj64 = CREATEOBJECT('base64')
IF !obj64.encrypt('arh.zip','test.b64')
    =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
ENDDEFINE
 7/12/2011 12:51:09 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
incapsulare in soap si trimitere fisier.
Repet : FISIERUL NU E SEMNAT DIGITAL. Inca ma lupt sa ma luminez cum se face chestia asta.
Si inca o data: Multumiri Dumitru !
***********
PRIVATE ALL EXCEPT P_*
PUBLIC P_YUserCas, P_YPassCas, P_YCerName, P_YHttp, P_YCookie, P_YJeton
*** Min VFP7 ***
m.P_YUserCas = [12345678_CAS-XX]            && utilizatorul CAS: cui_CAS-XX
m.P_YPassCAS = [12345-ABCD-ABCD-ABCD]      && seria de licenta primita de la CAS
m.P_YCerName = [xxxxxxxxxxxxxxx]           && Certificate name (din IE)
STORE "" TO m.P_YJeton, m.P_YCookie
STORE "" TO sResponse
m.url_OSCP = "https://www.siui.ro/OCSP/validator"
m.sResponse = ''
m.P_YHTTP = CREATEOBJECT([WinHttp.WinHttpRequest.5.1])
m.P_YHTTP.Open([GET], m.url_OSCP+[?username=]+m.P_YUserCas, .F.)   
m.P_YHTTP.SetRequestHeader("Accept", "*/*")
m.P_YHTTP.SetRequestHeader("KeepAlive", .F.)
m.P_YHTTP.SetRequestHeader("AllowAutoRedirect",.F.)
m.P_YHTTP.SetRequestHeader("PreAuthenticate",.T.)
m.P_YHTTP.SetClientCertificate(m.P_YCerName)
m.P_YHTTP.SetTimeouts(30000, 30000, 30000, 30000)
m.P_YHTTP.Send()
IF m.P_YHTTP.status==200
      m.P_YJeton = m.P_YHTTP.GetResponseHeader("OSCP_RESPONSE")
      m.P_YCookie = m.P_YHTTP.GetResponseHeader("Set-Cookie")
    m.sResponse = 'OK!'
    ? m.sResponse
ELSE
      m.sResponse = "Eroare! " + ALLTRIM(STR(m.P_YHTTP.status,10)) + " " + m.P_YHTTP.StatusText
ENDIF
****** am obtinut jeton si cookie *****
m.xmlfile='calea catre fisierul b64'
m.str1 = FILETOSTR(m.xmlFile)
sSoapRequest = [<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" ]
sSoapRequest = sSoapRequest + [ xmlns:tns1="http://exceptions.webservices.utils.svapnt.siveco.ro" xmlns:apachesoap="http://xml.apache.org/xml-soap" ]
sSoapRequest = sSoapRequest + [    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:intf="http://webservices.utils.svapnt.siveco.ro" ]
sSoapRequest = sSoapRequest + [    xmlns:impl="http://webservices.utils.svapnt.siveco.ro" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >]
sSoapRequest = sSoapRequest + [<SOAP-ENV:Body>]
sSoapRequest = sSoapRequest + [<impl:sendReport xmlns:impl="http://webservices.utils.svapnt.siveco.ro">]
sSoapRequest = sSoapRequest + [<impl:reportType>MD</impl:reportType>]
sSoapRequest = sSoapRequest + [<impl:reportXML>]
sSoapRequest = sSoapRequest + m.str1
sSoapRequest = sSoapRequest + [</impl:reportXML>]
sSoapRequest = sSoapRequest + [</impl:sendReport>]
sSoapRequest = sSoapRequest + [</SOAP-ENV:Body>]
sSoapRequest = sSoapRequest + [</SOAP-ENV:Envelope>]
sSoapRequest = STRTRAN(sSoapRequest, CHR(0),CHR(10)+CHR(13))
***** am incapsulat fisierul in SOAP *****
xmlDoc = CREATEOBJECT([Msxml2.DOMDocument.3.0])
xmlDoc.validateOnParse = .t.
xmlDoc.loadXML(sSOAPRequest)
IF (xmlDoc.parseError.errorCode <> 0)
    ? "Eroare:"+ xmlDoc.parseError.reason
ENDIF
***** am creat obiectul DOM Document *****
m.adrBin = 'http://tempuri.org/SiuiWS/services/SiuiWS?sendReport'
m.url_ASG = "https://www.siui.ro/svapntws/services/SiuiWS"
WITH m.p_yhttp
.Open([POST], m.url_ASG, .F.)
.SetRequestHeader("Content-type", "application/soap+xml; charset=utf-8")
.SetRequestHeader("Accept", "*/*")
.SetRequestHeader("KeepAlive", .F.)
.SetRequestHeader("AllowAutoRedirect",.F.)
.SetRequestHeader("PreAuthenticate",.T.)
.SetRequestHeader("OSCP_RESPONSE", m.P_YJeton)
.SetRequestHeader("Set-Cookie", m.P_YCookie)
.SetRequestHeader("SOAPAction", m.adrBin)
.SetRequestHeader("Cache-Control","no-cache")
.SetCredentials(m.P_YUserCas, m.P_YPassCAS , 0)
.SetClientCertificate(m.P_YCerName)
.SetTimeouts(90000, 90000, 90000, 90000)
.Send(m.xmlDoc)
ENDWITH
PP_YCookie = P_YHTTP.GetResponseHeader("Set-Cookie")
? "PP_YCookie=" +ALLTRIM(pp_ycookie)
*    * ... si xml-ul intors de server
sXML = m.P_YHTTP.ResponseText
? "sXML="+ALLTRIM(sxml)
*    * parsarea am facut-o mai simplu decat la getInsured, am folosit strExtract() fara sa mai incarc XML-ul in DOM
sResponse = STREXTRACT(sXML,"<sendReportReturn>","</sendReportReturn>")
?sresponse
 7/12/2011 12:54:58 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Nu sint la servici, si nu am si codul de cerere erori. Retin ca se apela getreportfeedback si se folosea numele fisierului trimis. O sa ajung la munca undeva in jur de ora 16.00, si o sa sui si codul de cerere erori. E aproape acelasi ca la trimitere, numai ca se schimba ceva la incapsularea SOAP.
O sa mai incerc si pe mail, desi vad ca azi m-a lasat sa sui codul direct.
Thx.
 7/12/2011 11:07:46 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (N/A) Modified By Dumitru  on 7/12/2011 11:24:57 PM)
@za_sly in documentatie se spune despre sendReport:
Boolean sendReport (
          String reportType,
         String reportXml )

Metoda are doi parametri de intrare :
- parametrul reportType de tip sir de caractere reprezintă codul tipului de furnizor, lista
valorilor permise fiind prezentată mai jos;
- parametrul reportXml de tip sir de caractere reprezintă continutul fisierului de
raportare semnat electronic, arhivat în formatul ZIP (JavaZip) si codat ulterior în
formatul Base64.

iar mai jos

Fisierele semnate cu certificatul digital X.509, folosind algoritmul SHA-1, se transmit către SIUI
folosind formatul CMS („Cryptographic Message Syntax”) publicat în RFC-5652 de către IETF
(„Internet Engineering Task Force”) (vezi http://tools.ietf.org/html/rfc5652).
Descrierea algoritmului SHA („Secure Hash Algorithm”) este publicată de către National
Institute of Standards and Technology (NIST) în Digital Signature Standard FIPS 186-2.
Majoritatea sistemelor de operare permit realizarea unei astfel de semnături digitale folosind
biblioteci și/sau framework-uri disponibile în sistem, dar si prin produse aditionale.
Semnarea electronică a fisierului XML este necesară doar în cazul transmiterii electronice
online a acestuia către SIUI, fisiere aduse la CAS de către furnizor pe suport electronic nu
trebuie semnate.


Daca nu-l semnezi trebuie sa stai pana ce operatorul de la casa proceseaza fisierul.
Ai reusit in fox semnarea fisierului sau ai facut progrese? (in cod nu o ai)
Eu nu am avut timp, incepusem si m-am oprit. O sa reiau sapatamana viitoare. 

Poti detalia loZip.Pack(... ). Eu ma folosesc de cateva unelte 7z sunt multumit dar poate este o metoda "mai fox" 

 7/13/2011 12:27:04 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Dumitru, am mentionat undeva la inceputul codului ca inca NU am reusit sa fac nimic cu semnarea. Inca incerc sa imi dau seama ce e de facut. SHA-1, din cite am inteles eu, este un hash. Nu inteleg ce am de facut mai departe cu acel hash. Criptez fisierul cu el ? Il atasez fisierului ? Inca sint in ceata. Nici prea mult timp nu am mai avut, dar inca mai lupt cu chestia asta.
 7/13/2011 12:52:36 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
 za_sly wrote

Nu exista buton de "Edit", asa ca mai bag un post aici.
Cu semnatura am facut ceva progrese (zic eu). Adica, pot sa hashuiesc fisierul xml, si ma trezesc cu un string de 40 de caractere. De aici mai departe nu inteleg ce e de facut. Si nici unde intervine certificatul digital nu imi dau seama. Eu genereze hashul pe fisier, pur si simplu. Adica aleg fisierul xml, si intr-o variabila am un string de 40 de caractere, string care reprezinta hashul. Am verificat sa vad daca e corect hashul, cu o aplicatie de pe net, unde iti alegi fisierul pentru care vrei hash generat, si ti-l genereaza.
La faza asta sint in momentul asta.
Orice sut in parte posterioara, este binevenit, daca sutul ma trimite in directia buna. :D

 7/13/2011 1:14:14 PM
User is offlineDumitru
172 posts
5th


Re: Semnatura digitala pt. XML
 (Romania)
:) M-am uitat intr-un fisier semnat de aplicatiile desktop siveco, n-am inteles mare lucru, e de citit
 7/13/2011 1:49:03 PM
User is offlineza_sly
38 posts


Re: Semnatura digitala pt. XML
 (Romania)
Multumesc pentru efort Dumitru.
Eu inca mai sap.
Te tin la curent cu ce aflu (daca aflu ceva.. ;) )
 7/13/2011 3:50:41 PM
User is offlineDorin Vasilescu
1366 posts
1st




COM Server in C# pentru test
 (N/A) Modified By Dorin Vasilescu  on 7/13/2011 3:52:18 PM)
Salutare tuturor!

Am creat in C# un COM server cu metode de verificare CNP, trimitere raportare si obtinere feedback. Daca are cineva acces pe serverele de test pentru test ar fi super. Am "compilat" bucati de cod de pe net cu ce am mai stiut eu si a iesit ceva, pana la urma

DLL-ul trebuie inregistrat cu regasm /codebase, e in arhiva un .cmd pentru aceasta

Am atasat ZIP, e si un form de test in ZIP

Cum se foloseste:

oSiui = CreateObject('RapSIUI.SIUI')
oSiui.usercas = "1111111_CAS-TM"
oSiui.certname = "Ioana-Maria Ionescu"
oSiui.pass = "XXXX-XXXX-XXXX-XXXX"

connectOK = oSiui.ConnectWS() &&se conecteaza la WS si obtine token

*validare CNP
oSiui.cnp = '1111111111111'
CNPValid = oSiui.VerifCNP()
*in oSiui.output e XML returnat de server


*trimitere raportare
oSiui.reportType = 'PARA'
oSiui.ReportXML = StrConv( filetostr('{fisier ZIP}'), 13)

raportareOK = oSiui.Raportare()

**Daca e ceva mesaj de eroare apare in oSiui.Output


**obtinere Feedback
oSiui.reportXMLFile = "PARA_.....xml"
feedbackOK = oSiui.Feedback()

ar trebui sa apara fisier ZIP cu numele din oSiui.zipResponseFile daca e tot ok






ReleaseCOM_SIUI.zip 
 7/13/2011 11:50:49 PM
User is offlineDumitru
172 posts
5th


Re: COM Server in C# pentru test
 (N/A)
Excelenta idee, numai ca e nevoie si de .NET

 7/15/2011 12:47:49 AM
User is offlineDumitru
172 posts
5th


Re: COM Server in C# pentru test
 (N/A)
... da' merge frumos
Good job Dorin
 7/18/2011 12:45:22 PM
User is offlineza_sly
38 posts


Re: COM Server in C# pentru test
 (Romania)
Inca lupt cu semnatura. Si tot nu ma luminez. Ce am mai aflat... Stringul SHA-1 trebuie facut in base64, nu hexadecimal, cum credeam eu initial si cum il faceam in prima faza.
Si cireasa de pe tort... chiar daca fisierul este trimis catre CJAS din aplicatia SIUI, deci semnat si totul in regula, nu intra la prelucrare automata. Asteapta un verde la prelucrare de la un operator....
 Deci, care este nevoia semnarii digitale a fisierului, din aplicatia mea, daca si fisierul nesemnat ajunge tot la un operator la CJAS, care trebuie sa dea verde, adica ce face si pentru un fisier trimis din aplicatia SIUI ?
Multe intrebari.. (prea) putine raspunsuri. :D
O sa strig pe aici ce am mai rezolvat.
Thx.
PS. COM serverul facut de Dorin, se ocupa si de partea de semnatura ? :) In descrierea procesului nu zice nimic, dar am zis ca ar fi bine sa intreb, sa fiu sigur. :D
 7/18/2011 2:56:56 PM
User is offlineza_sly
38 posts


Re: COM Server in C# pentru test
 (Romania)
Dumitru, (inca) o mina de ajutor ? Se poate ?
Cind cer erorile pentru un fisier trimis, primesc un xml, unde am un link de genul...

- <soapenv:Body>
- <getReportFeedbackResponse xmlns="http://webservices.utils.svapnt.siveco.ro">
  <getReportFeedbackReturn>/svapntws/download?fileName=6nte1nf1d0ktl164udho6i</getReportFeedbackReturn>
  <getReportFeedbackReturn>413</getReportFeedbackReturn>
  </getReportFeedbackResponse>

Unde/cum ma leg sa dau jos fisierul ala ? 413 banuiesc ca reprezinta dimensiunea fisierului... dar, cum ajung sa pun mina pe fisier ?
Thx.
 7/18/2011 9:45:46 PM
User is offlineDumitru
172 posts
5th


Re: COM Server in C# pentru test
 (N/A) Modified By Dumitru  on 7/18/2011 10:34:11 PM)
Faci cerere GET la "https://www.siui.ro" + sFile unde sFile este in cazul tau: /svapntws/download?fileName=6nte1nf1d0ktl164udho6i


*** Nu e asa! De exemplu la MF (medicina de familie) cei care raporteaza online operatorul nu trebuie sa execute "preluare", se duce singur.

Treaba e in miscare deoarece sunt multe modificari de facut ca urmare a modificarii Contractului-cadru (dupa care functioneaza casa) in final asa va fi. Adica trebuie semnat. Daca vor modifica atunci nu-i bai, renuntam la o procedura dar daca se cere ...

Eu zic sa o facem.
 7/19/2011 11:20:14 AM
User is offlineza_sly
38 posts


Re: COM Server in C# pentru test
 (Romania)
 Dumitru Echim wrote
Faci cerere GET la "https://www.siui.ro" + sFile unde sFile este in cazul tau: /svapntws/download?fileName=6nte1nf1d0ktl164udho6i
*** Nu e asa! De exemplu la MF (medicina de familie) cei care raporteaza online operatorul nu trebuie sa execute "preluare", se duce singur.
Treaba e in miscare deoarece sunt multe modificari de facut ca urmare a modificarii Contractului-cadru (dupa care functioneaza casa) in final asa va fi. Adica trebuie semnat. Daca vor modifica atunci nu-i bai, renuntam la o procedura dar daca se cere ...
Eu zic sa o facem.

Dumitru, inca o data, iti multumesc. Am reusit sa dau jos fisierul de erori. Acum vreau sa ma apuc sa vad cum fac cu decontul. Daca ai vreo idee cum se face, si nu iti ia prea mult timp, poti sa imi dai si mie un sut in partea dorsala, in directia buna  :) ?
Din nou, pentru cine e interesat de codul de download pentru fisierul de erori... o strigare aici.
*****
Nu am zis ca nu ma mai agit cu semnatura. Am postat o constatare, dupe discutiile avute cu cei de la CJAS. Partea de semnatura e pe tapet. O sa ii vina si ei rindul, imediat ce termin cu erori.. deconturi.. si implementarea codului in aplicatia mea, sa il fac user-friendly, ca la cum arata si e folosit acum, numai eu il pot folosi. Si nici eu nu mai tin minte ce am de facut.. :D
Asa cum am mai zis, cind ai drum prin Bucuresti, berea o dau eu.
 7/19/2011 11:04:39 PM
User is offlineDumitru
172 posts
5th


Re: COM Server in C# pentru test
 (N/A) Modified By Dumitru  on 7/19/2011 11:22:58 PM)
Ai doua posibilitati:

- sa ceri decontul pentru o factura: getRefundForInvoice(partnerCategory,invoiceNumber, invoiceDate, fiscalCode)

- sa ceri decontul pentru o perioada de raportare: getRefund(partnerCategory, startDateReport, stopDateReport, fiscalCode)

Eu zic sa folosesti numai una, pe a doua. Se obtin toate deconturile aferente perioadei de raportare.

In rest este identic cu getReportFeedback(), fisierul pe care-l downloadezi este zip, il salvezi si dupa despachetare o sa apara cateva fisiere PDF, fiecare pentru o alta factura (in functie de domeniu).
Am atasat fisierul XML SOAP
soapRequest.txt 
 7/20/2011 9:46:00 AM
User is offlineza_sly
38 posts


Re: COM Server in C# pentru test
 (Romania)
 Dumitru Echim wrote
Ai doua posibilitati:
- sa ceri decontul pentru o factura: getRefundForInvoice(partnerCategory,invoiceNumber, invoiceDate, fiscalCode)
- sa ceri decontul pentru o perioada de raportare: getRefund(partnerCategory, startDateReport, stopDateReport, fiscalCode)
Eu zic sa folosesti numai una, pe a doua. Se obtin toate deconturile aferente perioadei de raportare.
In rest este identic cu getReportFeedback(), fisierul pe care-l downloadezi este zip, il salvezi si dupa despachetare o sa apara cateva fisiere PDF, fiecare pentru o alta factura (in functie de domeniu).
Am atasat fisierul XML SOAP


Multumesc Dumitru.
Am incercat sa cer decont pentru o factura, dar nu vrea sa mearga. Primesc un xml cu un mesaj de genul Illegal operation. In schimb, mi-a reusit decontul pe perioada. Ce e de mentionat aici : parametrul start si stop este de tip datetime.
Acum, ca am lamurit si aspectul asta, cred ca e cazul sa bag viteza la semnatura. Dar, ca acum m-a pocnit ideea, daca fisierul, chiar semnat fiind, asteapta interventia operatorului CJAS, ai idee cum pot sa verific daca e bine semnat fisierul ?
Inca o data, multumesc.
 7/20/2011 11:56:02 AM
User is offlineDumitru
172 posts
5th


Re: COM Server in C# pentru test
 (N/A)
Cred ca intoarce serverul o eroare - fisierul XML nu poate fi parsat sau ceva asemanator- nu cred ca se prinde ca nu-i bine semnat si chiar daca poate nu cred ca te informeaza, ar fi o bresa in securitatea sistemului.


Variana cu factura am incercat-o si parca nu a mers dar cealata merge chiar mai bine decat getReportFeedback.

Daca in cazul erorilor, in functie de semnatura, trebuie sau nu sa se astepte interventia operatorului de la casa, in cazul decontului trebuie ca acesta sa fi fost generat de operator. Acest lucru se face de obicei dupa ce au fost preluate toate raportarile, pentru ca exista o optiune prin care se genereaza toate odata, desi se prefera furnizor cu furnizor pentru ca exista cazuri care trebuie analizate. Poti sa obtii orice decont din urma.


Parca te-am mai intrebat, am vazut ca apelezi un obiect cu care faci zip-area, ce este in clasa? Folosesc 7z dar as prefera o metoda fara apel extern, folosesc VFP7, am incercat o librarie FLL dar nu mi-a mers.
 7/20/2011 2:11:08 PM
User is offlineza_sly
38 posts


Re: COM Server in C# pentru test
 (Romania) Modified By za_sly  on 7/20/2011 2:12:12 PM)
XZIP. E freeware. Eu m-am lovit de el cind am facut aplicatia pentru firma. Nu imi aduc aminte de unde si cum l-am luat. Sint pe drum spre servici, nu il am in telefon sa ti-l dau.
Da, decontul pentru perioada se misca chiat frumos.
Inca o data, multumesc. (stiu, devine obositor, dar chiar am pentru ce sa iti multumesc)
 7/20/2011 10:02:56 PM
User is offlineDumitru
172 posts
5th


XZIP
 (N/A)
Asa voiam, l-am gasit, multumesc
 7/20/2011 11:27:48 PM
User is offlineDoru Constantin
321 posts
3rd




Re: COM Server in C# pentru test
 (N/A)
 Dumitru Echim wrote
Parca te-am mai intrebat, am vazut ca apelezi un obiect cu care faci zip-area, ce este in clasa? Folosesc 7z dar as prefera o metoda fara apel extern, folosesc VFP7, am incercat o librarie FLL dar nu mi-a mers.

Poate te ajuta asta:

#define SHCONTF_CHECKING_FOR_CHILDREN  0x00010
#define SHCONTF_FOLDERS                0x00020
#define SHCONTF_NONFOLDERS             0x00040
#define SHCONTF_INCLUDEHIDDEN          0x00080
#define SHCONTF_INIT_ON_FIRST_NEXT     0x00100
#define SHCONTF_NETPRINTERSRCH         0x00200
#define SHCONTF_SHAREABLE              0x00400
#define SHCONTF_STORAGE                0x00800
#define SHCONTF_NAVIGATION_ENUM        0x01000
#define SHCONTF_FASTITEMS              0x02000
#define SHCONTF_FLATLIST               0x04000
#define SHCONTF_ENABLE_ASYNC           0x08000
#define SHCONTF_INCLUDESUPERHIDDEN     0x10000

*--> ZIP
cFileZip = "C:\Media.zip"
cSource  = "C:\Windows\Media"

Strtofile(Chr(0x50) + Chr(0x4B) + Chr(0x05) + Chr(0x06) + Replicate(Chr(0), 18), cFileZip)

oZip = CreateObject("shell.application")
src = oZip.NameSpace(cSource)
dest = oZip.NameSpace(cFileZip)
items = Src.Items()
items.Filter(SHCONTF_FOLDERS + SHCONTF_NONFOLDERS + SHCONTF_CHECKING_FOR_CHILDREN, "*.*")
dest.CopyHere(items, 0)


*--> UNZIP
cFileZip = "C:\Media.zip"
cDest    = "C:\Media" && trebuie sa existe

oZip = CreateObject("shell.application")
src = oZip.NameSpace(cFileZip)
dest = oZip.NameSpace(cDest)
items = Src.Items()
items.Filter(SHCONTF_FOLDERS + SHCONTF_NONFOLDERS + SHCONTF_CHECKING_FOR_CHILDREN, "*.*")
dest.CopyHere(items, 0)

*--> pentru .CopyHere() ... vezi lik-ul de mai jos
*--> http://msdn.microsoft.com/en-us/library/bb787866%28VS.85%29.aspx


 7/21/2011 2:29:25 PM
User is offlineza_sly
38 posts


Re: XZIP
 (Romania)
 Dumitru Echim wrote
Asa voiam, l-am gasit, multumesc

Nu ai pentru ce.
Acum, cu ce ma lupt eu.. semnatura digitala. Recunosc ca am ajuns la capatul rabdarii. Ai ceva idei cum se face ? Sau un exemplu, de unde sa plec mai departe ?
Thx.
 7/21/2011 11:32:00 PM
User is offlineDumitru
172 posts
5th


Re: COM Server in C# pentru test
 (N/A)
Da ma ajuta
Partea de ZIP o foloseam si eu dar UNZIP nu mi-a reusit dupa Microsoft (parca voia un folder destinatie or eu in arhiva nu aveam decat un fisier)
Ma uit mai atent pentru ca ce mi-ai dat tu pare sa fie diferit. Multumesc

 7/21/2011 11:35:24 PM
User is offlineDumitru
172 posts
5th


Re: XZIP
 (N/A)
@za_sly
Cred ca pot sa o fac dar nu am avut timp de ea. Acum sunt in concediu si deschid din cand in cand laptopul, ma uit un pic pe net (si pe la ProFox). Spun cand fac.
 7/22/2011 9:41:47 AM
User is offlineza_sly
38 posts


Re: XZIP
 (Romania)
Bine Dumitru.
Concediu placut, si scuze de mesaje. Nu am stiut ca esti in "pauza".
Odihna placuta.
 7/27/2011 9:32:19 AM
User is offlinecliv
12 posts


Re: COM Server in C# pentru test
 (Romania)
Salut Dorin!
Am incercat sa utilizez COM serverul tau in VB6 ( Nu sunt programator de VFP) ... ca sa fac un program de verificare a calitatii de asigurat pentru un amic.....dar nu reusesc sa fac conexiunea...
Asta este codul:

Dim oSiui As Object
Set oSiui = CreateObject("RapSIUI.SIUI")
oSiui.usercas = '"1111111_CAS-PH"
oSiui.certname ='"Marian Dragne"
oSiui.pass = "XXXX-XXXX-XXXX-XXXX"

If oSiui.ConnectWS() Then
MsgBox "ONLINE"
Else
MsgBox "OFFLINE"
Endif

Am inregistrat anterior dll-ul si tlb-ul cu : regasm RapSIUI.DLL /tlb:RapSIUI.tlb
Am instalat apoi VFP8 si am incercat sa folosesc exemplul atasat de tine dar nici acolo nu reusesc sa obtin token-ul....dar cum am spus nu utilizez VFP(am doar notiuni elementare)...
Exemplul tau in vfp este functional direct sau dll-ul trebuie adaugat cumva si nu stiu eu cum....?




 7/27/2011 11:51:50 AM
User is offlineDorin Vasilescu
1366 posts
1st




Re: COM Server in C# pentru test
 (N/A)
 cliv wrote
Salut Dorin!
Am incercat sa utilizez COM serverul tau in VB6 ( Nu sunt programator de VFP) ... ca sa fac un program de verificare a calitatii de asigurat pentru un amic.....dar nu reusesc sa fac conexiunea...
Asta este codul:

Dim oSiui As Object
Set oSiui = CreateObject("RapSIUI.SIUI")
oSiui.usercas = '"1111111_CAS-PH"
oSiui.certname ='"Marian Dragne"
oSiui.pass = "XXXX-XXXX-XXXX-XXXX"

If oSiui.ConnectWS() Then
MsgBox "ONLINE"
Else
MsgBox "OFFLINE"
Endif

Am inregistrat anterior dll-ul si tlb-ul cu : regasm RapSIUI.DLL /tlb:RapSIUI.tlb
Am instalat apoi VFP8 si am incercat sa folosesc exemplul atasat de tine dar nici acolo nu reusesc sa obtin token-ul....dar cum am spus nu utilizez VFP(am doar notiuni elementare)...
Exemplul tau in vfp este functional direct sau dll-ul trebuie adaugat cumva si nu stiu eu cum....?



DLL-u este functional, dar trebuie inregistret cu regasm /codebase sa mearga (nu se instaleaza in GAC)
Deja a fost folosit de cineva cu VFP la transmitere, se pare ca e OK

Ce eroare da in .Status?
 7/27/2011 2:56:24 PM
User is offlinecliv
12 posts


Re: COM Server in C# pentru test
 (Romania) Modified By cliv  on 7/27/2011 3:14:08 PM)
Daca intregistrez cu regasm /codebase obtin asta...

(vezi atasament)

Am gasit undeva pe net raspunsul asta la eroare "RegAsm: warning RA0000 : No types were registered. ..."

Seems like you don't have [assembly: ComVisible(true)] in your AssemblyInfo.cs file in your project. Check your AssemblyInfo.cs file in your ClassLibrary project and make sure you have attribute [assembly: ComVisible(true)]. By default your ComVisible attribute is false. you have to make it true.

....nu inteleg prea bine...problema este de la compilarea dll-urilor daca nu unde setez eu atributul ComVisible =true in AssemblyInfo.cs.....?
2011-07-27_145533.jpg 
 7/27/2011 3:14:46 PM
User is offlinecliv
12 posts


Re: COM Server in C# pentru test
 (Romania) Modified By cliv  on 7/27/2011 3:16:00 PM)
si asta obtin cand rulez programul tau in VFP si apas connect...dar cum am spun nu lucrez in VFP ....deci poate gresesc ceva.
2011-07-27_1512.jpg 
 7/27/2011 8:34:57 PM
User is offlineDorin Vasilescu
1366 posts
1st




Re: COM Server in C# pentru test
 (N/A)
 cliv wrote
Daca intregistrez cu regasm /codebase obtin asta...

(vezi atasament)

Am gasit undeva pe net raspunsul asta la eroare "RegAsm: warning RA0000 : No types were registered. ..."

Seems like you don't have [assembly: ComVisible(true)] in your AssemblyInfo.cs file in your project. Check your AssemblyInfo.cs file in your ClassLibrary project and make sure you have attribute [assembly: ComVisible(true)]. By default your ComVisible attribute is false. you have to make it true.

....nu inteleg prea bine...problema este de la compilarea dll-urilor daca nu unde setez eu atributul ComVisible =true in AssemblyInfo.cs.....?


Se pare ca e inregistrat. Ar trebui sa functioneze cu stick-ul daca numele e ok. Eventual sterge campul SubjName, in acest caz o sa arate lista cu certificate instalate pentru selectie cel utilizat la comunicare cu web service siui.
 7/28/2011 8:18:09 AM
User is offlinecliv
12 posts


Re: COM Server in C# pentru test
 (Romania) Modified By cliv  on 7/28/2011 3:13:37 PM)
Multumesc ....Am rezolvat ...PARTIAL....
Eroarea era de la instalarea certificatului pe care l-am primit....DLL-ul merge OK pentru verificare CNP (Doar asta am test eu....)
La prima rulare totul este OK, daca mai verific si al doilea CNP (uneori si la a doua rulare - dupa ce am inchis programul) obtin eroarea din imaginea atasata
2011-07-28.jpg 
 7/28/2011 3:23:10 PM
User is offlineDorin Vasilescu
1366 posts
1st




Re: COM Server in C# pentru test
 (N/A)
Trebuie pus ce este in Subject dupa ce selectezi View -> Details
 7/28/2011 3:29:58 PM
User is offlinecliv
12 posts


Re: COM Server in C# pentru test
 (Romania) Modified By cliv  on 7/28/2011 3:36:47 PM)
Nu inteleg!...Scuze

Poti sa explici mai detaliat....nu uita ca nu sunt utilizator de VFP...deci interfata nu este uzuala pentru mine...

in subject sunt urmatoarele:

SN = Nume
G = Prenume-Prenume
Serial Number = 200xxxxxxxxxxxx
CN = Prenume-Prenume Nume
L = Mun. Ploiesti
C = RO

Ce sa pun de aici...si unde?

 7/29/2011 4:59:17 PM
User is offlineza_sly
38 posts


Re: XZIP
 (Romania)
Huh.. ceva nu e in regula. Ori am eu ceva gresit in cod.. ori s-a schimbat (din nou) ceva in specificatii... ori, pur si simplu, serverele pe care se face raportarea nu fac fata traficului, tinind cont ca azi e ultima zi din luna.
Ma chinui de la ora 12.00 sa trimit 5 facturi (3 la un CAS, 2 la alt CAS), si pina acum, la ora 17.00, am reusit sa trimit 2 (cite una la fiecare CAS). In rest, m-am lovit numai de mesaje de genul "the server returned an invalid or unrecognized response".
Ceva pareri ? Sugestii ?
Thx.
 7/29/2011 6:00:30 PM
User is offlineDumitru
172 posts
5th


Re: COM Server in C# pentru test
 (N/A)
@cliv, mai este aici un exemplu in C#, te poti inspira.
http://www.easymedical.ro/download/RapSIUI.corectat.zip
Mie mi-a mers (getInsured a lui Dorin) dar nu stiu sa-ti spun unde nu reusesti sa-i dai de cap pentru ca nu am avut probleme si acum nu sunt la calc meu.
Am avut instalat .NET si C# pentru ca ma uitasem pe exemplul din link, pe care autorul zicea ca l-a realizat ajutat de SIVECO iar certificatul functiona deja pe varianta fox.
 8/1/2011 2:41:03 PM
User is offlinecliv
12 posts


Re: COM Server in C# pentru test
 (Romania)
Multumesc...la toti..
 8/18/2011 3:28:19 PM
User is offlineza_sly
38 posts


Re: COM Server in C# pentru test
 (Romania)
Huh. A trecut ceva vreme, si cu scuzele de rigoare (am un motiv intemeiat pentru lipsa) revin cu ce am mai descoperit. Ori e ceva de la serverele cnas, ori de la mine.. Eu oricum nu am descoperit cauza. Daca fisierul de raportare e mai mare de 5 kb, ma lovesc de eroare la send() xml. Adica primesc un raspuns de genul "the server returned an invalid... " ceva. Repet, numai la fisierele mai mari de 5 kb. Ceva idei ? Pareri ? Sugestii ? Modalitati de rezolvare ? :D:D
PS. Am rezolvat si cu semnatura, desi partial. Cu o librarie de la Chilkat. Partial, ca la semnare imi baga in fisier tot lantul autoritatii. Si tot partial ca nu am cumparat libraria. Merg free 30 de zile. Pina atunci, am timp sa imi dau seama cum sa fac sa nu imi mai bage tot lantul, in fisier.
Thx.
 9/1/2011 2:55:49 PM
User is offlinecliv
12 posts


Re: COM Server in C# pentru test
 (Romania) Modified By cliv  on 9/1/2011 3:01:01 PM)
 za_sly wrote
O sa ma interesez cum e si cu semnatura, dar pina atunci, daca e cineva interesat de codul asta de trimitere, sa scrie un rind pe aici, si il sui. Inca o data, multumesc
Thx.


za_sly...daca ai realizat o varianta functionala de cod pentru arhivare, codare Base64 si trimitere a fisierului xml de raportare in VFP chiar si fara semnare mi-o poti trimite si mie?
Multumesc..
cliv1966@gmail.com
 9/7/2011 9:58:26 AM
User is offlinePui
13 posts


Re: COM Server in C# pentru test
 (N/A)
Pentru Digisign Instalati Digisigner, http://digisign.ro/ro/servicii/digisigner , si semnati orice fisier. Va rog frumos sa postati codul pentru trimis fisierul ca as fi si eu interesat de el. Multumesc foarte mult.
 9/30/2011 1:51:21 PM
User is offlinePui
13 posts


Re: COM Server in C# pentru test
 (N/A)
Scuze presupun ca trebuia postat si un cont de e-mail pentru programele de care spuneati PopaT_2006@yahoo.com
 10/10/2011 11:52:16 AM
User is offlinePui
13 posts


Re: COM Server in C# pentru test
 (N/A)
za_sly wrote
O sa ma interesez cum e si cu semnatura, dar pina atunci, daca e cineva interesat de codul asta de trimitere, sa scrie un rind pe aici, si il sui. Inca o data, multumesc
Thx.

Domnule za_sly oferta d-stra nu mai este valabila ca nu am primit nimic ?
 12/14/2011 1:57:33 PM
User is offlinedcristut
99 posts


Re: COM Server in C# pentru test
 (N/A)

Buna ziua si multumiri tuturor pentru eforturi...

Exista, acum catre final, o solutie pentru transmiterea raportarilor la SIUI?

Va multumesc

  Visual FoxPro  Aplicatii Web  RAPORTARE SIUI...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement