Ir para conteúdo
  • Cadastre-se

  • Este tópico foi criado há 273 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá prezados colegas,

 

Estou implementando o QR Code 3.0 da NFCE aqui no meu Sistema e estou com dificuldade em construir o XML que contém a string de dados concatenados da URL do QRCODE para ser assinada.

Alguém sabe como é a configuração do XML para assinar essa string?

Abaixo é o modelo que estou usando mas não está dando certo a assinatura.

cXML:=STRTRAN(cXML,'<Signature></Signature>','<?xml version="1.0" encoding="UTF-8"?>' +;
                                             '<documento>' +;
                                             '<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">'+;
                                             '<ds:SignedInfo>'+;
                                                '<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />'+;
                                                '<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />'+;
                                                '<ds:Reference URI="#obj" Type="http://www.w3.org/2000/09/xmldsig#;Object">'+;
                                                 '<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>'+;
                                                   '<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />'+;
                                                   '<ds:DigestValue>'+;
                                                  '</ds:DigestValue>'+;
                                                '</ds:Reference>'+;
                                             '</ds:SignedInfo>'+;
                                             '<ds:SignatureValue>'+;
                                             '</ds:SignatureValue>'+;
                                                   '<ds:KeyInfo>'+;
                                                '<ds:X509Data>'+;
                                                   '<ds:X509Certificate>'+;
                                                   '</ds:X509Certificate>'+;
                                                '</ds:X509Data>'+;
                                             '</ds:KeyInfo>'+;
                                             '<ds:Object id="obj" MimeType="text/plain">' + cStr_2_assinar + '</ds:Object>' +;
                                          '</ds:Signature></documento>')

 

Alguém sabe qual é o modelo correto de XML?

Obrigado,

Jair Pereira


 

 

 

 

  • Consultores
Postado

mas não precisa o componente já faz isso. tu alimenta ele e ele vai fazer a geração

falamos do ACBrNFe aqui nesse sbuforum

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado
2 horas atrás, Juliomar Marchetti disse:

mas não precisa o componente já faz isso. tu alimenta ele e ele vai fazer a geração

falamos do ACBrNFe aqui nesse sbuforum

 

Eu não uso os componentes da ACBR. Desenvolvo tudo na linguagem harbour.

 

Eu precisava achar qual é  a receita de XML utilizada para assinar uma string para produzir o QRCode 3.0.

 

Seria bom se pudesse achar isso no código fonte dos componentes do ACBR... mas eu não sei mais o caminho do código fonte dos componentes da ACBR lib na internet.

 

Valeu, se tiver mais alguma sugestão eu agradeço.

 

Jair

 

 

Postado
3 horas atrás, Juliomar Marchetti disse:

mas não precisa o componente já faz isso. tu alimenta ele e ele vai fazer a geração

falamos do ACBrNFe aqui nesse sbuforum

Eu baixei o código fonte dos componentes do ACBR mas não achei nada sobre QRCode 3.0 nem assinatura de string.... tu sabes onde estão esses pontos no código fonte?

Será que eu baixei código fonte desatualizado?

Consegue dar uma luz nesses pontos?

Obrigado,

Jair Pereira

  • Consultores
Postado
2 horas atrás, jairxpereira disse:

Eu não uso os componentes da ACBR. Desenvolvo tudo na linguagem harbour.

Neste caso usa o monitor ou lib . tu gera o ini e ele faz o xml e transmite pra ti

1 hora atrás, jairxpereira disse:

Será que eu baixei código fonte desatualizado?

eu creio que não pois é no svn.

mas tu programa em delphi ou lazarus?

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Moderadores
Postado
5 horas atrás, jairxpereira disse:

Eu baixei o código fonte dos componentes do ACBR mas não achei nada sobre QRCode 3.0 nem assinatura de string.... tu sabes onde estão esses pontos no código fonte?

image.png

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Moderadores
Postado
55 minutos atrás, jairxpereira disse:

No código fonte da ACBR lib tem o código fonte dessa função SSL.CalcHash() ou ela está contida numa DLL?

Esse fonte é do core do ACBr não vai estar na ACBrLib.

E ela chama funções da OpenSSL ou WinCrypt conforme a configuração.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Beleza. Valeu pela informação.

 

Consegui fazer a assinatura de uma string com certificado a1. Só que agora estou na dúvida qual é a tag do resultado assinado <ds:DigestValue> ou será <ds:SignatureValue>???

 

Sei que um deles vai no QRCode 3.0, mas qual?

Postado
Em 12/08/2025 at 12:22, jairxpereira disse:

Beleza. Valeu pela informação.

 

Consegui fazer a assinatura de uma string com certificado a1. Só que agora estou na dúvida qual é a tag do resultado assinado <ds:DigestValue> ou será <ds:SignatureValue>???

 

Sei que um deles vai no QRCode 3.0, mas qual?

É <ds:DigestValue>.

Postado

Oi Pessoal,

Eu testei o QRCode 3.0 off-line em homologação na SEFAZ SP e achei uns problemas no meu teste.

1) No processo de validação do QRCode 3.0 off-line está exigindo CPF ou CNPJ enquanto que no manual da especificação do QRCode diz que essas informações não são obrigatórias, que elas podem ir vazias.  Como é que eu trato esse dilema?

2) A assinatura exigida pela SEFAZ SP em homologação não ficou conforme nota técnica 2025.001, eu usei apenas SHA-1 sem usar certificado, sem usar encode em BASE64 e passou. Será que o ambiente de homologação de São Paulo está com problema? A assinatura conforme especificação do manual do QRCode 3.0 não passou.

3) A parte inicial da URL é diferente para QRCODE 2.0 e QRCODE 3.0 ???

É isso?

QR Code 2.0 ??? ==> https://www.homologacao.nfce.fazenda.sp.gov.br/NFCeConsultaPublica/Paginas/ConsultaQRCode.aspx
QR Code 3.0 ??? ==> https://www.homologacao.nfce.fazenda.sp.gov.br/qrcode

 

Obrigado, pessoal

Jair Pereira

 

 

  • 3 semanas depois ...
Postado
Em 12/08/2025 at 12:22, jairxpereira disse:

Beleza. Valeu pela informação.

 

Consegui fazer a assinatura de uma string com certificado a1. Só que agora estou na dúvida qual é a tag do resultado assinado <ds:DigestValue> ou será <ds:SignatureValue>???

 

Sei que um deles vai no QRCode 3.0, mas qual?

Boa tarde, jair. Tambem to nessa mudanca do qrcode 3.0, e uso uma solucao propria. Voce poderia por um exemplo de como vc assinou? Pq olhando o fonte do acbr ele nao assina, ele apenas cria um hash. É engracado que ta passando isso, pois a assinatura tem que usar o certificado, e esse calchash do acbr nao usa, salvo engano.

  • Consultores
Postado
25 minutos atrás, korg1000 disse:

Boa tarde, jair. Tambem to nessa mudanca do qrcode 3.0, e uso uma solucao propria. Voce poderia por um exemplo de como vc assinou? Pq olhando o fonte do acbr ele nao assina, ele apenas cria um hash. É engracado que ta passando isso, pois a assinatura tem que usar o certificado, e esse calchash do acbr nao usa, salvo engano.

Usa o ACBr. já está pronto nele. e tu trabalha só na espertise de sua empresa.

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Moderadores
Postado
1 hora atrás, korg1000 disse:

Pq olhando o fonte do acbr ele nao assina, ele apenas cria um hash. É engracado que ta passando isso, pois a assinatura tem que usar o certificado, e esse calchash do acbr nao usa, salvo engano.

O CalcHash tem um parâmetro "Assina" que ser for true vai usar o certificado, gerando assim o hash assinado.

Não tenho certeza de como o autor do tópico está fazendo na aplicação dele...

Com o ACBr já está funcionando em produção o QrCode 3, a propósito.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Este tópico foi criado há 273 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.