Visual Basic 6.0
Visual Basic 6.0
palena.sii.cl getToken SOAP Request
See more SII Chile Examples
Demonstrates how to call getToken SOAP request at palena.sii.clChilkat Visual Basic 6.0 Downloads
Dim success As Long
success = 0
' This example requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
' Create the XML to be signed...
Dim xmlToSign As New ChilkatXml
xmlToSign.Tag = "getToken"
' This is the seed obtained from palena.sii.cl getSeed
xmlToSign.UpdateChildContent "item|Semilla","033878794660"
Dim gen As New ChilkatXmlDSigGen
gen.SigLocation = "getToken"
gen.SigLocationMod = 0
gen.SigNamespacePrefix = ""
gen.SigNamespaceUri = "http://www.w3.org/2000/09/xmldsig#"
gen.SignedInfoCanonAlg = "EXCL_C14N"
gen.SignedInfoDigestMethod = "sha1"
success = gen.AddSameDocRef("","sha1","","","")
' Provide a certificate + private key. (PFX password is test123)
Dim cert As New ChilkatCert
success = cert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123")
If (success = 0) Then
Debug.Print cert.LastErrorText
Exit Sub
End If
success = gen.SetX509Cert(cert,1)
gen.KeyInfoType = "X509Data"
gen.X509Type = "Certificate"
' Load XML to be signed...
Dim sbXml As New ChilkatStringBuilder
xmlToSign.EmitXmlDecl = 0
success = xmlToSign.GetXmlSb(sbXml)
gen.Behaviors = "IndentedSignature"
' Sign the XML...
success = gen.CreateXmlDSigSb(sbXml)
If (success = 0) Then
Debug.Print gen.LastErrorText
Exit Sub
End If
' -----------------------------------------------
Dim http As New ChilkatHttp
Dim responseStatusCode As Long
http.UncommonOptions = "AllowEmptyHeaders"
http.SetRequestHeader "SOAPAction",""
' The endpoint for this soap service is:
Dim endPoint As String
endPoint = "https://palena.sii.cl/DTEWS/GetTokenFromSeed.jws"
' Send the following SOAP XML
' <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:def="http://DefaultNamespace">
' <soapenv:Header/>
' <soapenv:Body>
' <def:getToken soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
' <pszXml>SIGNED_XML_GOES_HERE</pszXml>
' </def:getToken>
' </soapenv:Body>
' </soapenv:Envelope>
Dim xml As New ChilkatXml
xml.Tag = "soapenv:Envelope"
success = xml.AddAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance")
success = xml.AddAttribute("xmlns:xsd","http://www.w3.org/2001/XMLSchema")
success = xml.AddAttribute("xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/")
success = xml.AddAttribute("xmlns:def","http://DefaultNamespace")
xml.UpdateChildContent "soapenv:Header",""
success = xml.UpdateAttrAt("soapenv:Body|def:getToken",1,"soapenv:encodingStyle","http://schemas.xmlsoap.org/soap/encoding/")
xml.UpdateChildContent "soapenv:Body|def:getToken|pszXml","SIGNED_XML_GOES_HERE"
' We must replace the "SIGNED_XML_GOES_HERE" with the exact contents of the signed XML to ensure the signed XML is not modified in any way.
Dim sbSoapXml As New ChilkatStringBuilder
success = sbSoapXml.Append(xml.GetXml())
Dim numReplaced As Long
numReplaced = sbXml.Replace("&","&")
numReplaced = sbXml.Replace(">",">")
numReplaced = sbXml.Replace("<","<")
numReplaced = sbXml.Replace("""",""")
numReplaced = sbSoapXml.Replace("SIGNED_XML_GOES_HERE",sbXml.GetAsString())
Dim xmlStr As String
xmlStr = sbSoapXml.GetAsString()
Dim resp As New ChilkatHttpResponse
success = http.HttpStr("POST",endPoint,xmlStr,"utf-8","text/xml",resp)
If (success = 0) Then
Debug.Print http.LastErrorText
Exit Sub
End If
responseStatusCode = resp.StatusCode
Debug.Print "Response Status Code: " & responseStatusCode
' You may examine the exact HTTP header sent with the POST like this:
Debug.Print "LastHeader:"
Debug.Print http.LastHeader
' Examine the XML returned by the web service:
Debug.Print "XML Response:"
Dim xmlResp As New ChilkatXml
success = xmlResp.LoadXml(resp.BodyStr)
Debug.Print xmlResp.GetXml()
' Use this online tool to generate parsing code from response XML:
' Generate Parsing Code from XML