Credit Card Stripe Parser é uma biblioteca Python e ferramenta de linha de comando para análise de dados de tarja magnética de cartões de crédito. Suporta os formatos de Trilha 1 e Trilha 2 conforme especificados nos padrões ISO/IEC 7811-2 e ISO/IEC 7813.
Nota Esta ferramenta destina-se apenas a fins educacionais e de teste. Sempre manipule dados de cartões de pagamento em conformidade com os requisitos do PCI DSS e leis e regulamentos aplicáveis.
Este guia fornece exemplos de como usar a biblioteca Credit Card Stripe Parser.
from credit_card_stripe_parser import FullTrackParser
# Criar uma instância do analisador
parser = FullTrackParser()
# Exemplo de dados de trilha
track_data = "%B5168755544412233^PKMMV/UNEMBOXXXX ^1807111100000000000000111000000?;5168755544412233=18071111000011100000?"
# Analisar os dados da trilha
result = parser.parse(track_data)
# Acessar dados analisados
if result.is_track_one_valid and result.track_one:
print(f"Titular: {result.track_one.card_holder_name.strip()}")
print(f"PAN: {result.track_one.pan}")
print(f"Validade: {result.track_one.expiration_date[:2]}/{result.track_one.expiration_date[2:]}")
if result.is_track_two_valid and result.track_two:
print(f"Código de serviço: {result.track_two.service_code}")
from credit_card_stripe_parser import FullTrackParser
parser = FullTrackParser()
track1_data = "%B5168755544412233^PKMMV/UNEMBOXXXX ^1807111100000000000000111000000?"
try:
track1 = parser.parse_track_one(track1_data)
print(f"Dados da Trilha 1: {track1}")
except Exception as e:
print(f"Erro ao analisar Trilha 1: {e}")
from credit_card_stripe_parser import FullTrackParser
parser = FullTrackParser()
track2_data = ";5168755544412233=18071111000011100000?"
try:
track2 = parser.parse_track_two(track2_data)
print(f"Dados da Trilha 2: {track2}")
except Exception as e:
print(f"Erro ao analisar Trilha 2: {e}")
A biblioteca fornece exceções específicas para diferentes cenários de erro:
from credit_card_stripe_parser import (
FullTrackParser,
InvalidTrackOneException,
InvalidTrackTwoException,
InvalidTrackDataException
)
parser = FullTrackParser()
try:
result = parser.parse(dados_de_trilha_invalidos)
except InvalidTrackOneException as e:
print(f"Dados inválidos da Trilha 1: {e}")
except InvalidTrackTwoException as e:
print(f"Dados inválidos da Trilha 2: {e}")
except InvalidTrackDataException as e:
print(f"Dados de trilha inválidos: {e}")
except Exception as e:
print(f"Erro inesperado: {e}")
A biblioteca fornece modelos de dados para trabalhar com os dados de trilha analisados:
from credit_card_stripe_parser.models import TrackOneModel, TrackTwoModel
# Criar uma instância de TrackOneModel
track1 = TrackOneModel(
format_code='B',
pan='5168755544412233',
card_holder_name='JOAO SILVA',
expiration_date='2512',
service_code='123',
discretionary_data='123456789012345678901',
source_string='%B5168755544412233^JOAO SILVA^251212312345678901234567890?'
)
# Criar uma instância de TrackTwoModel
track2 = TrackTwoModel(
pan='5168755544412233',
expiration_date='2512',
service_code='123',
pvki=None,
pvv_or_cvv='1234',
discretionary_data='123456789012345678901234567890',
source_string=';5168755544412233=2512123123412345678901234567890?'
)
Você pode implementar validação personalizada criando uma subclasse do analisador:
from credit_card_stripe_parser import FullTrackParser
class AnalisadorPersonalizado(FullTrackParser):
def validate_track_one(self, track_data: str) -> bool:
# Lógica de validação personalizada para Trilha 1
if not super().validate_track_one(track_data):
return False
# Adicionar validação personalizada aqui
return True
def validate_track_two(self, track_data: str) -> bool:
# Lógica de validação personalizada para Trilha 2
if not super().validate_track_two(track_data):
return False
# Adicionar validação personalizada aqui
return True
Para habilitar a validação LRC (Verificação de Redundância Longitudinal):
parser = FullTrackParser(validate_lrc=True)
# Isso lançará uma exceção se a validação LRC falhar
try:
result = parser.parse(dados_de_trilha_com_lrc)
except Exception as e:
print(f"Falha na validação LRC: {e}")
Nota A validação LRC requer que os dados da trilha incluam o caractere LRC no final.
Esta biblioteca foi projetada para analisar dados de tarjas magnéticas de cartões de crédito para fins educacionais e de teste.
Esta ferramenta deve ser usada em conformidade com os requisitos do PCI DSS e leis aplicáveis. Sempre garanta que as medidas de segurança adequadas estejam em vigor ao lidar com dados de cartões de pagamento.
A biblioteca suporta os formatos de Trilha 1 e Trilha 2 conforme especificados nos padrões ISO/IEC 7811-2 e ISO/IEC 7813.
A biblioteca fornece exceções específicas para diferentes cenários de erro. Consulte a seção Tratamento de Erros para obter exemplos.
Sempre siga os requisitos do PCI DSS ao lidar com dados de cartões de pagamento. A biblioteca inclui funções auxiliares para mascarar informações confidenciais.
def mascarar_pan(pan):
if len(pan) <= 4:
return pan
return '*' * (len(pan) - 4) + pan[-4:]
Este projeto está licenciado sob a Licença Pública Geral GNU v3.0 - consulte o arquivo LICENÇA para obter detalhes.