Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(VB.NET UWP/WinRT) Create sii.cl Factura Electrónica (Chile Servicio de Impuestos Internos)Demonstrates how to sign an XML invoice according to Chilean Internal Revenue Service regulations.
' This example assumes the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. ' See: Apply 2nd Signature to sii.cl Factura Electr�nica (Chile Servicio de Impuestos Internos) ' for an example showing how to apply a 2nd signature. ' We want to sign XML that looks like the following: ' <?xml version="1.0" encoding="iso-8859-1"?> ' <DTE version="1.0" xmlns="http://www.sii.cl/SiiDte"> ' <Documento ID="F13T34"> ' <Encabezado> ' <IdDoc> ' <TipoDTE>34</TipoDTE> ' <Folio>13</Folio> ' <FchEmis>2020-07-17</FchEmis> ' <FmaPago>1</FmaPago> ' <FchVenc>2020-07-17</FchVenc> ' </IdDoc> ' <Emisor> ' <RUTEmisor>...</RUTEmisor> ' <RznSoc>...</RznSoc> ' <GiroEmis>...</GiroEmis> ' <Acteco>...</Acteco> ' <DirOrigen>...</DirOrigen> ' <CmnaOrigen>...</CmnaOrigen> ' <CiudadOrigen>...</CiudadOrigen> ' </Emisor> ' <Receptor> ' <RUTRecep>...</RUTRecep> ' <RznSocRecep>...</RznSocRecep> ' <GiroRecep>...</GiroRecep> ' <Contacto/> ' <DirRecep>...</DirRecep> ' <CmnaRecep>...</CmnaRecep> ' <CiudadRecep>...</CiudadRecep> ' </Receptor> ' <Totales> ' <MntExe>14999</MntExe> ' <MntTotal>14999</MntTotal> ' </Totales> ' </Encabezado> ' <Detalle> ' <NroLinDet>1</NroLinDet> ' <CdgItem> ' <TpoCodigo>INT</TpoCodigo> ' <VlrCodigo>1</VlrCodigo> ' </CdgItem> ' <NmbItem>Atencin profesional mes de Junio 2020</NmbItem> ' <QtyItem>1</QtyItem> ' <UnmdItem>UNI</UnmdItem> ' <PrcItem>14999</PrcItem> ' <MontoItem>14999</MontoItem> ' </Detalle> ' <TED version="1.0"> ' <DD> ' <RE>99972220-K</RE> ' <TD>34</TD> ' <F>13</F> ' <FE>2020-07-17</FE> ' <RR>99942999-2</RR> ' <RSR>...</RSR> ' <MNT>14999</MNT> ' <IT1>Atencion profesional mes de Junio 2020</IT1> ' <CAF version="1.0"> ' <DA> ' <RE>99972220-K</RE> ' <RS>...</RS> ' <TD>34</TD> ' <RNG> ' <D>3</D> ' <H>12</H> ' </RNG> ' <FA>2019-10-10</FA> ' <RSAPK> ' <M>2zHVYpcVNQRvS2yFuqdrh...TEQZx/m0t9HVTgWKZvlc6LSQ==</M> ' <E>Aw==</E> ' </RSAPK> ' <IDK>300</IDK> ' </DA> ' <FRMA algoritmo="SHA1withRSA">LaVkjISGu...sBtsQL1jR9lw==</FRMA> ' </CAF> ' <TSTED>2020-07-17T13:19:10</TSTED> ' </DD> ' <FRMT algoritmo="SHA1withRSA">LxZr6zmXRZIfTz7...IXS6sp4vfz2fIsA==</FRMT> ' </TED> ' <TmstFirma>2020-07-17T13:19:10</TmstFirma> ' </Documento> ' </DTE> Dim success As Boolean = True Dim gen As New Chilkat.XmlDSigGen gen.SigLocation = "DTE" gen.SigLocationMod = 0 gen.SigNamespacePrefix = "" gen.SigNamespaceUri = "http://www.w3.org/2000/09/xmldsig#" gen.SignedInfoCanonAlg = "C14N" gen.SignedInfoDigestMethod = "sha1" ' -------- Reference 1 -------- gen.AddSameDocRef("F13T34","sha1","","","") ' Provide a certificate + private key. (PFX password is test123) Dim cert As New Chilkat.Cert success = cert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123") If (success <> True) Then Debug.WriteLine(cert.LastErrorText) Exit Sub End If gen.SetX509Cert(cert,True) gen.KeyInfoType = "X509Data+KeyValue" gen.X509Type = "Certificate" ' Load XML to be signed... Dim sbXml As New Chilkat.StringBuilder success = sbXml.LoadFile("qa_data/xml_dsig/sii_cl/xmlToSign.xml","iso-8859-1") If (success = False) Then Debug.WriteLine("Failed to load XML file.") Exit Sub End If gen.Behaviors = "IndentedSignature" ' Sign the XML... success = gen.CreateXmlDSigSb(sbXml) If (success <> True) Then Debug.WriteLine(gen.LastErrorText) Exit Sub End If ' ----------------------------------------------- ' Save the signed XML to a file. success = sbXml.WriteFile("qa_data/xml_dsig/sii_cl/signed1.xml","iso-8859-1",False) Debug.WriteLine(sbXml.GetAsString()) ' ---------------------------------------- ' Verify the signatures we just produced... Dim verifier As New Chilkat.XmlDSig success = verifier.LoadSignatureSb(sbXml) If (success <> True) Then Debug.WriteLine(verifier.LastErrorText) Exit Sub End If Dim numSigs As Integer = verifier.NumSignatures Dim verifyIdx As Integer = 0 While verifyIdx < numSigs verifier.Selector = verifyIdx Dim verified As Boolean = verifier.VerifySignature(True) If (verified <> True) Then Debug.WriteLine(verifier.LastErrorText) Exit Sub End If verifyIdx = verifyIdx + 1 End While Debug.WriteLine("All signatures were successfully verified.") |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.