Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerShell) palena.sii.cl getToken SOAP RequestDemonstrates how to call getToken SOAP request at palena.sii.cl
Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll" # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # Create the XML to be signed... $xmlToSign = New-Object Chilkat.Xml $xmlToSign.Tag = "getToken" # This is the seed obtained from palena.sii.cl getSeed $xmlToSign.UpdateChildContent("item|Semilla","033878794660") $gen = New-Object Chilkat.XmlDSigGen $gen.SigLocation = "getToken" $gen.SigLocationMod = 0 $gen.SigNamespacePrefix = "" $gen.SigNamespaceUri = "http://www.w3.org/2000/09/xmldsig#" $gen.SignedInfoCanonAlg = "EXCL_C14N" $gen.SignedInfoDigestMethod = "sha1" $gen.AddSameDocRef("","sha1","","","") # Provide a certificate + private key. (PFX password is test123) $cert = New-Object Chilkat.Cert $success = $cert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123") if ($success -ne $true) { $($cert.LastErrorText) exit } $gen.SetX509Cert($cert,$true) $gen.KeyInfoType = "X509Data" $gen.X509Type = "Certificate" # Load XML to be signed... $sbXml = New-Object Chilkat.StringBuilder $xmlToSign.EmitXmlDecl = $false $xmlToSign.GetXmlSb($sbXml) $gen.Behaviors = "IndentedSignature" # Sign the XML... $success = $gen.CreateXmlDSigSb($sbXml) if ($success -ne $true) { $($gen.LastErrorText) exit } # ----------------------------------------------- $http = New-Object Chilkat.Http $http.UncommonOptions = "AllowEmptyHeaders" $http.SetRequestHeader("SOAPAction","") $http.SetRequestHeader("Content-Type","text/xml; charset=utf-8") # The endpoint for this soap service is: $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> $xml = New-Object Chilkat.Xml $xml.Tag = "soapenv:Envelope" $xml.AddAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance") $xml.AddAttribute("xmlns:xsd","http://www.w3.org/2001/XMLSchema") $xml.AddAttribute("xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/") $xml.AddAttribute("xmlns:def","http://DefaultNamespace") $xml.UpdateChildContent("soapenv:Header","") $xml.UpdateAttrAt("soapenv:Body|def:getToken",$true,"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. $sbSoapXml = New-Object Chilkat.StringBuilder $sbSoapXml.Append($xml.GetXml()) $numReplaced = $sbXml.Replace("&","&") $numReplaced = $sbXml.Replace(">",">") $numReplaced = $sbXml.Replace("<","<") $numReplaced = $sbXml.Replace("`"",""") $numReplaced = $sbSoapXml.Replace("SIGNED_XML_GOES_HERE",$sbXml.GetAsString()) $resp = $http.PostXml($endPoint,$sbSoapXml.GetAsString(),"utf-8") if ($http.LastMethodSuccess -ne $true) { $($http.LastErrorText) $("LastHeader:") $($http.LastHeader) exit } $responseStatusCode = $resp.StatusCode $("Response Status Code: " + $responseStatusCode) # You may examine the exact HTTP header sent with the POST like this: $("LastHeader:") $($http.LastHeader) # Examine the XML returned by the web service: $("XML Response:") $xmlResp = New-Object Chilkat.Xml $xmlResp.LoadXml($resp.BodyStr) $($xmlResp.GetXml()) # Use this online tool to generate parsing code from response XML: # Generate Parsing Code from XML |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.