AutoIt
AutoIt
SOAP e-factura.sunat.gob.pe getStatusCdr
See more HTTP Misc Examples
Make a SOAP call to https://e-factura.sunat.gob.pe/ol-it-wsconscpegem/billConsultServiceChilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; --------------------------------------------------------------------------------
; Also see Chilkat's Online WSDL Code Generator
; to generate code and SOAP Request and Response XML for each operation in a WSDL.
; --------------------------------------------------------------------------------
$oHttp = ObjCreate("Chilkat.Http")
; <soapenv:Envelope xmlns:ser="http://service.sunat.gob.pe"
; xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
; xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
; <soapenv:Header>
; <wsse:Security>
; <wsse:UsernameToken>
; <wsse:Username>MY_USERNAME</wsse:Username>
; <wsse:Password>MY_PASSWORD</wsse:Password>
; </wsse:UsernameToken>
; </wsse:Security>
; </soapenv:Header>
; <soapenv:Body>
; <ser:getStatus>
; <rucComprobante>99999999999</rucComprobante>
; <tipoComprobante>01</tipoComprobante>
; <serieComprobante>F001</serieComprobante>
; <numeroComprobante>55555</numeroComprobante>
; </ser:getStatus>
; </soapenv:Body>
; </soapenv:Envelope>
;
$oXml = ObjCreate("Chilkat.Xml")
$oXml.Tag = "soapenv:Envelope"
$oXml.AddAttribute("xmlns:ser","http://service.sunat.gob.pe")
$oXml.AddAttribute("xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/")
$oXml.AddAttribute("xmlns:wsse","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd")
$oXml.UpdateChildContent "soapenv:Header|wsse:Security|wsse:UsernameToken|wsse:Username","MY_USERNAME"
$oXml.UpdateChildContent "soapenv:Header|wsse:Security|wsse:UsernameToken|wsse:Password","MY_PASSWORD"
$oXml.UpdateChildContent "soapenv:Body|ser:getStatus|rucComprobante","99999999999"
$oXml.UpdateChildContent "soapenv:Body|ser:getStatus|tipoComprobante","01"
$oXml.UpdateChildContent "soapenv:Body|ser:getStatus|serieComprobante","F001"
$oXml.UpdateChildContent "soapenv:Body|ser:getStatus|numeroComprobante","55555"
Local $strXml = $oXml.GetXml()
$oHttp.SetRequestHeader "SOAPAction","urn:getStatusCdr"
Local $sEndPoint = "https://e-factura.sunat.gob.pe/ol-it-wsconscpegem/billConsultService"
$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpStr("POST",$sEndPoint,$strXml,"utf-8","text/xml",$oResp)
If ($bSuccess = False) Then
ConsoleWrite($oHttp.LastErrorText & @CRLF)
Exit
EndIf
Local $iStatusCode = $oResp.StatusCode
If ($iStatusCode <> 200) Then
ConsoleWrite("Non-success status code: " & $iStatusCode & @CRLF)
ConsoleWrite("Response header: " & $oResp.Header & @CRLF)
ConsoleWrite("Response body: " & $oResp.BodyStr & @CRLF)
ConsoleWrite("Unsuccessful." & @CRLF)
Exit
EndIf
$oXmlResp = ObjCreate("Chilkat.Xml")
$oXmlResp.LoadXml($oResp.BodyStr)
ConsoleWrite($oXmlResp.GetXml() & @CRLF)
; A sample response:
; <?xml version="1.0" encoding="UTF-8"?>
; <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
; <S:Body>
; <ns0:getStatusResponse xmlns:ns0="http://service.sunat.gob.pe">
; <status>
; <statusCode>0001</statusCode>
; <statusMessage>El comprobante existe y est� aceptado.</statusMessage>
; </status>
; </ns0:getStatusResponse>
; </S:Body>
; </S:Envelope>
;
; Parse the response...
Local $sS_Envelope_xmlns_S = $oXml.GetAttrValue("xmlns:S")
Local $sNs0_getStatusResponse_xmlns_ns0 = $oXml.ChilkatPath("S:Body|ns0:getStatusResponse|(xmlns:ns0)")
$iStatusCode = $oXml.GetChildIntValue("S:Body|ns0:getStatusResponse|status|statusCode")
Local $statusMessage = $oXml.GetChildContent("S:Body|ns0:getStatusResponse|status|statusMessage")