Gli url per le richieste HTTP cambiano in base all'ambiente in cui si lavora:
* Apre la connessione con il Cloud di Aruba per prelevare il token Local loHttp As "MSXML2.XMLHTTP.6.0" && creazione oggetto per richieste HTTPloHttp = Createobject("MSXML2.XMLHTTP.6.0")
LOCAL luser, lpasswordluser = "user_demo" && inserire quella fornita da Arubalpassword = "password_demo" && inserire quella fornita da Aruba
Local lEsito && variabile per prelevare la risposta del serverWith loHttp As MSXML2.XMLHTTP.6.0 .Open("POST", 'https://demoauth.fatturazioneelettronica.aruba.it/auth/signin' ,.F.) && URL del Cloud di Test da sostituire con quello di produzione .setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8") .setRequestHeader("Content-Length","53") .setRequestHeader("Host","localhost:8080") .Send("grant_type=password&username="+luser+"&password="+lpassword) && faccio la POST con le variabili Store .responsetext To lEsito && memorizzo la risposta del serverEndwith
Public oConnessione_ArubaoConnessione_Aruba = nfjsonread(lEsito) && questo prg si trova nella libreria nfjson https://github.com/VFPX/nfJson
*!* ?oConnessione_Aruba.access_token && "2cd189554da27d3c"*!* ?oConnessione_Aruba.token_type && "bearer"*!* ?oConnessione_Aruba.expires_in && 1800*!* ?oConnessione_Aruba.refresh_token && "38664d078c372d85"*!* ?oConnessione_Aruba.client_id &&* "123456"*!* ?oConnessione_Aruba.userName && "Utente"*!* *?oConnessione_Aruba.issued &&* "2018-09-13T14:34:08.370Z"*!* *?oConnessione_Aruba.expires && "2018-09-13T15:04:08.370Z"
RELEASE loHttp
LOCAL lFile,
lFile_base64, lVariabili, lCred_firma, lDom_firma, ltoken
ltoken =
oConnessione_Aruba.access_token && si ottiene con il codice di prima per l'autenticazione
lCred_firma = '' &&
credenziali firma automatica (lasciare vuoto se si affida la firma ad Aruba)
lDom_firma = '' && credenziali firma automatica
(lasciare vuoto se si affida la firma ad Aruba)
lfile = GETFILE('xml','File XML','Carica il file') && si può optare anche per mandare direttamente il nome del dile lfile = "IT0000000000_00001.XML"
lfile_base64 = STRCONV(FILETOSTR(lfile),13) && serve a convertire il file da testo a binario
lVariabili =
'{"dataFile" : "'+lfile_base64+'","credential" :
"","domain" : ""}' && sono formattate in json
Local loHttp As "MSXML2.XMLHTTP.6.0"
loHttp = Createobject("MSXML2.XMLHTTP.6.0")
Local lEsito &&
variabile per prelevare la risposta del server
With loHttp As MSXML2.XMLHTTP.6.0
.Open("POST",
'https://demows.fatturazioneelettronica.aruba.it/services/invoice/upload',.F.)
.setRequestHeader("Accept","application/json")
.setRequestHeader("Authorization","Bearer
"+ltoken)
.setRequestHeader("Content-Type","application/json;charset=UTF-8")
.setRequestHeader("Content-Length","90")
.setRequestHeader("Host","localhost:8080")
.Send(lVariabili)
&&
faccio la POST con le variabili
Store .responsetext To lEsito &&
memorizzo la risposta del server
Endwith
Public oUpload_Aruba
oUpload_Aruba=nfjsonread(lEsito)
*!* ?oUpload_Aruba.errorCode && 1 degli errori dalla tabella
ErroCode
*!* ?oUpload_Aruba.errorDescription && La relativa descrizione
*!* ?oUpload_Aruba.uploadFileName
&& il nome file inviato
RELEASE loHttp
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Foxpro Italia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a foxpro-itali...@googlegroups.com.
Per postare messaggi in questo gruppo, invia un'email a foxpro...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/foxpro-italia/vjtqvd9d2p2uc29n0l6tvbg44qpl2gkagv%404ax.com.
Per ulteriori opzioni, visita https://groups.google.com/d/optout.
Per postare in questo gruppo, invia un'email a foxpro...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/foxpro-italia/CABTfG5m_v3R%3DUs%2BzwKYKCKniVVY2HOKz1tREEYDzbgqiO4Vz4w%40mail.gmail.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/foxpro-italia/D425F131-27F4-4832-AF28-DA25ECB333F1%40italwork.com.