Utilidades
calculate_crc16(payload)
Calcula o checksum CRC16-CCITT do payload.
O cálculo é realizado conforme o padrão EMV® QRCPS, que utiliza o polinômio 0x1021 e valor inicial 0xFFFF. O resultado é uma string hexadecimal de 4 caracteres.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
payload
|
str
|
O payload completo (sem o campo do CRC) para o qual o checksum será calculado. |
required |
Returns:
Name | Type | Description |
---|---|---|
str |
str
|
O checksum CRC16 calculado, formatado como uma string hexadecimal de 4 caracteres maiúsculos. |
Examples:
>>> payload_exemplo = "00020126360014BR.GOV.BCB.PIX0114+5561999999999520400005303986540510.005802BR5913FULANO DE TAL6008BRASILIA62070503***6304"
>>> calculate_crc16(payload_exemplo)
'E3A2'
Source code in src\pixcore\utils.py
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
|
format_tlv(id_field, value)
Formata um campo no padrão TLV (Type-Length-Value).
O formato TLV é composto por: - ID (Type): Identificador do campo (2 dígitos). - Length: Tamanho do valor (2 dígitos). - Value: O dado em si.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
id_field
|
str
|
O identificador do campo (ID ou "Tag"). |
required |
value
|
str
|
O valor do campo. |
required |
Returns:
Name | Type | Description |
---|---|---|
str |
str
|
A string formatada em TLV. Ex: "5913NOME DO LOJA". |
Examples:
>>> format_tlv("59", "EMPRESA MODELO")
'5914EMPRESA MODELO'
>>> format_tlv("53", "986")
'5303986'
Source code in src\pixcore\utils.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|