pedrofurtado / qrcode_pix_ruby

Ruby gem for QRCode generation of Pix (Pagamento Instantâneo Brasileiro - Banco Central do Brasil)
https://rubygems.org/gems/qrcode_pix_ruby
MIT License
43 stars 7 forks source link

QRcode invalido quando gerado um pix no valor redondo abaixo de 100.00 #25

Closed ademir10 closed 2 years ago

ademir10 commented 2 years ago

Boa tarde Pedro! tudo bem? espero que sim!

passando para dar um feedback relacionado as nossas faturas que foram geradas automaticamente nessa madrugada e notamos que, os QRcodes que foram gerados no valor de 99.00 ficaram ilegíveis para o Bradesco e Itaú. Fiz mais alguns testes como por exemplo adicionando 1 centavo e o QRcode é lido normalmente, inclusive estou utilizando o mesmo código para isso, justamente para ter certeza se o problema estaria em algum outro parametro, mas não, é realmente o valor informado.

teria alguma sugestão? tentei passar somente o valor sem as casas decimais ( 99 ) e no Bradesco validou porém no Itaú não.

Resumindo: se passar o valor 99.00 (não valida o QRcode) se passar o valor 99.01 (QRcode ok) se passar o valor 99 sem as casas decimais depois do ponto (valida no Bradesco mas não valida no Itaú)

agora qualquer valor acima de R$100.00 é validado, mesmo que tenhamos zeros no final, exemplo 198.00

qualquer tip é bem vinda, hugs!

ademir10 commented 2 years ago

Boa tarde Pedro! tudo bem? espero que sim!

passando para dar um feedback relacionado as nossas faturas que foram geradas automaticamente nessa madrugada e notamos que, os QRcodes que foram gerados no valor de 99.00 ficaram ilegíveis para o Bradesco e Itaú. Fiz mais alguns testes como por exemplo adicionando 1 centavo e o QRcode é lido normalmente, inclusive estou utilizando o mesmo código para isso, justamente para ter certeza se o problema estaria em algum outro parametro, mas não, é realmente o valor informado.

teria alguma sugestão? tentei passar somente o valor sem as casas decimais ( 99 ) e no Bradesco validou porém no Itaú não.

Resumindo: se passar o valor 99.00 (não valida o QRcode) se passar o valor 99.01 (QRcode ok) se passar o valor 99 sem as casas decimais depois do ponto (valida no Bradesco mas não valida no Itaú)

agora qualquer valor acima de R$100.00 é validado, mesmo que tenhamos zeros no final, exemplo 198.00

qualquer tip é bem vinda, hugs!

Desculpa, Pedro. continuando os testes aqui notamos que o problema não está no valor, está também no "transaction_id", curiosamente quando alteramos o valor da fatura o QRcode é validado, mas verificando o transaction_id também tem relação nisso, como não li a documentação do BACEN, te confesso que não sei qual seria a relação nisso.

De qualquer forma estou dando continuidade aqui nos testes.

ademir10 commented 2 years ago

já descobrimos o erro, desculpa, o problema estava no nosso código, a variável transaction_id estava pegando o parametro errado e por conta disso tinhamos o problema na geração do QRcode.

vou encerrar aqui e qualquer coisa te dou um toque, valeu brigadão Pedro!

pedrofurtado commented 2 years ago

Olá @ademir10 , tudo joia?

Fico feliz que tenha dado certo! 🍻 De toda maneira, a origem do problema teria sido qrcodes com transaction_id iguais ou com valores invalidos por ex?

Pra auxiliar quem consultar essa issue posteriormente 🤝

Valeu!

ademir10 commented 2 years ago

Olá @ademir10 , tudo joia?

Fico feliz que tenha dado certo! 🍻 De toda maneira, a origem do problema teria sido qrcodes com transaction_id iguais ou com valores invalidos por ex?

Pra auxiliar quem consultar essa issue posteriormente 🤝

Valeu!

Exatamente Pedro, estávamos passando um id de outra table onde sempre o valor era igual a 1 em todos os clientes.

Brigadão valeu!