Ir para conteúdo
  • Cadastre-se

Raphaelblc

Membros
  • Total de ítens

    30
  • Registro em

  • Última visita

Tudo que Raphaelblc postou

  1. Olha, já tinha visto esse tópico neste forum, mas não ajudou a resolver....
  2. Italo, eu conheço pouco de php também, mas o que eu sei é que a função preg_replace() permite substituir sequências baseadas em expressões regulares. $tag.$token isso é concatenação. hash('sha512',$tag.$token) vai usar um hash em SHA512 nas 2 variáveis concatenadas. '/[^\x20-\x7E]+/' é uma expressão regular que significa "qualquer coisa que não seja um código de caractere no intervalo hexadecimal 0x20 a 0x7E, ou seja, 32 a 126 em ascii(https://www.ime.usp.br/~pf/algoritmos/apend/ascii.html) " ^ not \x20 hex código para o caracter de espaço - to \x7e hex código para o caracter ~ Então, qualquer coisa que não esteja neste intervalo será substituído por ''(vazio). Lembrando que esse replace só acontece para o conteúdo das tags, todas as tags são removidas. Você pode fazer um teste colocando o código disponibilizado no site da prefeitura, neste link(http://phptester.net/) para testar o funcionamento do código. Substituindo as variáveis($tag e $token) pelo conteudo informado para se chegar ao valor da tag de integridade como mostra a imagem. A tag de integridade foi gerada exatamente igual ao exemplo da prefeitura de Limeira. Pode-se testar os valores de cada variavel em cada momento do processamento colocando o echo depois de cada código, como na imagem abaixo. Eu estou perto de conseguir implementar, se conseguir, envio o código para vocês. Meu problema está no hash que não ta batendo, estou usando a DLL WinCrypt mas não ta batendo SSL.SSLCryptLib := cryWinCrypt; SSL.SSLHttpLib := httpWinHttp; SSL.SSLXmlSignLib := xsLibXml2; Memo2.Text := lowerCase(SSL.CalcHash(XML + WSChaveAcesso, dgstSHA512, outHexa, False));
  3. italo, Tenho sim, a informação de fornecida no site da própria prefeitura de Limeira. Essa imagem foi retirada da área do desenvolvedor para NFSe. Se quiser acessar o site diretamente para verificar : https://limeira.iibr.com.br/login.php ou ir diretamente em : https://limeira.iibr.com.br/dev/dev_dashboard.php#dev_ws_notafiscal$$ZWEyNWMwYWE3N2U2NDhlYWJmODA0Y2YzMDhmMDIzMzZaV0V5TldNd1lXRTNOMlUyTkRobFlXSm1PREEwWTJZek1EaG1NREl6TXpZek5qRT0=$$li_361_3$$3
  4. Boa tarde Italo, estou com todos os fontes atualizados. Tanto que apaguei a pasta ACBR e baixei tudo novamente e reinstalei O erro que acontece é na tag de integridade - Integridade Inválida Segundo o pessoal da prefeitura a única coisa errada é a tag de integridade conforme o E-mail que recebi O token está correto, só o conteúdo da tag que ta errado. E estou com esse problema desde a semana passada. Desde já grato pela ajuda...
  5. Pessoal, boa tarde... Estou com uma enorme dificuldade de gerar a tag de integridade para o xml da prefeitura de Limeira/SP Utilizando o código php demostrado no área do desenvolver da prefeitura de Limeira eu consigo chegar na tag de integridade correta, mas ao gerar pelo componente ACBR, não está gerando igual. <?php $token = 'd0pQZDIwMExaaWhNSGF6YVE5WDErMDYvRllvUXY2cXp6QncrcWR6aHBqST0='; $tag = '<RPS>[conteúdo]</RPS>'; $tag = preg_replace('/[^\x20-\x7E]+/','',$tag); $tag = preg_replace('/[ ]+/','',$tag); $integridade = hash('sha512',$tag.$token); echo $integridade; ?> function TACBrNFSeX.GerarIntegridade(const AXML: string): string; var XML: string; i, j: Integer; xAssinatura: TStringList; begin j := Length(AXML); XML := ''; for i := 1 to J do begin if {$IFNDEF HAS_CHARINSET}ACBrUtil.Compatibilidade.{$ENDIF}CharInSet(AXML[i], ['!'..'~']) then XML := XML + AXML[i]; end; // SSL.CarregarCertificadoSeNecessario; xAssinatura := TStringList.Create; try xAssinatura.Add(XML + Configuracoes.Geral.Emitente.WSChaveAcesso); Result := string(SSL.CalcHash(xAssinatura, dgstSHA512, outHexa, False)); Result := lowerCase(Result); finally xAssinatura.Free; end; end; Quando chega aqui, para gerar a tag de integridade o resultado para gerar difere do código PHP. Notei que o resultado para a variável $tag remove todas as tags do xml e concatena com a chave de acesso. Mesmo fazendo isso e jogando direto nesse CalcHash não chego no resultado desejado: Resultado em PHP $tag = '7RPSL12022-04-1112022-04-11100.004.004.002108.011233526902358566280002597056038752679829AdrianadaSilvadosSantosRuaZairaOmettoS/NJardimNossaSenhoradoAmparo3526902SP13482275drisantos604@gmail.com22' $token = 'CJSMFYBDZ1EESHEYROW' $integridade = 'bb3989b878143f72212aeb17ed608ec1b90c52b98b89c9a84c2310bb5cf304b70d45f45e63e5bdaa2ae331e2bb3118be4f2a010eb55a48d72b7f24cc17765298' Gostaria da ajuda de você de como resolver isso. Desde já grato Raphael
×
×
  • 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.