bacen / pix-api

API Pix: a API do Arranjo de Pagamentos Instantâneos Brasileiro, Pix, criado pelo Banco Central do Brasil.
https://bacen.github.io/pix-api
2.23k stars 257 forks source link

[Dúvida] Validar CRC16 com acentuação nas Informações Adicionais. #559

Closed kennedimalheiros closed 11 months ago

kennedimalheiros commented 11 months ago

Alguém pode me ajudar a validar/(fazer o cálculo) CRC16 de um emv que tenha acentuação no Informações Adicionais.

Já pesquisei na documentação do Bacen, mas não encontrei a regra.

rubenskuhl commented 11 months ago

Mas pode isso, Arnaldo ? Quem define os caracteres válidos é o padrão EMV, e eu ficaria muito surpreso de um padrão basicamente estadunidense incluir acentuados...

kennedimalheiros commented 11 months ago

Também pensava o mesmo, mas o nubank deixa escrever com acento e gera o EMV com acentuação, ai minha função de calcular não está batendo com o mesmo crc gerado.

kennedimalheiros commented 11 months ago

Vou fazer mais alguns testes, mas inicialmente consegui fazer, fiz o emv.encode('utf-8') antes de fazer a validação. Se alguém tiver alguma sugestão melhor eu aceito.

rubenskuhl commented 11 months ago

Também pensava o mesmo, mas o nubank deixa escrever com acento e gera o EMV com acentuação, ai minha função de calcular não está batendo com o mesmo crc gerado.

Mas precisa ver se o Nubank está ou não fazendo certo... corrigir problemas de interoperabilidade por fora dos padrões gera o que a comunidade IETF chama de "Camelo", em referência a padrões que ficam na prática complexos para lidar com idiossincrasias de algumas implementações.

Não estou ainda afirmando que seja o caso, apenas que o caminho é entender o que deveria estar sendo feito.

kennedimalheiros commented 11 months ago

Realizei um teste com outros bancos e constatei que eles estão aceitando. Além disso, não encontrei informações explícitas na documentação que me permitam afirmar categoricamente que eles estão gerando incorretamente. Por essa razão, estou fazendo alguns ajustes.