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
(Classic ASP) Sign XML for eFactura DGI Uruguay (cfe.dgi.gub.uy)Demonstrates how to sign XML for eFactura DGI (Uruguay, cfe.dgi.gub.uy).
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% ' This example assumes the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. success = 1 ' <?xml version="1.0" encoding="utf-8"?> ' <DGICFE:EnvioCFE version="1.0" xsi:schemaLocation="http://cfe.dgi.gub.uy EnvioCFE_v1.30.xsd" xmlns:DGICFE="http://cfe.dgi.gub.uy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ' <DGICFE:Caratula version="1.0"> ' <DGICFE:RutReceptor>...</DGICFE:RutReceptor> ' <DGICFE:RUCEmisor>...</DGICFE:RUCEmisor> ' <DGICFE:Idemisor>...</DGICFE:Idemisor> ' <DGICFE:CantCFE>1</DGICFE:CantCFE> ' <DGICFE:Fecha>2020-07-29T08:24:34-03:00</DGICFE:Fecha> ' <DGICFE:X509Certificate>MIIGc...UJwsTEnI ' </DGICFE:X509Certificate> ' </DGICFE:Caratula> ' <CFE xmlns="http://cfe.dgi.gub.uy" version="1.0"> ' <eFact> ' <TmstFirma>2020-07-21T12:34:01-03:00</TmstFirma> ' <Encabezado> ' <IdDoc> ' <TipoCFE>111</TipoCFE> ' <Serie>A</Serie> ' <Nro>...</Nro> ' <FchEmis>2020-07-21</FchEmis> ' <FmaPago>2</FmaPago> ' <FchVenc>2020-09-19</FchVenc> ' </IdDoc> ' <Emisor> ' <RUCEmisor>...</RUCEmisor> ' <RznSoc>...</RznSoc> ' <NomComercial>...</NomComercial> ' <GiroEmis>...</GiroEmis> ' <Telefono>(598)...</Telefono> ' <Telefono>(598)...</Telefono> ' <CorreoEmisor>...</CorreoEmisor> ' <EmiSucursal>...</EmiSucursal> ' <CdgDGISucur>7</CdgDGISucur> ' <DomFiscal>...</DomFiscal> ' <Ciudad>Montevideo</Ciudad> ' <Departamento>Montevideo</Departamento> ' </Emisor> ' <Receptor> ' <TipoDocRecep>2</TipoDocRecep> ' <CodPaisRecep>UY</CodPaisRecep> ' <DocRecep>...</DocRecep> ' <RznSocRecep>...</RznSocRecep> ' <DirRecep>...</DirRecep> ' <CiudadRecep>...</CiudadRecep> ' <DeptoRecep>...</DeptoRecep> ' <PaisRecep/> ' <CP>...</CP> ' <InfoAdicional/> ' <LugarDestEnt>...</LugarDestEnt> ' <CompraID>...</CompraID> ' </Receptor> ' <Totales> ' <TpoMoneda>UYU</TpoMoneda> ' <MntNoGrv>0.00</MntNoGrv> ' <MntExpoyAsim>0.00</MntExpoyAsim> ' <MntImpuestoPerc>0.00</MntImpuestoPerc> ' <MntIVaenSusp>0.00</MntIVaenSusp> ' <MntNetoIvaTasaMin>2701.71</MntNetoIvaTasaMin> ' <MntNetoIVATasaBasica>0.00</MntNetoIVATasaBasica> ' <MntNetoIVAOtra>0.00</MntNetoIVAOtra> ' <IVATasaMin>10.00</IVATasaMin> ' <IVATasaBasica>22.00</IVATasaBasica> ' <MntIVATasaMin>270.17</MntIVATasaMin> ' <MntIVATasaBasica>0.00</MntIVATasaBasica> ' <MntIVAOtra>0.00</MntIVAOtra> ' <MntTotal>2971.88</MntTotal> ' <MntTotRetenido>0.00</MntTotRetenido> ' <CantLinDet>1</CantLinDet> ' <MontoNF>0.11</MontoNF> ' <MntPagar>2971.99</MntPagar> ' </Totales> ' </Encabezado> ' <Detalle> ' <Item> ' <NroLinDet>1</NroLinDet> ' <IndFact>2</IndFact> ' <NomItem>...</NomItem> ' <DscItem>...</DscItem> ' <Cantidad>4.000</Cantidad> ' <UniMed/> ' <PrecioUnitario>662.185000</PrecioUnitario> ' <DescuentoPct>0.000</DescuentoPct> ' <DescuentoMonto>0.00</DescuentoMonto> ' <RecargoPct>2.000</RecargoPct> ' <RecargoMnt>52.97</RecargoMnt> ' <MontoItem>2701.71</MontoItem> ' </Item> ' </Detalle> ' <CAEData> ' <CAE_ID>90200658285</CAE_ID> ' <DNro>1015000</DNro> ' <HNro>1016999</HNro> ' <FecVenc>2022-05-07</FecVenc> ' </CAEData> ' </eFact> ' </CFE> ' </DGICFE:EnvioCFE> ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.XmlDSigGen") set gen = Server.CreateObject("Chilkat.XmlDSigGen") gen.SigLocation = "DGICFE:EnvioCFE|CFE" gen.SigLocationMod = 0 gen.SigNamespacePrefix = "" gen.SigNamespaceUri = "http://www.w3.org/2000/09/xmldsig#" gen.SignedInfoCanonAlg = "C14N" gen.SignedInfoDigestMethod = "sha1" ' -------- Reference 1 -------- success = gen.AddSameDocRef("","sha1","C14N","","") ' Provide a certificate + private key. (PFX password is test123) ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Cert") set cert = Server.CreateObject("Chilkat.Cert") success = cert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123") If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( cert.LastErrorText) & "</pre>" Response.End End If success = gen.SetX509Cert(cert,1) gen.KeyInfoType = "X509Data" gen.X509Type = "IssuerSerial" ' Load XML to be signed... ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.StringBuilder") set sbXml = Server.CreateObject("Chilkat.StringBuilder") success = sbXml.LoadFile("qa_data/cfe.dgi.gub.uy/sample.xml","utf-8") If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( "Failed to load input XML document.") & "</pre>" Response.End End If gen.Behaviors = "IndentedSignature,CompactSignedXml" ' Sign the XML... success = gen.CreateXmlDSigSb(sbXml) If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( gen.LastErrorText) & "</pre>" Response.End End If ' ----------------------------------------------- ' Save the signed XML to a file. success = sbXml.WriteFile("qa_output/signed.xml","utf-8",0) Response.Write "<pre>" & Server.HTMLEncode( sbXml.GetAsString()) & "</pre>" %> </body> </html> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.