CALCULAR CHAVE PIX

ANDPAG 11/04/2023 17:47:54
#501284
Pessoal eu estou precisando de uma pequena ajuda para calcular chave pix. Eu gerei a chave calculando o CRC16 normalmente que é aquele codigo alfanumerico final de 4 digitos, só que no meio da chave tem uma sequencia numerica que dependendo o valor do pix muda. Esta sequencia que é minha duvida. Segue o exemplo.

Chave pix que eu gero para 22 reais.
00020126390014BR.GOV.BCB.PIX0117afsys@hotmail.com520400005303986540522.005802BR5914ANDRE PAGLIUSO6013S J RIO PRETO62070503***63045054
Nesta chave depois do e-mail tem a sequencia --> 5204000053039865405, depois dela vem o 22.00 que é o valor

Chave Pix para 4 reais:
00020126390014BR.GOV.BCB.PIX0117afsys@hotmail.com52040000530398654044.005802BR5914ANDRE PAGLIUSO6013S J RIO PRETO62070503***6304A2A5
Veja que a sequencia depois do e-mail agora ficou --> 5204000053039865404, ou seja, o numero final dela mudou para 4, é esta sequencia numerica que eu estou sem base para calcular, alguém sabe como gerar este numero? Qual é o calculo?

Valeu, obrigado pela atenção.
KERPLUNK 11/04/2023 21:30:00
#501285
O que me disse o chatGPT:
como ficaria uma chave pix para o email joseSilva@gmail.com no valor de 4 reais?

Uma chave Pix para o e-mail joseSilva@gmail.com no valor de R$ 4,00 ficaria da seguinte forma:


000201 // Cabeçalho do código de barras no formato EMV QR Code
26370014BR.GOV.BCB.PIX01joseSilva@gmail.com52040000530398654044 // Informação de pagamento
6304A0AB // Informações adicionais (opcional)

Explicando cada uma das partes:

000201: Cabeçalho do código de barras no formato EMV QR Code;
2637: Identificador do Banco Central do Brasil para pagamentos instantâneos (PIX);
0014: Comprimento da informação a seguir, que identifica o sistema de pagamentos instantâneos (valor: BR.GOV.BCB.PIX);
BR.GOV.BCB.PIX: Nome do sistema de pagamentos instantâneos brasileiro, administrado pelo Banco Central do Brasil;
01: Indica que a chave PIX é um e-mail (valor: joseSilva@gmail.com);
joseSilva@gmail.com: Endereço de e-mail do recebedor;
52040000530398654044: Valor da transação a ser paga pelo pagador (valor: R$ 4,00);
6304: Comprimento da informação a seguir, que contém informações adicionais (opcional);
A0AB: Campo de informações adicionais (opcional).

Lembrando que a estrutura de uma chave Pix pode variar de acordo com a instituição financeira que emitiu a chave.

não entendi como o valor da transação é como é?

O valor da transação é uma parte da informação de pagamento que é incluída na chave Pix e é composta por uma sequencia de números que representa o valor a ser pago pelo pagador.

No exemplo que eu citei anteriormente, o valor da transação é "R$ 4,00", e foi representado pela sequencia "52040000530398654044" na chave Pix.

Essa sequencia é formada pelos seguintes elementos:

"52": Identifica o campo de valor da transação;
"040000": Indica que o valor é de R$ 4,00. Os quatro primeiros dígitos (0400) representam a parte inteira do valor (ou seja, R$ 4), enquanto os dois últimos dígitos (00) representam a parte decimal (ou seja, sem centavos);
"5303": Indica o tipo de moeda, no caso o real brasileiro (BRL);
"986": Identificador da instituição financeira (neste caso, o Banco Central do Brasil);
"54044": Dígito verificador.

Essa estrutura é definida pelo padrão de codificação de barras EMV QR Code, utilizado no Brasil para as chaves Pix. Vale ressaltar que a forma como a informação de pagamento é estruturada pode variar entre as instituições financeiras, mas as informações básicas, como o valor da transação, estarão sempre presentes.


como é calculado o dígito verificador?

O dígito verificador na chave Pix é calculado utilizando o algoritmo de cálculo de dígito verificador módulo 11, o mesmo utilizado em outras formas de pagamento eletrÃ'nico, como boletos bancários, por exemplo.

O cálculo do dígito verificador é feito a partir da soma ponderada dos valores de cada dígito da chave Pix, com pesos de 2 a 9, da direita para a esquerda. O resultado dessa soma é dividido por 11, e o dígito verificador é obtido subtraindo-se o resto da divisão de 11 pelo resultado da soma.

Veja um exemplo de como calcular o dígito verificador para a chave Pix "joseSilva@gmail.com" com o valor de R$ 4,00:

Adiciona-se o campo de informações da chave Pix: "26370014BR.GOV.BCB.PIX01joseSilva@gmail.com52040000530398654044";

Atribui-se o valor 0 (zero) ao dígito verificador:


26370014BR.GOV.BCB.PIX01joseSilva@gmail.com520400005303986540440

Multiplica-se cada dígito da chave pela sequencia de pesos 2, 3, 4, 5, 6, 7, 8 e 9, da direita para a esquerda, e soma-se o resultado dessas multiplicações:


(0 x 9) + (4 x 8) + (4 x 7) + (8 x 6) + (3 x 5) + (9 x 4) + (8 x 3) + (6 x 2) + (5 x 9) + (0 x 8) + (3 x 7) + (9 x 6) + (8 x 5) + (6 x 4) + (5 x 3) + (4 x 2) = 246

Divide-se o resultado da soma por 11:


246 ÷ 11 = 22,36 (parte inteira: 22, parte decimal: 0,36)

Calcula-se o dígito verificador subtraindo-se o resto da divisão de 11 pelo resultado da soma:


11 - (246 % 11) = 11 - 1 = 10

Como o resultado é 10, utiliza-se o dígito "X" como dígito verificador final:

26370014BR.GOV.BCB.PIX01joseSilva@gmail.com52040000530398654044X

Pronto! A chave Pix "joseSilva@gmail.com" com o valor de R$ 4,00 e o dígito verificador "X" está completa e pronta para ser utilizada no pagamento instantâneo.
NLSOLUCOES 12/04/2023 09:19:57
#501287
Citação:

O que me disse o chatGPT:


Achei interessante a "provocação"

Cuidado em, tem muito dev depre

KERPLUNK 12/04/2023 16:21:33
#501292
Eu sei, incluindo eu. O que o ChatGPT está fazendo hoje, é algo que eu esperava que um dia acontecesse, mas não nos tempos de hoje. Esperava que isso acontecesse tipo daqui uns 20 anos.

Até interessante falar sobre isso:
Estou usando hoje direto ChatGPT para gerar uma caralhada(desculpem o palavrão) de código, altamente eficiente, muito bem feito e praticamente sem erros. Já vi videos de gente criando aplicações inteiras, muito bem feitas e sem digitar uma única linha de código, simplesmente descrevendo o que querem. Isso usando a versão 4, já tem vários "peeks" que deram da versão 5 e até alguns planos para a versão 6. A coisa está apavorante, de verdade. Veja essa matéria, o robÃ', mentindo ser um humano, contratou um humano para resolver um captcha. Isso porque ele não tem(ainda), a capacidade de "ver". Quando isso acontecer(e sim, é questão de QUANDO e não SE), nem mesmo isso será obstáculo. Fiz uns testes aqui e são promissores para uso dele(ChatGPT), para tarefas comuns ao nosso meio aqui, no ponto de vista de nossos clientes/usuários. O que fiz? Apresentei a estrutura de uma NFE de venda, dizendo que esse era o resultado que queria. Depois de alguns promps de perguntas e respostas, eu tinha na mão um sistema completo que recebe as notas, grava num banco(com todos os dados), faz a programação de produção(incluindo lotes de produção, parte dos vai e vem de conversa, explicando que minha produção era limitada e quais eram essas limitações), controle do estoque, geração de pedidos de compra para produtos que fossem faltar ou que ficariam no estoque mínimo, enfim, tudo que a gente faz normalmente para um sistema aceitável de Estoque/PCP/Venda, ou seja, um (nem tão) pequeno ERP. Isso tudo, levou um pouco mais de 6 horas. SEIS HORAS. Pontos à salientar:
- Não ficou absolutamente perfeito, teve alguns defeitos que foram corrigidos pelo próprio ChatGPT. Depois disso não encontrei mais erros.
- O que resultou é simplesmente uma API que recebe pedidos, com autenticação por cliente(que tem seu próprio login cada) e faz todo o necessário para produzir, incluindo monitoramente de etapas(etapa 1 terminou, sistema atualiza e cliente pode consultar seu pedido e saber "em que pé está")
- Não fiz essa parte mas tenho certeza que não seria problema para o ChatGPT fazer um site simples para fazer uma interface para isso, onde o cliente loga e faz o pedido dele visualmente
- Ele fez uso de todas as metodologias que pedi, TDD, DDD e toda essa sopa de letrinhas, sem o menor problema.

Note bem, foram apenas SEIS HORAS de trabalho. O que resultou, é algo que uma pequena equipe levaria uns SEIS MESES. E tudo isso, sem digitar praticamente nada de código(basicamente copiava e colava), ou seja, alguém com um mínimo de conhecimento também conseguiria.
ANDPAG 12/04/2023 16:31:44
#501293
Obrigado pelo retorno, mas o CHaT GPT da muita informação incorreta na área de desenvolvimento, a maioria dos fóruns não aceita informação do GPT. Por enquanto até hoje ele é ineficiente para algumas areas específicas de codificação, não sei no futuro, mas com certeza irá melhorar. Uma AI muito melhor que o Chat GTP é o CHAT AI é pago mas infinitamente melhor. A questão do calculo eu encontrei pelo manual pix, é bem simples, segue solução:

A sequencia que era minha duvida é esta --> 5204000053039865404. Ela é separada desta maneira.
52040000
5303986
54
Estes valores são fixos na chave, nunca mudam. O que eu precisava calcular são os dois digitos seguintes ao 54 que no caso de pagamento de 4 reais vinha 04 e no caso de pagamento de 22 reais vinha 05. A solução é usar um simples Len.
Valor de R$4.00 tem 4 caracteres , ou seja, 04 e a chave que o valor é R$22.00 tem 5 caracteres então será 05. Para quem quiser ajuda na geração da Chave Pix em Vb6 é só me falar que eu mando o esquema. valeu a todos. Abs.
Tópico encerrado , respostas não são mais permitidas