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
(AutoIt) Sign XML for eFactura DGI Uruguay (cfe.dgi.gub.uy)Demonstrates how to sign XML for eFactura DGI (Uruguay, cfe.dgi.gub.uy).
; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. Local $bSuccess = True ; <?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> $oGen = ObjCreate("Chilkat.XmlDSigGen") $oGen.SigLocation = "DGICFE:EnvioCFE|CFE" $oGen.SigLocationMod = 0 $oGen.SigNamespacePrefix = "" $oGen.SigNamespaceUri = "http://www.w3.org/2000/09/xmldsig#" $oGen.SignedInfoCanonAlg = "C14N" $oGen.SignedInfoDigestMethod = "sha1" ; -------- Reference 1 -------- $oGen.AddSameDocRef("","sha1","C14N","","") ; Provide a certificate + private key. (PFX password is test123) $oCert = ObjCreate("Chilkat.Cert") $bSuccess = $oCert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123") If ($bSuccess <> True) Then ConsoleWrite($oCert.LastErrorText & @CRLF) Exit EndIf $oGen.SetX509Cert($oCert,True) $oGen.KeyInfoType = "X509Data" $oGen.X509Type = "IssuerSerial" ; Load XML to be signed... $oSbXml = ObjCreate("Chilkat.StringBuilder") $bSuccess = $oSbXml.LoadFile("qa_data/cfe.dgi.gub.uy/sample.xml","utf-8") If ($bSuccess = False) Then ConsoleWrite("Failed to load input XML document." & @CRLF) Exit EndIf $oGen.Behaviors = "IndentedSignature,CompactSignedXml" ; Sign the XML... $bSuccess = $oGen.CreateXmlDSigSb($oSbXml) If ($bSuccess <> True) Then ConsoleWrite($oGen.LastErrorText & @CRLF) Exit EndIf ; ----------------------------------------------- ; Save the signed XML to a file. $bSuccess = $oSbXml.WriteFile("qa_output/signed.xml","utf-8",False) ConsoleWrite($oSbXml.GetAsString() & @CRLF) |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.