Sample code for 30+ languages & platforms
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.cl

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
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("&","&amp;")
numReplaced = sbXml.Replace(">","&gt;")
numReplaced = sbXml.Replace("<","&lt;")
numReplaced = sbXml.Replace("""","&quot;")
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