Skip to content

[PG-1651] Adiciona mais bins de bandeira master#34

Merged
JBizarri merged 4 commits into
mainfrom
PG-1651
Mar 16, 2026
Merged

[PG-1651] Adiciona mais bins de bandeira master#34
JBizarri merged 4 commits into
mainfrom
PG-1651

Conversation

@JBizarri

@JBizarri JBizarri commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

PG-1651

O CSV dos bins que deram erro nas últimas 4 semanas continha esses e mais alguns
image

Adicionei os 3 casos principais que compõem a maioria dos erros. Não sei se vale a pena adicionar todos os BINs do csv.

CSV Completo:
bin_info.csv

Comment thread tests/unit/test_card.py
("master", "6063216106123345"), # antigo maestro
("master", "6392403325708112"), # antigo maestro
("master", "6087101111111111"),
("master", "6087831111111111"),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Porque dois testes para o mesmo pattern?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

O mesmo pattern contempla esses dois BINs que tavam dando bastante erro, então deixei no teste para garantir que nenhuma mudança vai fazer voltar o bug.

Comment thread creditcard/card.py Outdated
r"|2720[0-9]{12}"
# Suporte aos antigos cartões Maestro que agora são MasterCard
r"|5[06789][0-9]{14}"
r"|55020[0-9]{11}"

@felipetrz-maistodos felipetrz-maistodos Mar 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Essa regra já está coberta pelo primeiro padrão da regex:
5[1-5][0-9]{14}
5(5)(020)[0-9]{11}

Inclusive o padrão acima deste poderia ter sido colocado junto com o primeiro, pois qualquer número de 16 dígitos que começa com 5 vai cair como master, então a regra poderia ter sido 5[0-9]{15} mesmo. Eu só tinha mantido separado pra diferenciar os padrões que eram maestro.

Acho que o motivo de estarmos rejeitando esse bin é o comprimento do número (que não sabemos qual era, pois a nossa máscara perde essa informação), que faz com que ele não bata com a regex, que está levando ele em consideração.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdade, não tinha percebido. Acho que podemos simplificar para usar só 5[0-9]{15} e deletar esses do maestro que começam com 5, o que acha?

Sobre o tamanho completo do número, já que perdemos essa informação acho que não tem muito o que fazer para esse caso, mas é um que aconteceu 20 vezes. Acha que vale a pena investigar mais a fundo? Talvez colocar um log do tamanho do número do cartão no extra desse log de erro.

@JBizarri JBizarri merged commit e57ecb1 into main Mar 16, 2026
1 check passed
@JBizarri JBizarri deleted the PG-1651 branch March 16, 2026 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants