Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • 1 mês depois ...
Postado

Boa Tarde Pessoal,

 

Eu testei o QRcode gerado pelo ACBr e ele retorna o seguinte erro: "O formato dos dados do QRCode é inválido";

Analisei os fontes e precisei fazer a seguinte mudança para corrigir:

 

-- ACBrSAT/ACBrSATExtratoClass.pas
[*] Ajuste no método: CalcularConteudoQRCode alterar a máscara do valor de "," para ".";
    No meu projeto o DecimalSeparator é "," portanto ao usar a função FormatFloat ele retorna o valor com a vírgula;
    function TACBrSATExtratoClass.CalcularConteudoQRCode(ID: String; dEmi_hEmi:TDateTime; Valor: Double; CNPJCPF: String;
       assinaturaQRCODE: String): String;
    var
        OldDecSep: Char;
    begin
        OldDecSep := DecimalSeparator;
        try
           DecimalSeparator := '.'; 
           Result := ID + '|' +
              FormatDateTime('yyyymmddhhmmss',dEmi_hEmi) + '|' +
              FormatFloat('0.00', Valor) + '|' +
              Trim(CNPJCPF) + '|' +
              assinaturaQRCODE;
        finally
           DecimalSeparator := OldDecSep;
        end;
    end;

Se alguém puder verificar se é isso mesmo e subir as alterações, eu não sei fazer isso.

Obrigado!

  • Fundadores
Postado

Obrigado pelo Bug Report... Estou preparando algumas alterações na ACBrUtil que devem agilizar essa transformação de valor...

 

Veja:

{-----------------------------------------------------------------------------
  Converte um Double para string, semelhante a FloatToStr(), porém
  garante que não haverá sepeador de Milhar e o Separador Decimal será igual a
  "SeparadorDecimal" ( o default é .(ponto))
 ---------------------------------------------------------------------------- }
function FloatToString(const AValue: Double; SeparadorDecimal: Char;
  AFormat: String): String;
var
  DS, TS: Char;
begin
  if EstaVazio(AFormat) then
    Result := FloatToStr(AValue)
  else
    Result := FormatFloat(AFormat, AValue);

  DS := {$IFDEF DELPHI15_UP}FormatSettings.{$ENDIF}DecimalSeparator;
  TS := {$IFDEF DELPHI15_UP}FormatSettings.{$ENDIF}ThousandSeparator;

  // Removendo Separador de milhar //
  Result := StringReplace(Result, TS, '', [rfReplaceAll]);

  // Verificando se precisa mudar Separador decimal //
  if DS <> SeparadorDecimal then
    Result := StringReplace(Result, DS, SeparadorDecimal, [rfReplaceAll]);
end;

Com ela, poderíamos chamar: FloatToString( Valor, '.', '0.00')

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.

  • Membros Pro
Postado

Alguém teve sucesso na consulta do QRCode, eu não estou conseguindo validar nem o QRCode gerado pelo próprio aplicativo de teste da receita (v2.2.5) que instala junto com o emulador.

Analisando o manual novamente ER 2.12.17 pagina 102, verifiquei que também será necessário tirar o pipe quando não for identificado o cpf ou cnpj do consumidor, então fiz a alteração colocando um Ifthen:

 DecimalSeparator := '.';
       Result :=  ID + '|' +
          FormatDateTime('yyyymmddhhmmss',dEmi_hEmi) + '|' +
          FormatFloat('0.00', Valor) + '|' +
           Trim(CNPJCPF) + IfThen(Trim(CNPJCPF)<>'', '|','') +
          assinaturaQRCODE;
Mesmo assim não consegui validar no aplicativo disponibilizado pelo fisco.
Lendo mais uma vez esse trecho do manual fiquei na duvida se não temos que codificar a concatenação do da string antes de juntar com a assinatura do SAT, que também fiz teste e não deu certo.
Ai me levou a mais uma duvida na interpretação, quando fala que deve codificar o concatenação em base 64 e depois assinar usando o certificado do SAT, no caso no código estamos apenas pegando a assinatura e vinculando junto e não assinando a string, fiquei na duvida.
 
Após gerar a string de dados, deve-se assiná-la utilizando o Certificado Digital do SAT-CF-e de forma que o resultado da operação seja uma string de dados codificada em base64 seguindo o padrão PKCS #1 versão 1.5.

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

  • 3 semanas depois ...
Postado

Estou usando o SAT Sweda SS-1000 para testes e pelo aplicativo acusa qrcode inválido...

 

Por estar em modo de homologação o qrcode é invalido?

 

Por ser um SAT de testes a assinatura da combinação de CNPJs é "SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT" e não tem nada haver com uma assinatura gerada pela combinação de CNPJs, seria por isso?

 

Além dos parametros de configuração normais do ACBrSat e assinatura de 344 caracteres o que devo fazer para garantir que o qrcode em produção será gerado corretamente?

 

Obrigado

Postado

Sim Daniel...

 

E para garantir, fiz o apagarAcbr.bat e reinstalei tudo com o ACBrInstall.exe (Delphi 7)

 

Mesmo assim acusa qrcode inválido para qualquer cf-e que emito, lembrando que estou usando o SAT da SWEDA de testes, como descrevi no post anterior...

Postado (editado)

Pessoal,

 

Esse leitor de QRCode só funciona com os equipamentos em produção.  Uma parte das validações que são feitas, no entanto, servem para verificar se a construção do QRCode está correta, mesmo se o equipamento é do ambiente de testes.  

 

Não sei se vocês viram o guia que a SEFAZ disponibilizou, mas acho que pode ajudar.

 

Lembrei também que eles tinham disponibilizado um guia para montar QRCode . 

 

Espero que as informações ajudem

Editado por kidrahs
  • 2 semanas depois ...
  • 4 semanas depois ...
Postado

Ainda estou com o problema do QR code inválido...

 

Ao ler um qrcode de um cupom em produção me retorna a segunte string:

35150501058055000204590000026580000363333153|20150509083058|1.00||Fz+jtH9ZQH7ka0DqaDMVC0oPS9lwHW2xVpBCsCgVnj/bS33KRnvqAtdRk4pc20y6UU8iBHvhoN0XKNujSPCq+EgvRwHgBFrvLce0B3a60aO6C04hl21b5e/tNkNvlIHuQnI0RfnEMnbYQcn4EwuFvtAOi6ulA63bVoXnesEwozg3kGVTGnQ75N4qkSTwtH0TS6RDTC1B9R1jzhwFIZI4DBSfsIzJczpZBk0SEoJYVCmES3DDTs2+Cu1X9bor89waxoWJKA5bGXfoZUqFX+S/mjPH/Qv+b4Wg+Psuy3Qt6sGN85PWM/PeddjGFIppI1dUYD+DhVzC2AXbhMS8wpLAfQ==

 

Consultando o cupom pela chave no site mostra normal, mas pelo qrcode nao vai pelo aplicativo no android só acusa qrcode inválido

Postado

Desculpa pessoal...

 

Após dezenas de tentativas com o app do sefaz, ele leu corretamente o codigo e mostrou o cupom...

 

Percebi que ele é muito sensível, tem que mirar bem antes de clicar para ler senão ele acusa codigo inválido

  • 2 semanas depois ...
  • 3 semanas depois ...
Postado

Pessoal, estou, como brasileiro que sou,rsrsr, estou iniciando a mudança do meu programa para atender ao SAT@CFE, pois pensei que teria uma nova prorrogação.
Estou vendo o Pessoal falar de emulador. Fiz algumas pesquisas e fui informado que tenho que adquirir um dispositivo para desenvolvimento, a Tanca e a Bematech vendem a preço subsidiado para desenvolvedor.
Eu utilizo VB6 e estou ainda convertendo alguns desses programa para VB.NET, preciso gerar o danfe do CFE tanto em V6 como em VB,NET, alguem tem um exemplo ou sabe onde eu consigo. Terei mesmo que reescrever toda a minha rotina que enviava ao ECF? Eu li aquele manual do Sefaz, mas ele tem tanta informação que acvaba gerando mais duvidas na nossa cabeça.rs. Se vocês que estão mais adiantados puderem me orientar no caminho a seguir para desenrolar esse embaraço.  Agradeço qualquer ajuda e peço desculpas por solicitar ajuda de última hora. 

  • 3 semanas depois ...
Postado

Ola Daniel bom dia, estou tendo problemas para ler o QRCode impresso na Impressora Bematech MP-2500TH, estou com duas impressoras aqui, uma Daruma DR700 e essa Bematech, o mesmo CFe impresso nas duas impressoras, a que é impresso na Daruma, o aplicativo da Sefaz le normal, ja na Bematech me da a mensagem Erro: Assinatura do QRCode não é valida. Você poderia me dar uma luz, o que poderia ser. 

O QRCode que é impresso na Bematech é um pouco menor, não sei se isso afeta alguma coisa.

Desde ja agradeço a atenção.

Luciano

  • Este tópico foi criado há 2996 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.