Executando verificação de segurança...
2

Parabéns! Estava procurando uma dessas.

As que existem são muito ruins.

Tenho uma dúvida: essa valida o tamanho da cidade? Letras com acentos? Se eu digitar amount: 0.00003 ou amount: "12,52", ele irá me gerar um copia-e-cola com estes valores ou irá me disparar um erro?

Isso é importante. Minha cidade se chama "São José do Rio Preto", e nela já tem dois problemas pro Pix: o tamanho e os acentos. Eu sempre tenho que gerar como "SJRP" para evitar problemas.

São sugestões minhas.

Carregando publicação patrocinada...
2

Deixa eu só complementar que eu tinha esquecido de responder sobre o amount, ele passa por um .toFixed(2) que força o valor ficar no minímo 0.00, ou seja, caso voce coloque 0.00002 ele vai ficar como 0.00, mas se voce colocar 0.01 ele vai funcionar perfeitamente.

1

Ontem mesmo eu enfrentei problemas desse tipo, como: Acentuação e problemas cidades grandes.

Se não me engano o máximo é 25 caracteres.

A questão da pontuação é tranquilo de se resolver, porém a ideia que eu tive em relação a cidade seria de pegar as primeiras letras, assim como você citou.

ex: Rio De Janeiro o algoritmo iria ver se passa de 25 caracteres e caso sim ele pegaria as primeiras letras de cada palavra fazendo um: RJ.

É uma ideia que pretendo ja subir nas futuras versoes.

1

Eu acho que você pode simplificar só verificando o tamanho e se inclui caracteres com acentos e disparar uma exceção com isso.

O resto, o programador se vira.

Eu nunca vi um banco usar esse dado, mas por vias das dúvidas, ele tá lá.

Outra coisa: o tipo da chave pix é omitido no payload final. Você usa ele para o que? Validar key? Ou tem outra utilidade?

1

O type foi algo meu mesmo, para facilitar nas validações, pois do jeito que estava antes eu tinha um grande volume de if para validar regex e tamanho.

Dessa forma eu ataco de forma mais precisa, apenas valido um input com o que eu quero que ele seja, não preciso verificar se um número é um email, ou seja, eu valido se um email é um email. Já que o usuário me diz que chave é aquela. Porém eu pretendo fazer o projeto ficar cada vez mais dinâmico no futuro.