Integração de PIX: gerenciamento de pagamentos e consultas em tempo real

EXIBINDO RESPOSTAS:

Avatar discord do usuario franciscorsobrinho

franciscorsobrinho

até que o pessoal do host onde hospedo disponibilizar a configuração, estou usando um loop enquanto o usuário está na tela do qr code

Avatar discord do usuario bartwitch

bartwitch

aqui eu to fazendo assim:
- assim que a pessoa gera o PIX, eu coloco o qrcode e o pix copia-cola na tela e instruo ele a realizar o pagamento
- enquanto ela vê o PIX, eu rodo uma checagem de 2 em 2segundos analisando se em meu banco de dados o PIX consta como pago
- quando a pessoa paga, no retorno via webhook eu atualizo em meu banco de dados para PAGO...
- assim que a checagem consta como "pix pago", o usuário recebe uma mensagem de confirmação e é redirecionado pra um histórico de pagamentos

como fallback (ainda nao fiz), é bom ter um script pronto pra consultar os pix do dia e ver se nada ficou "esquecido", talvez um cron a cada X minutos (ou horas).

Avatar discord do usuario joelemanoel

joelemanoel

Sigo o mesmo fluxo aqui.

Avatar discord do usuario franciscorsobrinho

franciscorsobrinho

Também faço isso, com a diferença que consulto de 10 em 10 segundos.
E criei uma opção para o usuário baixar manualmente informando o código txid e/ou o e2eid

Avatar discord do usuario anoni_mato

anoni_mato

se vc estiver consultando pelo GET /pix na GN, 10 segundos é interessante, conservador. mas se vc vai consultar no seu próprio banco de dados se o pedido/pix tá pago ou não, 2 ou 5 segundos é perfeitamente aceitável. e seja como for, é interessante encadear as consultas (acionar a primeira, e fazer a próxima ser enviada após o retorno da primeira + X segundos, por um setTimeout disparado). se fizer um setInterval pode emparelhar muitos requests e sobrecarregar seu sistema

Avatar discord do usuario felipoantonoff

felipoantonoff

Eu optei por usar a página de sucesso mesmo para exibir o QR Code e o Copia e Cola do Pix.
Assim já consigo mudar para Aguardando Pagamento no Status e salvo também no Histórico do Pedido.

Logo se o cliente sair da tela de Sucesso, pode ainda acessar no Detalhes do Pedido.
Faço desta forma com Boleto tb a alguns anos.

Já com outro Pagamento, adotei a ideia de verificar a cada X segundos tb por JS e depois mandar para o sucesso ou quando chegar no tempo limite de X minutos de espera.