renatomb / php_qrcode_pix

Implementação da geração de QRCode do Pix em PHP
https://dinheiro.tech/qr-code-pix
Creative Commons Zero v1.0 Universal
197 stars 72 forks source link

QR Code inválido no banco SICOOB #2

Closed ronaldofl closed 3 years ago

ronaldofl commented 3 years ago

Testei o código com o aplicativo SICOOB, mas não funcionou. O QR Code foi gerado normalmente, mas ao ler com o aplicativo do banco a mensagem que obtenho é "Código inválido. Confime os dados com o emissor e tente novamente."

Já testei com todas as chaves PIX que possuo e todas deram este erro. Vou deixar minha chave PIX aleatória, para facilitar testes: 928de119-2645-4acb-863f-6d46021ffdd4 Poderia me ajudar?

renatomb commented 3 years ago

Já tentou gerar na versão live/demo disponível no site?

O QR code abaixo é lido no aplicativo do banco?

image

renatomb commented 3 years ago

O código pix copia-e-cola do qr code acima é: 00020126580014BR.GOV.BCB.PIX0136928de119-2645-4acb-863f-6d46021ffdd452040000530398654040.005802BR5923RONALDO FORTUNATO LOPES6009SAO PAULO63048131

Qual a pix copia-e-cola do código que você gerou e foi recusado?

ronaldofl commented 3 years ago

O aplicativo do banco recusou esse QR Code assim como recusou o do meu teste.

Este é o copia-e-cola gerado e recusado no meu teste: 00020126580014BR.GOV.BCB.PIX0136928de119-2645-4acb-863f-6d46021ffdd452040000530398654041.005802BR5923Ronaldo Fortunato Lopes6010São Paulo63041D56

Testei também com o copia-e-cola do seu teste que é este: 00020126580014BR.GOV.BCB.PIX0136928de119-2645-4acb-863f-6d46021ffdd452040000530398654040.005802BR5923RONALDO FORTUNATO LOPES6009SAO PAULO63048131

Também foi recusado. Todos os testes foram feitos na versão live.

renatomb commented 3 years ago

Teste esse: 00020126580014BR.GOV.BCB.PIX0136928de119-2645-4acb-863f-6d46021ffdd452040000530398654040.005802BR5923RONALDO FORTUNATO LOPES6009SAO PAULO62410503***50300017BR.GOV.BCB.BRCODE01051.0.06304979B

image

ronaldofl commented 3 years ago

Esse funcionou.

O problema está relacionado ao valor? Notei que esse pix parece não passar o valor no copia-e-cola.

renatomb commented 3 years ago

A questão do valor não interfere, pois se trata de um campo facultativo. Se o valor não tiver especificado no código o cliente final que irá informar no próprio aplicativo.

Eu acrescentei o identificador *** e os campos adicionais (62) necessários quando se usa identificador. Você pode testar na versão live/demo basta preencher o último campo do formulário com três asteriscos.

Você também pode dar uma olhada no decodificador e ver todos os campos que estão lá. Mas basicamente é o que está comentado nessas linhas: https://github.com/renatomb/php_qrcode_pix/blob/865a7d65c50b946976660528e9aa60869d0267c6/exemplo.php#L38-L43

Uma vez que se trata de um campo facultativo eu já vi alguns aplicativos de banco (ex.: banco inter, next, santander) convencionarem de usar o *** como identificador na ausência desse. Mas eu não vi isso descrito como necessário em nenhuma documentação que tive acesso, por isso deixei essa parte do código comentada no exemplo.

ronaldofl commented 3 years ago

Conforme eu esperava, também deu certo no meu teste. Muito obrigado pela ajuda.

Uma última dúvida: No site da demo tem esse aviso: "Se a conta destino for do Banco Itaú não utilize o identificador ou o pix poderá ser recusado."

Sabe se mesmo passando o identificador como *** esse problema ainda ocorre? Provavelmente só testando para saber, certo?

renatomb commented 3 years ago

O Itaú literalmente implica com qualquer identificador que não tenha sido gerado no aplicativo deles. Ele recusa a transação e o pix não conclui.

Se você gerar no aplicativo deles eles atribuem um identificador aleatório e salvam no backend deles. De modo que só aceitam os pagamentos para aqueles identificadores previamente cadastrados.

Nos testes que eu fiz com o *** funcionou normal também. Mas só tenho uma conta pf lá, o que limita os testes que posso fazer.

Acompanhei o caso de uma outra pessoa que estava com dificuldades com aquele banco e, no final, descobrimos que é necessário solicitar ao gerente da conta para habilitar a conta para receber pix usando qr code gerado fora do aplicativo. Veja este issue.

ronaldofl commented 3 years ago

Dei uma boa lida na thread. O cliente para quem vamos implementar utiliza justamente o Itaú.

Vou realizar um teste com a conta PJ do cliente e se der problema já sei como prosseguir. Muito obrigado mesmo.