Bonjour,

En 2014, j'avais réalisé une application en VB.NET permettant d'envoyer un fichier zip par web service, ce web service nécessite une authentification WSSE Security.
Récemment, j'ai pu avoir de l'aide pour pouvoir faire la même chose en windev, le code que je vais poster utilise ce fichier WSDL

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
l_adresse est chaîne="C:\"
l_fichier est chaîne="MonFichierZIPaEnvoyer.zip"
 
l_ZIPEnvoi est chaîne=l_adresse+l_fichier //chemin du fichier ZIP à envoyer
l_ZIPReponse est chaîne=l_adresse+"R-"+l_fichier //chemin du fichier ZIP retourné par le web service
 
ServicioWebSUNAT est sendBill
ServicioWebSUNAT.fileName=l_fichier
ServicioWebSUNAT.contentFile=fChargeBuffer(l_ZIPEnvoi)
hdr est chaîne=[
	<SOAP-ENV:Header>
	<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
	<wsse:UsernameToken>
	<wsse:Username>%1</wsse:Username>
	<wsse:Password>%2</wsse:Password>
	</wsse:UsernameToken>
	</wsse:Security>
	</SOAP-ENV:Header>
]
 
//identifiants de connexion WSSE Security
hdr=ChaîneConstruit(hdr,"Mettre ici le login","Mettre ici le mot de passe")
 
Xmlstring est chaîne=SOAPPrépare(billService.sendBill,ServicioWebSUNAT)
Xmlstring=Remplace(Xmlstring,"<SOAP-ENV:Header/>",hdr)
bRespuesta est booléen=SOAPExécuteXML("https://www.sunat.gob.pe/ol-ti-itcpgem-beta/billService?wsdl", Xmlstring)
SI (bRespuesta = Faux)
	Erreur(SOAPErreur(SOAPErrCode))
	RETOUR	
FIN
sRetorno3 est chaîne=SOAPDonneRésultat(SOAPRésultatXML)
l_contenuSOAP est chaîne=fChargeTexte(sRetorno3)
l_reponse est chaîne=XMLExtraitChaîne(l_contenuSOAP,"applicationResponse",1,XMLIgnoreLaCasse)
l_reponseClair est chaîne=Décrypte(l_reponse,"",compresseAucun+crypteAucun,encodeBASE64)
fSauveBuffer(l_ZIPReponse,l_reponseClair)
Info("fin du traitement")