Histórico de mensagens sobre QR CODE em pix

EXIBINDO CONVERSAS RECENTES:

Texto: QR CODE
Canal: pix
Avatar discord do usuario william_costa

william_costa

Ver Respostas

Itaú e Next também não conseguem ler o QR Code

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

C6 - não dá para testar, conclui erradamente que QR-Code é inválido.

Avatar discord do usuario william_costa

william_costa

Ver Respostas

Itaú deu "QR Code/link inválido"

Avatar discord do usuario placa_preta

placa_preta

Ver Respostas

no inter e no sofisa tb le corretamente e paga, porém,paga como se fosse um qrcode estático

Avatar discord do usuario evanil

evanil

Ver Respostas

Resultado dos testes:
O teste consiste no pagamento na instituição de um qrcode dinâmico, e o status da cobrança alterar para "CONCLUIDA"

Resumo até agora:
Gerencianet - ok
Banco do Brasil - ok
Santander - ok
Nubank - ok
Caixa - ok
Banco Inter - c/ problemas (não retransmiti o txid)
Sofisa - c/problemas (não retransmiti o txid)
C6 - c/problemas (não consegue ler o qrcode)
Itaú - c/ problemas (não consegue ler o qrcode)
Next - c/ problemas (não consegue ler o qrcode)
Bradesco - c/ problemas (não consegue ler o qrcode)

Alguém tem mais algum teste feito que falta incluir? Ou tem alguma consideração?

Avatar discord do usuario william_costa

william_costa

Leu corretamente o QR Code
imagem enviada na mensagem pelo usuario william_costa

Avatar discord do usuario placa_preta

placa_preta

Ver Respostas

Sim, não tão considerando o txid. Não dá baixa na cobrança qdo o pagamento do QRCode é feito neles

Avatar discord do usuario evanil

evanil

O teste consiste no pagamento na instituição de um QrCode dinâmico, e o status da cobrança alterar para "CONCLUIDA"

Avatar discord do usuario rodolfo.santos8069

rodolfo.santos8069

Ver Respostas

Bom dia. Eu estou convertendo meus ID's do sistema em md5 e usando como txid. Funcionou perfeitamente porque o md5 gera um string de 32 caracteres. (obs, para o qr code dinâmico)

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

O txID para QRCode dinâmico conforme padrão do Banco Central, deve atender à Regex ^[a-zA-Z0-9]{26,35}$. Ou seja, vai ser necessário ter 26 a 35 caracteres o txid. Já o QRCode estático deve atender à regex ^[A-Za-z0-9]{1,25}

Avatar discord do usuario rubenskuhl

rubenskuhl

Pessoal, um comentário genérico: há tanto instituições recusando QR-Codes gerados corretamente, quanto não recusando incorretos... então a melhor referência para elucidar esse tipo de questão é a documentação do BACEN mesmo.

Avatar discord do usuario placa_preta

placa_preta

Ver Respostas

Parte do documento do BACEN no que se refere ao QR Code dinâmico

Avatar discord do usuario placa_preta

placa_preta

Ver Respostas

Oi, Matheus. Eu sei que o txid não é necessário no QRCode estático, porém, no dinâmico ele é informado dentro do Json do payload. E esse txid dentro desse payload talvez devesse seguir o mesmo padrão. Sabe onde encontro a documentação do banco central em que o txid é de 26 a 35 caracteres?

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Boa noite <@!464478502725615625> ! Em relação ao txid, não é necessário o txid para gerar QRCode estático, somente o dinâmico. O QRCode dinâmico segue como padrão a Regex ^[a-zA-Z0-9]{26,35}$. Ou seja, vai ser necessário ter 26 a 35 caracteres o txid. Sobre os pagamentos, nós estamos seguindo rigorosamente o padrão do Banco Central, inclusive referente ao txid. Vamos verificar essa questão referente aos bancos e retornamos para você.

Avatar discord do usuario placa_preta

placa_preta

Ver Respostas

Ok, vamo lá.
- Primeiro, ao pagar os QRCodes Gerados em produção, percebi que apenas QRs pagos no Nubank exibem o txid na tela e quando o pagamento é efetuado e consulto a cobraça, muda corretamente o status da cobrança para CONCLUIDA
- No entanto, quando faço pagamentos pelo banco Inter ou Sofisa, eles simplesmente ignoram o txid (não exibem na tela de confirmação) e quando é pago consequentemente não muda o status da cobrança para CONCLUIDA, o status permanece ATIVA
- Uma das hipóteses desses 2 bancos não estarem considerando o txid pode ser o fato de que o txid padrão criado pena GN tem no mínimo 26 caracteres e segundo a documentação do banco central deve conter de 1 a 25
- Outra hipótese é erros do próprio banco psp pagador que não está considerando o txid porém, seria válido testar também a outra hipótese
- Como a API de gerar cobrança da GN não permite criar cobranças com txtid com caracteres abaixo dos 26 eu como desenvolvedor não consigo testar

Avatar discord do usuario placa_preta

placa_preta

Ver Respostas

Tua equipe chegou a testar criar uma cobrança com um txid com menos de 26 carácteres? E pagar esse qrcode nos bancos citados pra ver se desta forma eles passam a considerar o txid???

Avatar discord do usuario oleoessencial

oleoessencial

00020101021226900014br.gov.bcb.pix2568qrcodes-pix-h.gerencianet.com.br/v2/ab6017f3cbfe45449b04bb33c61a6c995204000053039865802BR5912EMPRESA LTDA6014RIBEIRAO PRETO62370533fc9a4366ff3d4964b5dbc6c91a8722d1263040E73

Avatar discord do usuario jefferson.m

jefferson.m

Ver Respostas

Boa tarde. A quem interessar, segue uma implementação simples do brcode em python:

____________________________________________________
import crcmod
from collections import OrderedDict
from unicodedata import normalize
import re
from decimal import Decimal

def _pix_normalized_data(d, k):
if k == 'URL':
return d.split('//')[-1]
if k == 'VALOR':
if not isinstance(d, Decimal):
return Decimal(d)
return d

if k in ['CIDADE']:
k.upper()

r = normalize('NFKD', unicode(d)).encode('ASCII','ignore').decode('ascii')

return re.sub(r'([^0-9a-zA-Z\-\+\s_@\.])', '', r)
def gerar(dados):
qr_str = "000201010212"
estrutura = OrderedDict()
estrutura["URL"] = lambda d: "26%02d0014br.gov.bcb.pix25%02d%s" % (len(d)+22,len(d), d.strip())
estrutura["MERCHANT_CAT_CODE"] = lambda d: "52040000"
estrutura["CURRENCY"] = lambda d: "5303986"
estrutura["VALOR"] = lambda d: "54%02d%.2f" % (len('%.2f' % d), d)
estrutura["COUNTRY_CODE"] = lambda d: "5802%s" % 'BR'
estrutura["RECEBEDOR"] = lambda d: "59%02d%s" % (len(d), d[:99])
estrutura["CIDADE"] = lambda d: "60%02d%s" % (len(d), d[:99])
estrutura['IDTRANSACAO'] = lambda d: "62%02d05%d%s" % (len(d)+4, len(d), d)

for k,f in estrutura.items():
qr_str += f(_pix_normalized_data(dados.get(k), k))

qr_str += "6304"
crc16 = crcmod.mkCrcFun(0x11021, rev=False, initCrc=0xffff, xorOut=0x0000)
qr_str += hex(crc16(qr_str)).split('x')[1]
return qr_str


qrcode_dados = {}
qrcode_dados['RECEBEDOR'] = 'Fulano de Tal'
qrcode_dados['VALOR'] = 123.45
qrcode_dados['CIDADE'] = 'BRASILIA'
qrcode_dados['URL'] = 'bx.com.br/pix/8b3da2f3-9a41-40d1-a91a-bd93113bd441'
qrcode_dados['IDTRANSACAO'] = 'RP12345678-2019'
print(gerar(qrcode_dados))

Avatar discord do usuario bartwitch

bartwitch

Ver Respostas

A gerencia net nao vai conseguir resolver isso de nao dar a baixa no sistema deles... se o banco que leu o qrcode nao manda o txid que deveria, não tem como ela fazer a conciliação. A verdade é que os bancos implementaram o PIX de qualquer jeito e o banco central fingiu que homologou e testou tudo..