Jump to content

Search the Community

Showing results for tags 'cte'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

There are no results to display.

Forums

  • Fórum Aberto - ACBr
    • ACBr News
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrMonitor PLUS
    • ACBrDFe
    • ACBrTEFD e Dúvidas sobre TEF
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
    • Dia do ACBr
  • Suporte Pago - SAC
    • Dúvidas gerais
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • Outros Assuntos
    • ACBr's Pub
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Data Base
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categories

  • Suporte Pago - SAC
    • ACBrMonitorPLUS - SAC
    • Utilitários - SAC
    • ACBrLib - SAC
    • Dia do ACBr 1a edição
  • Free Download
    • ACBrMonitorPLUS
    • Demos / Testes / Utilitários
    • ACBrLIB
    • Apresentações - Palestras

Calendars

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Community Calendar
  • Feriados Nacionais

Blogs

  • Daniel Simoes' Blog
  • André Ferreira de Moraes
  • Moderadores ACBr
  • Teste de Blog
  • Notícias do ACBr

Categories

  • Suporte Pago - SAC
    • Webinars
    • Video Aulas
    • Palestras - Dia do ACBr 1a Ediçao
  • Vídeos Abertos
    • Video Aulas
    • Comunicados
    • Palestras - Dia do ACBr 1a Ediçao
  • Campanhas promocionais

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Skype


Localização


Interesses


CNPJ da Empresa


CPF

Found 319 results

  1. Prezados, boa tarde Desenvolvi uma aplicação para meus clientes monitorarem os XMLS de NFes / CTes emitidos contra seus respectivos CNPJs, com relação aos Eventos da CTe, estou tendo dificuldades em obter os dados do Evento para salvar em banco de dados, estou conseguindo ler partes do xml do evento mas o tpEvento esta sempre trazendo -999999. Abaixo trecho do código onde valido o Schema e tento obter por exemplo o tpevento for i := 0 to j do begin //VALIDANDO SCHEMA RETORNO if ( ACBrCTe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.schema = schprocCTe ) then begin ACBrCTe1.Conhecimentos.Clear; ACBrCTe1.Conhecimentos.LoadFromString(ACBrCTe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.XML, bFalse); CarregarVariaveisCTe(I); end ELSE begin if ( ACBrCTe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.schema = schprocEventoCTe ) then begin ShowMessage(TpEventoToStr(ACBrCTe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.RetinfEvento.tpEvento)); end; end; end; Obs.: Como ainda estou validando, programei para exibir na tela o tpEvento, ele sempre exibe -999999, porem se consulto o XML de retorno referente ao respectivo evento, o tpevento esta preenchido normalmente, exemplo <tpEvento>310610</tpEvento>. Anexei um arquivo de retorno para caso seja necessário analisar. Desde já agradeço o empenho e a atenção de todos. Att., Alexandre Castro 3106103119040112579700089257015000299629120087557001-procEventoCTe.xml
  2. Prezados, bom dia Pesquisei no Fórum e vi que o Italo escreveu sobre esse assunto na postagem abaixo, acontece que meu problema é parecido mas não é igual. Desenvolvi uma aplicação para meus clientes monitorarem os XMLS de NFes / CTes emitidos contra seus respectivos CNPJs, após baixar e armazenar os XMLs, a ferramenta permite que as Notas / CTes sejam reimpressas, para tal eu carrego o XML armazenado para o componente permitindo assim que os documentos possam ser impressos, notei que estão sendo baixadas Notas e CTes que foram emitidos antes da nova validação entrar em vigor, ou seja, em alguns casos o numero das nfes/ctes são iguais aos códigos numéricos, o problema ocorre quando tento carregar estes XMLs para o componente, a validação está sendo realizada neste momento, sendo assim, ela rejeita a possibilidade de carregar o XMl e impossibilidade a reimpressão do mesmo. Bom, minha dúvida é a seguinte : Existe alguma forma de desativar esta regra de validação momentaneamente para que esse processo (importação do XML) seja realizado e continue permitindo a reimpressão destes documentos ? Grato pelo apoio Att., Alexandre Castro
  3. Bom dia, alguém tem mais informações sobre o Evento Comprovante de Entrega do CT-e? Esse é um evento obrigatório? Li em um site que não é uma informação obrigatória, porém na NT e no manual não diz nada sobre isso. Também as tags latitude e longitude são obrigatórias? Se forem, esse evento deverá ser registrado no momento da entrega em um dispositivo móvel? Obrigado!
  4. Bom dia pessoal. Primeiramente, gostaria de elogiar o refactoring efetuado há alguns meses atrás, deixando o código-fonte dos documentos eletrônicos mais limpo, organizado e estruturado. Apesar de todas as melhorias, acabei tendo uma pequena perda a partir dele: em nossa tela de emissão de Carta de Correção Eletrônica p/ CT-e, eu havia implementado uma forma dinâmica de obter todas as propriedades que podem ser corrigidas em um CT-e através da seguinte fução RTTI: var PropList: PPropList; begin GetPropList(pcteCTe.TCTe.ClassInfo, PropList); ... Essa função retornava todas as propriedades da classe e de todas as classes internas, restando apenas o trabalho de remover da lista as tags para as quais não é permitida a alteração (conforme pág. 225 do manual de integração 3.00): O que ocorre é que a maioria das propriedades dos componentes, inclusive desta classe, foram passadas de published para public, tornando-as invisíveis externamente via RTTI. O que vocês acham que eu poderia fazer neste caso? Gostaria de saber também se há muitas vantagens em tornar as propriedades public, motivando assim esta mudança no refactoring. Desde já agradeço a atenção. Abraço, Gabriel Bonzanini.
  5. Bom dia. Estou deparando com o seguinte problema , estou no ambiente de homologação sefaz de SP , emito a nota e quando vou em consultar pela chave me deparo com a seguinte mensagem "Nenhum CTe ou Chave Informado" , estou debugando e estou passando a chave corretamente para o componente, seque o trecho do meu código de consulta. DataModuleAcbr.CTes.Conhecimentos.Clear; DataModuleAcbr.ConfigurarCTe(Tsession.IdEmpresa); DataModuleAcbr.CTes.WebServices.Consulta.CTeChave := QryLocalizarCteCHAVE_CTE.AsString; DataModuleAcbr.CTes.Consultar;
  6. Bom dia estou a procura de sistema ERP web com os fonts, também sistema TMS com os fonts, algum tem algum paa indicar?
  7. A condição da linha 496 da função TRetDistDFeInt.LerXml não está funcionando corretamente para XML de CT-e OS. if (oLeitorInfZip.rExtrai(1, LowerCase(FtpDFe) + 'Proc') <> '') then A verificação está sendo realizada na tag cteProc (FtpDFe = CTe), porém a tag correta é cteOSProc. Com isso as propriedades não estão sendo preenchidas corretamente, inclusive o XML.
  8. Caros tenho um cliente de MG, que gerou um Cte com tomador errado. Este ao perceber o erro, gerou uma NFe anulando o serviço e orientou ao meu cliente para gerar um CTe substituto. Como o manual do AcbrMonitor parece estar com os exemplos desatualizados ou com omissão de algumas tags/valores, pesquisei bastante aquí no forum a forma correta de fazer isso, mas apenas achei tópicos referentes ao controle AcbrCte. Na maioria das vezes os nomes dos comandos são consistentes, e assim tentei arriscar usando os mesmos comandos usados no controle, mas seja por divergência na palavra-chave ou erro da minha parte o xml gerado não gera refNFe; ele aplica refCTe em branco no lugar, o que gera o erro de validação: erro: 1824 - Element '{http://www.portalfiscal.inf.br/cte}refCte': '' is not a valid value of the atomic type '{http://www.portalfiscal.inf.br/cte}TChNFe'. a parte do txt referente à substituição eu estou fazendo da seguinte forma: [infCteSub] chCte= 31190604002794000183570010000002591000005218 [tomaICMS] refNFe= 17190525086034000171550020000175491184232405 indAlteraToma= 1 O xml gerado segue em anexo. Aguardo ajuda pois meu cliente tem urgência. Agradeço desde já a boa vontade e atenção! Alex 31190604002794000183570010000002591000005218-cte.xml
  9. Caros colegas, tenho um cliente de MG, que gerou um Cte com tomador errado. Este ao perceber o erro, gerou uma NFe anulando o serviço e orientou ao meu cliente para gerar um CTe substituto. Como o manual do AcbrMonitor parece estar com os exemplos desatualizados e com omissão dos possiveis comandos para esse caso, pesquisamos bastante aquí no forum a forma correta de fazer isso, mas apenas achei tópicos referentes ao controle AcbrCte. Na maioria das vezes os nomes dos comandos são consistentes, e assim tentei arriscar usando os mesmos comandos usados no controle, mas seja por divergência na palavra-chave ou erro da minha parte o xml gerado não apresenta as tags de sustituição e, provavelmente por esse motivo, retorna o erro: 1824 - Element '{http://www.portalfiscal.inf.br/cte}refCte': '' is not a valid value of the atomic type '{http://www.portalfiscal.inf.br/cte}TChNFe'. a parte do txt referente à substituição eu estou fazendo da seguinte forma: [infCteSub] chCte= 31190604002794000183570010000002591000005218 [tomaICMS] refNFe= 17190525086034000171550020000175491184232405 indAlteraToma= 1 e o xml resultante está em anexo. Agradeço qualquer ajuda desde já. Alex 31190604002794000183570010000002591000005218-cte.xml
  10. Boa tarde, Estamos com travamento na visualização de várias danfes ao mesmo tempo. Até 10 registros é bem rápido, dai para frente vai ficando extremamente lento, acima de 15 fica travado. Utilizamos o código para impressão: ACBrDanfeObj.MostraStatus := False; ACBrDanfeObj.PreparedReport.PreviewOptions.Buttons := [pbPrint, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbNavigator, pbExportQuick]; // Aqui jo método PreparedReport já é lento . ACBrNFeObj.NotasFiscais.Imprimir; percebemos que a lentidão a partir da 10 NFe ocorre nesse ponto da unit ACBrNFeDANFEFRDM: Tem alguma ideia do que possa ser?
  11. Boa tarde. Estou tentando integrar um arquivo XML Ct-e com o Web Service da Porto Seguro (feito em PHP) usando RestSharp em C# e sempre retorna mensagem dizendo que não conseguiram abrir o XML ou que arquivo está vazio. Estou usando o mesmo código que o Postman usa e não dá certo, parece que o problema está na forma que envio o arquivo, pois eles retornam erro como se o tamanho do arquivo estivesse zero. Enviando pelo Postman dá certo. Queria ver se alguém já teve esse problema ao fazer a integração de arquivo XML CT-e para averbação por meio no Web Service JSON da Porto Seguro. Abaixo está exemplo de código mínimo com as minhas tentativas e retorno recebido, um arquivo XML exemplo para envio, como também o link do manual da porto seguro. Ja fiz várias tentativas de maneiras diferentes de incluir esse XML na request e sem sucesso. Espero que consigam me ajudar. Obrigado. ---------------------------------- CÓDIGO -------------------------------------- public static void testeIntegracaoRest() { var link = "https://www.averbeporto.com.br/websys/php/conn.php"; var client = new RestClient(link); var request = new RestRequest(Method.POST); var parametros = @"mod=login&comp=5&user=00234567000122&pass=0023"; request.AddHeader("cache-control", "no-cache"); request.AddHeader("content-type", "application/x-www-form-urlencoded"); request.AddParameter("application/x-www-form-urlencoded", parametros, ParameterType.RequestBody); var login = client.Execute(request); if (login.StatusCode == HttpStatusCode.OK) { // continua var cookies = login.Cookies; var restResponseCookie = new RestResponseCookie(); restResponseCookie = cookies[0]; client = new RestClient("https://www.averbeporto.com.br/websys/php/conn.php"); request = new RestRequest(Method.POST); request.AddCookie(restResponseCookie.Name, restResponseCookie.Value); request.AddHeader("content-type", "multipart/form-data;boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"); byte[] array = File.ReadAllBytes("C:\\XML0702794600019004-05-20188001.xml"); request.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"comp\"\r\n\r\n5\r\n" + "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"mod\"\r\n\r\nUpload\r\n" + "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"path\"\r\n\r\neguarda/php/\r\n" + "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; " + "filename=\"" + array + "\r\nContent-Type: " + "application/xml\r\n\r\n\r\n" + "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"dump\"\r\n\r\n1\r\n", ParameterType.RequestBody); IRestResponse response = client.Execute(request); } } ---------------------------------- RETORNO WS -------------------------------------- {"success":1,"S":{"P":0,"D":0,"R":0,"N":1},"prot":null,"error":{"msg":"Error opening XML","code":"03"},"dump":{"POST":{"comp":"5","mod":"Upload","path":"\/var\/www\/averbeporto.com.br\/web\/websys\/eguarda\/php\/","dump":"1","v":2,"ext":".php"},"COOKIE":{"portal":{"ses":"e002f119bb4d854b96ebd9c4c85b84f7"}},"FILES":{"file":{"name":"XML0702794600019004-05-20188001.xml","type":"application\/xml","tmp_name":"\/var\/www\/clients\/client0\/web124\/tmp\/phpqspsPj","error":0,"size":0}}}} ---------------------------------- LINK MANUAL -------------------------------------- https://docs.google.com/document/d/1da005UzBF1Wzm8LmiB4JJnaXaLXtFKgl6S_rErMlXF8/edit -------------------------------------------------------------------------------------------------- XML de envio exemplo.txt
  12. implantar o CTE, bom dia galera estou precisando implantar a emissãi de NFE 4.0 no meu sistema com o CTE alguem teria um conhecimento para me ajudar ou exemplo . 11973187808 meu wathz
  13. Boa Tarde, pela primeira vez meu cliente foi fazer um CT-e de Anulação esta aparecendo este erro "o ct-e de anulação para ct-e com tomador contribuinte exige evento de prestação de serviço em desacordo", preciso trocar o tomador de serviço do remetente para o destinatário; 50190410383920000190570010000000021000000025-cte.xml Sem título.bmp
  14. Boa Tarde ! Estou novamente com a mesma situação que já havia sido corrigido nesse tópico "2) Nessa linha "if (oLeitorInfZip.rExtrai(2, 'retEvento') <> '') then", TROCAR POR if (oLeitorInfZip.rExtrai(2, 'retEventoCTe') <> '') then" Observe na imagem abaixo da revisão 16818. Dessa forma, o componente não carrega as informações ACBrCTe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.RetinfEvento.chDFe; Não sei se a mesma unit é utilizada para NFe e como vem essa tag para NFe. Não tenho esse exemplo agora. Att. Leandro 3106105019020463992200010257001000017309100021702602-procEventoCTe.xml
  15. Boa Tarde a Todos, alguém poderia me ajudar?, preciso emitir uma carta de correção, alterando o tomador que é o Remetente para o Destinatário, não consigo achar o grupo que pertence, se alguém tiver algum exemplo para me disponibilizar desde já agradeço;
  16. Boa Tarde Pessoal, estou com um problema e preciso da ajuda de vcs... fiz um sistema para emissão de cte utilizando acbrCTe para geração/validação/transmissão do cte...aqui em casa funciona perfeitamente (utilizo windows 10), porem ao instalar no cliente (windowns 8.1) está dando erro de comunicação com webservice, porem o cliente ja utiliza o emissor gratuito de emissão de Cte sem problema nenhum. ja segui todos os procedimentos em relação as DLL's, e nada resolve.. ja tentei atualizar o windows, mas ficou o dia inteiro buscando por atualização e nada.. afinal o windows 8 é compativel com TLS 1.2 (sendo que ela ja utiliza o emissor gratuito) ou será algum problema relaciona a configuração do componente ou DLL's, estou quase falando pro cliente instalar windows 10 na maquina dele a propriedade do componente acbrCTe está assim : SSLCRYPTLIB : CRYWINCRYPT SSLHTTPLIB : HTTPWININET SSLLIB : LIBCUSTOM SSLXMLSIGNLIB : SXLIBXML2 Se alguem poder me ajudar eu agradeço... Att
  17. exitem essas tag no cte também ou somente no CT-OS //Impostos federais imp.infTribFed.vPIS := 0; imp.infTribFed.vCOFINS := 0; imp.infTribFed.vIR := 0; imp.infTribFed.vINSS := 5.00; imp.infTribFed.vCSLL := 0;
  18. Olá amigos, estou com problema na Manifestação de Destinatário do CTe, já desenvolvi e está em pleno funcionamento, porém meu cliente está reclamando que só mostra os conhecimentos de transporte na listagem que o sefaz nos retorna os CTes quais tem os CNPJ da empresa nas tags DESTINATÁRIO e RECEBEDOR. Meu cliente está insistindo em querer os CTes cujo CNPJ da empresa estão como REMETENTE. estou usando o seguinte método para buscar os CTes: ACBrCTe.DistribuicaoDFePorUltNSU( DM_Principal.CdsParametroSistemaPCODIGOUF.AsInteger, CNPJ, sUltimoNSU); hoje só estou recebendo os CTes quais o CNPJ que informo seja o destinatário ou recebedor, meu cliente quer receber todos CTEs quais o CNPJ dele esteja relacionado Isso é possível?
  19. Boa Tarde, Estou implementando o CT-e no sistema onde trabalho, porém estou com a seguinte mensagem de erro: 580 - Falha no Schema XML especifico para o modal. [Det: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 88; cvc-elt.1: Cannot find the declaration of element 'rodo'.] Já procurei muito a respeito, e ainda não consegui resolver. Algumas questões relevante: Estou emitindo em homologação; O Emitente já fez a solicitação de uso, para emitir o CT-e; Liguei na Receita, e me disseram que a nota não está lá, então não sabem me dizer qual seria o motivo do erro; Segue o XML: CTe_41190331232095000100570000000000031000000032.xml Realizei a validação no site do Sefaz, mas: Alguém poderia me ajudar? Agradeceria muito!! OBS.: Não estou utilizando o Projeto Acbr.
  20. Prazo para implementação das alterações para CTe/CTe-OS trazidas pela NT 2018.002 v1.01, conforme resumo a seguir: Permitir relacionar NF-e emitida por emitente pessoa física com inscrição na relação de documentos transportados; Inclusão do grupo de informações do responsável técnico pelo desenvolvimento do sistema de emissão do DF-e; Inclusão da data/hora da viagem e tipo de fretamento no CT-e OS de transporte de pessoas; Inclusão de validações para o tipo de Serviço e para preenchimento do TAF ou Registro Estadual no CT-e OS. Fonte: http://www.cte.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=6NPZPVLwFnw=
  21. Prazo para implementação das alterações para CTe/CTe-OS trazidas pela NT 2018.002 v1.001 conforme resumo a seguir: Permitir relacionar NF-e emitida por emitente pessoa física com inscrição na relação de documentos transportados; Inclusão do grupo de informações do responsável técnico pelo desenvolvimento do sistema de emissão do DF-e; Inclusão da data/hora da viagem e tipo de fretamento no CT-e OS de transporte de pessoas; Inclusão de validações para o tipo de Serviço e para preenchimento do TAF ou Registro Estadual no CT-e OS Fonte: http://www.cte.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=6NPZPVLwFnw=
  22. Caros, bom dia. Estamos implementando a emissão do CT-e Globalizado para um cliente, mas nos testes, no ambiente de homologação, estamos recebendo a mensagem "Rejeição: CFOP inválido para operação (519)". Já tentamos vários CFOPs, mas sem sucesso. Alguém já passou por esse problema e conseguiu solucionar? As outras validações do CT-e Globalizado estão todas OK.
  23. uma carga foi rejeitada 100% pelo cliente, porem a transportadora ira trazer a mercadoria de volta com outro veiculo, pode ser utilizado o mesmo cte ? Ou devemos fazer uma carta de correcao indicando a troca do veiculo ? é interestadual a entrega por favor alguem saberia me dizer, o contador esta um pouco perdido com essa situacao. obrigado
  24. until
    MANUTENÇÃO PROGRAMADA PARA 27-JAN NOS AMBIENTES DE AUTORIZAÇÃO DE DF-e DA SVRS No dia 27/janeiro/2019, das 07:00 às 09:30, será realizada uma manutenção programada em um dos sites dos sistemas de autorização de Documentos Fiscais Eletrônicos, DF-e (NF-e, NFC-e, CT-e, CTe-OS, MDF-e, BP-e), da Sefaz-Virtual do Rio Grande do Sul (SVRS). A manutenção não deverá causar indisponibilidade em nenhum dos serviços de nenhum DF-e da SVRS, pois durante a manutenção o outro site geográfico se manterá operacional e com capacidade plena de atender a toda demanda de autorização. Obs.: Lembramos que as melhores práticas recomendam que as configurações de internet (DNS, Firewall, etc.) não bloqueiem nem fidelizem a comunicação com um dos sites geográficos, permitindo utilizar qualquer um dos sites disponíveis. http://www.nfe.fazenda.gov.br/portal/principal.aspx
  25. Função para selecionar o certificado digital function SelCert: string; var Store: IStore3; CertsLista, CertsSelecionado: ICertificates2; CertDados: ICertificate; lSigner: TSigner; lSignedData: TSignedData; Cert: TCertificate; Ov: OleVariant; begin Result := ''; Store := CoStore.Create; try Store.Open(CAPICOM_CURRENT_USER_STORE, 'My', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); except On E: Exception do begin MsgErro(E.Message); Exit; end; end; try CertsLista := Store.Certificates as ICertificates2; CertsSelecionado := CertsLista.Select ('Certificado(s) Digital(is) disponível(is)', 'Selecione o Certificado Digital para uso no aplicativo', False); except On E: Exception do begin MsgErro('Operação cancelada pelo usuário!'); Exit; end; end; if not(CertsSelecionado.Count = 0) then begin CertDados := IInterface(CertsSelecionado.Item[1]) as ICertificate2; lSigner := TSigner.Create(nil); lSigner.Certificate := CertDados; lSignedData := TSignedData.Create(nil); lSignedData.Content := ' '; try lSignedData.Sign(lSigner.DefaultInterface, false, CAPICOM_ENCODE_BINARY); except On E : Exception do begin MsgErro('Erro na autenticação do Certificado Digital!'); Exit; end; end; Cert := TCertificate.Create(nil); Ov := IInterface(CertsSelecionado.Item[1]) as ICertificate2; Cert.ConnectTo(IDispatch(Ov) as ICertificate2); Result := Cert.Export(CAPICOM_ENCODE_BASE64); lSignedData.Free; lSigner.Free; end; Store.Close; end; function MontaFileAssinatura(const URI: String): String; var ArquivoXml: string; begin ArquivoXml := '<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">' + '<SignedInfo>' + '<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>' + '<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>' + '<Reference URI="#' + URI + '">'+ '<Transforms>' + '<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>' + '<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>' + '</Transforms>' + '<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>' + '<DigestValue></DigestValue>' + '</Reference>' + '</SignedInfo>' + '<SignatureValue></SignatureValue>' + '<KeyInfo>' + '<X509Data>' + '<X509Certificate></X509Certificate>'+ '</X509Data>' + '</KeyInfo>' + '</Signature>'; Result := ArquivoXml; end; Com ou sem no da assinatura não esta funcionando function MontaFileXml(const FileXml, Id: string): string; begin Result := FileXml; // Result := StringReplace(FileXml, ':CERTIFICADO', MontaFileAssinatura(Id), [rfReplaceAll]); end; Função que deveria assinar o documento xml passado como parametro function Assinar(const FileXml, Id: string; var FileOut: string): Boolean; var A: TDFeSSL; B: TDFeSSLXmlSignXmlSec; C: TDFeWinCrypt; I: Integer; fileXmlNew, s : string; F : TStringList; begin fileXmlNew := MontaFileXml(FileXml, Id); Result := False; try try A := TDFeSSL.Create; A.SSLCryptLib := cryOpenSSL; A.SSLXmlSignLib := xsXmlSec; try C:= TDFeWinCrypt.Create(A); s := SelCert; if not Empty(s) then begin try if C.CarregarCertificadoPublico(AnsiString(s))then begin B:= TDFeSSLXmlSignXmlSec.Create(A); F := TStringList.Create; with F do begin Add(fileXmlNew); s := ''; for I := 0 to Count - 1 do S := S + Trim(StringReplace(StringReplace(Pchar(Strings[I]), #13, '', [rfReplaceAll]),#10,'',[rfReplaceAll])); Text := '<?xml version="1.0" encoding="iso-8859-1"?>' + B.Assinar(S,'Signature',''); FileOut := Text; end; end else begin MsgAdverte('Certificado digital selecionado inválido'); Exit; end; except On E1 : Exception do begin MsgErro('Erro durante a seleção do certificado ->' + sLineBreak + E1.Message); Exit; end; end; end else Exit; except On E2 : Exception do begin MsgErro('Erro ao carregar biblioteca do certificado digital ->' + sLineBreak + E2.Message); Exit; end; end; except On E3 : Exception do begin MsgErro('Erro ao carregar biblioteca dinâmica wincrypt do certificado digital ->' + sLineBreak + E3.Message); Exit; end; end; finally FreeAndNil(B); FreeAndNil(C); FreeAndNil(A); end; Result := True; end; Procedimento que passa o arquivo já formatado para realização da assinatura procedure TFormImportaXMLNFe.AdvGlowButton1Click(Sender: TObject); const xml: string = '<?xml version="1.0" encoding="UTF-8"?>'+ '<enviNFe versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">' + '<idLote>71</idLote>' + '<NFe>' + '<infNFe id="NFe31120723401920000117550020000295121002311579" versao="2.00">' + '<cUF>35</cUF>' + '<cNF>518005127</cNF>' + '<natOp>Venda a vista</natOp>' + '<mod>55</mod>' + '<serie>1</serie>' + '<dEmi>2012-05-06</dEmi>' + '<tpAmb>2</tpAmb>' + '</infNFe>' + '</NFe>' + '</enviNFe>'; xml: string = '<?xml version="1.0" encoding="UTF-8"?>'+ '<enviNFe versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">' + '<idLote>71</idLote>' + '<NFe>' + '<infNFe id="NFe31120723401920000117550020000295121002311579" versao="2.00">' + '<cUF>35</cUF>' + '<cNF>518005127</cNF>' + '<natOp>Venda a vista</natOp>' + '<mod>55</mod>' + '<serie>1</serie>' + '<dEmi>2012-05-06</dEmi>' + '<tpAmb>2</tpAmb>' + '</infNFe>' + ':CERTIFICADO' + '</NFe>' + '</enviNFe>'; var xmlAssi : string; begin inherited; if Assinar(xml,'NFe31120723401920000117550020000295121002311579', xmlAssi) then begin MsgAvisa('xml assinado: ' + sLineBreak + xmlAssi); end; end; Não completa o processo e sempre gera exceção, será que os desenvolvedores do componente não poderia criar um exemplo somente de uso dos componentes em questão já com o arquivo da nfe, cte, bpe para ser assinado.
×
×
  • Create New...