william-costa / wdev-qrcode-pix-php

Implementação do projeto de geração do payload e QR Codes estáticos e dinâmicos do Pix - WDEV
70 stars 40 forks source link

QR code inválido #5

Open hendmele opened 2 years ago

hendmele commented 2 years ago

Senhores,

Tenho tido alguns casos esporádicos (por enquanto 2 em cerca de 1000 códigos gerados), onde os aplicativos de banco não reconhecem a chave. Abaixo uma das chaves.

00020126730014br.gov.bcb.pix0136e57b119f-3f91-4734-93f0-29d6a9c02b0a0211CestaLivres520400005303986540522.005802BR5913Milena Savini6009Sao Paulo622605221wDQuczihqxiuSkkkLu0aS6304EA9

Quebrando a chave parte a parte de acordo com o manual do BACEN, notei que CRC16 está com 3 digitos (EA9) ao invés de 4 dígitos. Gerei manualmente o CRC16 e o resultado foi 0EA9.

Pelo que estou vendo, a função que gera o CRC16 está ignorando zero à esquerda e causando o problema. Podem avaliar comigo se é o caso? E quem sabe fazer a correção?

Não tenho tanta experiência assim para ter certeza absoluta que esse é o erro. Por ora eu fiz um patch pra colocar zero à esquerda e completar 4 caracteres do CRC16, mas não sei se posso estar introduzindo algum problema.

editei a função "" no arquivo Payload.php e ficou assim:

` /**

Obrigado.

renatofrota commented 2 years ago

Sua implementação do str_pad para forçar os 4 caracteres adicionando zeros à esquerda está correta e está consonante com a documentação da API Pix.

andercrist commented 2 years ago

Gente, podem atualizar isso, gerou uma dor de cabeça danada essa função.