Ir para conteúdo
  • Cadastre-se

dev botao

ACBrReinf - Fontes


Ver Solução Respondido por Renato Rubinho,
  • Este tópico foi criado há 2500 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Consultores
Postado

@fidel,

Esse é exatamente o problema que foi corrigido. O xmlParseDoc retorna em branco, porque o xml está inválido. Veja o xml contido em ConteudoXML. Irá existir um texto "id" perdido dentro de Sgnature, conforme abaixo:

<Signature xmlns="1234567890"id>

Você disse que atualizou o Reinf e recompilou o ACBr_DFeComum. Veja que são dois fontes separados. Se você não atualizou o ACBrDFe.rar, não vai adiantar recompilar.

1. Primeiro atualize o fonte ACBrDFe.rar e recompile o ACBr_DFeComum

2. Atualize o ACBrReinf.rar

E, por fim, confirme realmente se está com o fonte correto, pois foi dito anteriormente que tiraram um dos parâmetros vazios na chamada abaixo. Essa chamada recebe agora 7 parâmetros. Se você passar o "id" no sexto parâmetro, acontecerá o problema que mencionou. Se passar no sétimo, funcionará:

4. A linha correta de ACBrReinfEventosBase->TEventoReinf.Assinar( é

   XMLAss := SSL.Assinar(ArqXML, 'Reinf', String(ANomeEvento), '', '', '', 'id');

 

  • Fundadores
Postado

@Renato Rubinho, analisei as suas sugestões para o DFe, e realmente elas parecem corretas.. devo subir no SVN em alguns instantes...

Uma confusão essa questão de id para assinatura e do atributo... realmente se faz necessário 2 parâmetros...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Consultores
Postado
Agora, Daniel Simoes disse:

@Renato Rubinho, analisei as suas sugestões para o DFe, e realmente elas parecem corretas.. devo subir no SVN em alguns instantes...

Uma confusão essa questão de id para assinatura e do atributo... realmente se faz necessário 2 parâmetros...

Legal @Daniel Simoes

Imagina eu tentando explicar isso por escrito para conseguir passar a informação ?... rsrs

Obrigado pelo retorno

 

 

 

Postado
Em 10/27/2017 at 14:52, Renato Rubinho disse:

@fidel,

Esse é exatamente o problema que foi corrigido. O xmlParseDoc retorna em branco, porque o xml está inválido. Veja o xml contido em ConteudoXML. Irá existir um texto "id" perdido dentro de Sgnature, conforme abaixo:

<Signature xmlns="1234567890"id>

Você disse que atualizou o Reinf e recompilou o ACBr_DFeComum. Veja que são dois fontes separados. Se você não atualizou o ACBrDFe.rar, não vai adiantar recompilar.

1. Primeiro atualize o fonte ACBrDFe.rar e recompile o ACBr_DFeComum

2. Atualize o ACBrReinf.rar

E, por fim, confirme realmente se está com o fonte correto, pois foi dito anteriormente que tiraram um dos parâmetros vazios na chamada abaixo. Essa chamada recebe agora 7 parâmetros. Se você passar o "id" no sexto parâmetro, acontecerá o problema que mencionou. Se passar no sétimo, funcionará:

4. A linha correta de ACBrReinfEventosBase->TEventoReinf.Assinar( é

   XMLAss := SSL.Assinar(ArqXML, 'Reinf', String(ANomeEvento), '', '', '', 'id');

 

Bom dia. Renato

Agora esta dando este erro: no programa ACBrDFeXsXmlSec

 

nesta linha:

   { sign the template }
    SignResult := xmlSecDSigCtxSign(FdsigCtx, SignNode);

image.png.8eb9748b590f82bed254ec40ceec401c.pngimage.png.b2ee9ca0f63d21143a57c05ee92c0b2a.png

 

Postado
Em 10/27/2017 at 14:51, Sandro Felipe Adad disse:

Voce sobrescreveu o ACBrDFeXsXmlSec do Renato no seu ..\ACBR\trunk2\Fontes\ACBrDFe antes de recompilar/reinstalar o ACBR?

Bom dia, Sandro

SIM.

Agora esta dando este erro: no programa ACBrDFeXsXmlSec

 

nesta linha:

   { sign the template }
    SignResult := xmlSecDSigCtxSign(FdsigCtx, SignNode);

image.png.8eb9748b590f82bed254ec40ceec401c.png

  • Fundadores
Postado

@fidel,

Compreenda que o componente que você está tentando usar, está em construção... Ou seja, NÃO ESTÁ PRONTO...

Então, se você não tem conhecimento técnico para analisar os fontes e compreender as rotinas... Não tente usar...

  • Curtir 2
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado (editado)

Boa noite senhores ....
estou tentando enviar um evento utilizando a versão 1_02_00  dos schemas, alterei a "REINF_VERSAO"   porém tenho sempre como resposta  a msg : "Versão do Lote inválida. Deve ser utilizada a versão 1.01.01".

Alguém já passou por isso e poderia me dar um auxílio ?
Grato , 
Fábio Amaral.

image.png.f6d6490aa94e3ab95469ec75e9fccab4.png

image.png.93ac8158fa5380873cb7d8de76020579.png

Editado por Siagri Sistemas
  • Moderadores
Postado
9 minutos atrás, Siagri Sistemas disse:

Boa noite senhores ....
estou tentando enviar um evento utilizando a versão 1_02_00  dos schemas, alterei a "REINF_VERSAO"   porém tenho sempre como resposta  a msg : "Versão do Lote inválida. Deve ser utilizada a versão 1.01.01".

Alguém já passou por isso e poderia me dar um auxílio ?
Grato , 
Fábio Amaral.

image.png.f6d6490aa94e3ab95469ec75e9fccab4.png

image.png.93ac8158fa5380873cb7d8de76020579.png

Boa tarde

o componente ainda não está funcional! então se estiver usando ele está com bugs e problemas.

se possível favor aguardar.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado (editado)
Em 25/08/2017 at 10:13, Leivio Fontenele disse:
16 horas atrás, Siagri Sistemas disse:

Boa noite senhores ....
estou tentando enviar um evento utilizando a versão 1_02_00  dos schemas, alterei a "REINF_VERSAO"   porém tenho sempre como resposta  a msg : "Versão do Lote inválida. Deve ser utilizada a versão 1.01.01".

Alguém já passou por isso e poderia me dar um auxílio ?
Grato , 
Fábio Amaral.

 

 

O ambiente de testes está preparado apenas para a versão v1.01.01. foi disponibilizado quando a v1.01.02 ainda não estava disponível, veja:
http://sped.rfb.gov.br/pagina/show/2247
O layout da v1.01.02 foi disponibilizado em 12/09. Ainda não é a versão final. A RFB havia prometido divulgar o novo layout ainda em outubro (que não aconteceu), e um novo esquema/layout para o evento R-2070 que foi postergado ainda sem data prevista, conforme
http://sped.rfb.gov.br/pagina/show/2331
As informações que obtive, são extra-oficiais, até porque os funcionários da SRF são completamente despreparados para responder e os integrantes do comitê do e-social  estão se distanciando do Reinf, e não largam mais notas sobre o Reinf.
Sabe-se apenas que o Reinf e o E-Social precisam entrar em funcionamento ao mesmo tempo por causa da forma como serão geradas as guias de recolhimento.

Editado por bylaardt
Postado
6 horas atrás, bylaardt disse:

O ambiente de testes está preparado apenas para a versão v1.01.01. foi disponibilizado quando a v1.01.02 ainda não estava disponível, veja:
http://sped.rfb.gov.br/pagina/show/2247
O layout da v1.01.02 foi disponibilizado em 12/09. Ainda não é a versão final. A RFB havia prometido divulgar o novo layout ainda em outubro (que não aconteceu), e um novo esquema/layout para o evento R-2070 que foi postergado ainda sem data prevista, conforme
http://sped.rfb.gov.br/pagina/show/2331
As informações que obtive, são extra-oficiais, até porque os funcionários da SRF são completamente despreparados para responder e os integrantes do comitê do e-social  estão se distanciando do Reinf, e não largam mais notas sobre o Reinf.
Sabe-se apenas que o Reinf e o E-Social precisam entrar em funcionamento ao mesmo tempo por causa da forma como serão geradas as guias de recolhimento.

Obrigado pelo esclarecimento.
 

  • Consultores
Postado

Boa tarde,

 @Daniel Simoes @Juliomar Marchetti

Preciso disponibilizar para os meus clientes o Reinf com a assinatura utilizando o A3.
Procurei / testei alternativas de bibliotecas e componentes, mas não encontrei nada (open) que eu conseguisse fazer funcionar no Delphi para poder incorporar no ACBr.
Desenvolvi uma biblioteca em C# e gostaria de saber se podemos incorporá-la no ACBr (com os fontes) como alternativa para a assinatura.
Segue minha sugestão com os respectivos fontes:

Fontes separados:
ACBrDFe.rar ...: Fontes da implementação da nova biblioteca no ACBr

ACBrReinf.rar .: Fontes "Beta" do Reinf assinando com a nova biblioteca + Certificado A3

_TELAS.pdf  ....: Detalhes da implementação

 

  • Curtir 1
  • Moderadores
Postado
2 horas atrás, Renato Rubinho disse:

Boa tarde,

 @Daniel Simoes @Juliomar Marchetti

Preciso disponibilizar para os meus clientes o Reinf com a assinatura utilizando o A3.
Procurei / testei alternativas de bibliotecas e componentes, mas não encontrei nada (open) que eu conseguisse fazer funcionar no Delphi para poder incorporar no ACBr.
Desenvolvi uma biblioteca em C# e gostaria de saber se podemos incorporá-la no ACBr (com os fontes) como alternativa para a assinatura.
Segue minha sugestão com os respectivos fontes:

Fontes separados:
ACBrDFe.rar ...: Fontes da implementação da nova biblioteca no ACBr

ACBrReinf.rar .: Fontes "Beta" do Reinf assinando com a nova biblioteca + Certificado A3

_TELAS.pdf  ....: Detalhes da implementação

 

Sinceramente de minha parte não concordo em depende de outra linguagem no delphi ou lazarus deve atender.

  • Triste 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Consultores
Postado
12 horas atrás, Juliomar Marchetti disse:

Sinceramente de minha parte não concordo em depende de outra linguagem no delphi ou lazarus deve atender.

Ok.

Concordo.

Fiz testes com Capicom, Indy, DCPCRYPT e LockBox, mas não consegui assinar.

Enquanto não houver alternativa, utilizo como método paliativo em fontes paralelos.

Obrigado

  • Curtir 1
  • Fundadores
Postado

A ideia é interessante... e pode ser uma boa alternativa, para quem não se incomoda com o "peso" do .NET e suas infinitas atualizações...

Mas a classe deveria complementar todos os métodos necessários para a manipulação de XML, como: Assinar (ok), Validar Assinatura, Validar Schema

Já solicitei a ajuda do @Rafael Dias, que é nosso expert em C#, para ver se conseguimos completar....

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Consultores
Postado
Em 08/11/2017 at 12:11, Daniel Simoes disse:

A ideia é interessante... e pode ser uma boa alternativa, para quem não se incomoda com o "peso" do .NET e suas infinitas atualizações...

Mas a classe deveria complementar todos os métodos necessários para a manipulação de XML, como: Assinar (ok), Validar Assinatura, Validar Schema

Já solicitei a ajuda do @Rafael Dias, que é nosso expert em C#, para ver se conseguimos completar....

Boa tarde,

 @Daniel Simoes  @Rafael Dias

A validação da assinatura eu já havia feito alguns testes, mas não estava finalizada.

Segue o fonte atualizado com:

1. Validação da assinatura

        string VerificarAssinatura(int GeraLog, string ConteudoXML, string SignatureNode, string CertSerialNumber,
            string CertArquivoPfx, string CertPassword);
2. Ajuste para assinar com certificado A1 instalado na máquina

3. Implementação da opção de assinar com arquivo .pfx. Publicada nova função aceitando mais um parâmetro para passar o arquivo pfx

        string AssinarXml(int GeraLog, string ConteudoXML, string ElementID, string CertSerialNumber, 
            string CertArquivoPfx, string CertPassword);
 

*** Pendente (esse não tenho idéia, pois não mexi em nada a respeito ainda em C#)

4. Validar Schema

        // IMPLEMENTAR
        // VALIDAR SCHEMA
        // Retorna "OK" se OK, retorna o erro se False
        string ValidarSchema(string ConteudoXML, string ArqSchema);
 

ACBrDFe.rar ...: Fontes da implementação da nova biblioteca no ACBr

ACBrReinf.rar .: Fontes "Beta" do Reinf assinando com a nova biblioteca + Certificado A1, A3 e .pfx

 

Postado
Em 10/11/2017 at 16:14, Renato Rubinho disse:

Boa tarde,

Segue a classe com funções Assinar, Validar Assinatura, Validar Schema

 ACBrDFe.rar...: Fontes da implementação da nova biblioteca no ACBr

ACBrReinf.rar .: Fontes "Beta" do Reinf assinando com a nova biblioteca + Certificado A1, A3 e .pfx, verificando assinatura e validando schema

Renato, bom dia!

Estou testando a sua biblioteca no e-social, aparentemente está assinando corretamente, porém na hora de validar o xml está dando a seguinte mensagem: "Falha na validação dos dados do evento: evtInfoEmpregador. Caracteres inválidos no caminho"

Estou utilizando dessa forma:

AACBreSocial.Configuracoes.Geral.SSLLib := libCustom;
AACBreSocial.Configuracoes.Geral.SSLCryptLib := cryCapicom;
AACBreSocial.Configuracoes.Geral.SSLHttpLib := httpWinINet;
AACBreSocial.Configuracoes.Geral.SSLXmlSignLib := xsPoliCryp;

 

Imagino que seja algum problema na biblioteca, pois eu estava assinando diretamente com o .PFX e estava conseguindo enviar os eventos...

 

Obrigado

  • Consultores
Postado
43 minutos atrás, juuninho disse:

Renato, bom dia!

Estou testando a sua biblioteca no e-social, aparentemente está assinando corretamente, porém na hora de validar o xml está dando a seguinte mensagem: "Falha na validação dos dados do evento: evtInfoEmpregador. Caracteres inválidos no caminho"

Estou utilizando dessa forma:

AACBreSocial.Configuracoes.Geral.SSLLib := libCustom;
AACBreSocial.Configuracoes.Geral.SSLCryptLib := cryCapicom;
AACBreSocial.Configuracoes.Geral.SSLHttpLib := httpWinINet;
AACBreSocial.Configuracoes.Geral.SSLXmlSignLib := xsPoliCryp;

 

Imagino que seja algum problema na biblioteca, pois eu estava assinando diretamente com o .PFX e estava conseguindo enviar os eventos...

 

Obrigado

Bom dia @juuninho,

Você deve estar mandando o conteúdo do Xml ao invés do caminho do arquivo.

O método ValidarSchema() deve receber o caminho do arquivo XML ( Ex: C:\CAMINHO\TESTE.XML) e não o conteúdo do XML.

Veja o exemplo que coloquei no Demo.

image.thumb.png.3aa528dba7f9bbf5681ac08917be35b7.png

 

Postado
9 minutos atrás, Renato Rubinho disse:

Bom dia @juuninho,

Você deve estar mandando o conteúdo do Xml ao invés do caminho do arquivo.

O método ValidarSchema() deve receber o caminho do arquivo XML ( Ex: C:\CAMINHO\TESTE.XML) e não o conteúdo do XML.

Veja o exemplo que coloquei no Demo.

image.thumb.png.3aa528dba7f9bbf5681ac08917be35b7.png

 

@Renato Rubinho

Deve ser isso mesmo...

A unit ACBreSocialGerador chama a função dessa forma:

EhValido := SSL.Validar(AXML, Configuracoes.Arquivos.PathSchemas+Evento+'.xsd', Erro);

Onde o AXML é o conteúdo do XML...

Valeu Renato, vou adaptar para realizar uns testes aqui!

Obrigado

  • Curtir 1
Postado
1 hora atrás, juuninho disse:

@Renato Rubinho

Deve ser isso mesmo...

A unit ACBreSocialGerador chama a função dessa forma:

EhValido := SSL.Validar(AXML, Configuracoes.Arquivos.PathSchemas+Evento+'.xsd', Erro);

Onde o AXML é o conteúdo do XML...

Valeu Renato, vou adaptar para realizar uns testes aqui!

Obrigado

@Renato Rubinho

Deu certo o problema anterior, agora me deparei com outro...que ocorrerá especialmente no e-social.

A função da biblioteca deve estar preenchendo sempre o atributo URI da tag Reference na hora de assinar...

Estou conseguindo enviar, porém quando consulto pelo Nº de Protocolo, o webservice me retorna o seguinte:

- Assinatura do evento inválida. A assinatura do evento deverá ser realizada sobre todo documento Xml (Atributo 'URI' dever ser vazio).

- Localização:/eSocial/Signature/SignedInfo/Reference/@URI

Postado

Bom dia, estou testando também seu componente, porém me da a mensagem em anexo, a configuração deixei igual ao colega Juuninho

(AACBreSocial.Configuracoes.Geral.SSLLib := libCustom;
AACBreSocial.Configuracoes.Geral.SSLCryptLib := cryCapicom;
AACBreSocial.Configuracoes.Geral.SSLHttpLib := httpWinINet;
AACBreSocial.Configuracoes.Geral.SSLXmlSignLib := xsPoliCryp;)

 

poderia me ajudar?

uExemploReinf.png

Se quiser ir rápido, vá sozinho.
Se quiser ir longe, vá em grupo.
Provérbio Africano.

2024 ano XXVII

Postado

bom dia a ta todos, eu utilizei também esta configuração não deu certo

(AACBreSocial.Configuracoes.Geral.SSLLib := libCustom;
AACBreSocial.Configuracoes.Geral.SSLCryptLib := cryCapicom;
AACBreSocial.Configuracoes.Geral.SSLHttpLib := httpWinINet;
AACBreSocial.Configuracoes.Geral.SSLXmlSignLib := xsPoliCryp;)

 

erro.PNG

Agora meu passou usando 
(AACBreSocial.Configuracoes.Geral.SSLLib := libCustom;
AACBreSocial.Configuracoes.Geral.SSLCryptLib := cryCapicom;
AACBreSocial.Configuracoes.Geral.SSLHttpLib := httpWinINet;
AACBreSocial.Configuracoes.Geral.SSLXmlSignLib := xsPoliCryp;)

 

porem deu outro erro. alguém sabe o que pode ser?

 

 

erro.PNG

Att,

Renato

 

http://www.edsonbill.com

  • Fundadores
Postado
Em 10/11/2017 at 16:14, Renato Rubinho disse:

Segue a classe com funções Assinar, Validar Assinatura, Validar Schema

Solicitei ajuda do @Rafael Dias, na analise da biblioteca...

Atualmente eu ele estamos trabalhando em uma implementação que dependerá apenas da libXML2, baseada nas informações desse post:

Segundo o Rafael, sua biblioteca em C# tem alguns problemas como: Depende desnecessariamente de C# 4.6.1 (não rodará em XP); Somente assina em SHA256...

Devemos criar uma nova classe, para carga de DLLs de terceiros, baseada nas suas sugestões, mas por enquanto estamos trabalhando na implementação com o libXML2

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Este tópico foi criado há 2500 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.