você está aqui: Home  → Arquivo de Mensagens

Biblioteca ISO8583 em Python

Colaboração: Igor Vitório Custódio

Data de Publicação: 21 de Maio de 2009

O padrão ISO8583 é amplamente utilizado nas transmissões de transações financeiras, como por exemplo entre um terminal POS e a central do cartão de Crédito.

Basicamente ele é uma mensagem formatada cujas posições têm significado específico, sendo comum receberem o nome de bits.

Os campos básicos de todo ISO8583 são:

  • MTI: Message Type Indicator ou Código indicador da mensagem
  • Bitmaps: Mapa de Bits. Serve para indicar quais bits estão presentes no pacote
  • Dados: Parte que carrega as informações em sim.

Exemplo:

Uma mensagem com MTI 0800 ("Network Management Request") geralmente usada como "Echo" para testar se está tudo "ok" com o servidor, com os respectivos bits:

  • Bit 3: valor 300000
  • Bit 24: valor 045
  • Bit 41: valor 11111111
  • Bit 42: valor 222222222222222
  • Bit 63: valor This is a Test Message

Deve ser estruturado para gerar a representação ASCII: 08002000010000C0000230000004511111111222222222222222022This is a Test Message

E assim, qualquer plataforma que suporte ISO8583 e receber esta mensagem conseguirá interpretar, processar e responder.

Existem diversas bibliotecas para processar adequadamente o ISO8583, como:

Bem, para Python pode ser encontrado em Projeto ISO8583py.

ISO8583py

ISO8583py é uma biblioteca 100% Python com suporte a geração e processamento de mensagens no padrão ISO8583 codificadas em ASCII.

Esta biblioteca está licenciada pela GPL V.3 e sua versão estável foi disponibilizada recentemente.

Tem suporte a interpretação de pacotes codificados com "Little-endian" e "Big-endian" e transmitidos através da rede

Além disto, tem a capacidade de se adequar a dialetos ISO8583 locais, através da redefinição de bits, valores, tipos, etc.

Download

O download pode ser feito através da página: http://code.google.com/p/iso8583py/downloads/list

Instalação

A instalação é bem simples, pois a biblioteca está estruturada como um módulo Python.

Basicamente é: Baixar, descompactar, instalar.

Mais informações de como instalar podem ser vistas na página http://code.google.com/p/iso8583py/wiki/InstallPage

Exemplos

O pacote da ISO8583py vem com exemplos de uso (Diretório examples), que demonstram a facilidade de utilização, inclusive com um exemplo de cliente e servidor TCP para a troca de mensagens "Echo".

Uma descrição geral e comentários sobre os exemplos podem ser visto na página http://code.google.com/p/iso8583py/wiki/ExamplesPage

Por exemplo:

A criação do pacote de "Echo", utilizando-se esta biblioteca, resume-se a:

  from ISO8583.ISO8583 import ISO8583
  from ISO8583.ISOErrors import *
  
  (...)
  
  iso = ISO8583()
  iso.setMTI('0800')
  iso.setBit(3,'300000')
  iso.setBit(24,'045')
  iso.setBit(41,'11111111')
  iso.setBit(42,'222222222222222')
  iso.setBit(63,'This is a Test Message')
  
  (...)

Documentação

Todos os fontes estão repletos de comentários no formato "PyDoc".

Assim, basta utilizar o PyDoc para descobrir todas as funcionalidades presentes nesta biblioteca.

É possível ainda verificar a documentação "PyDoc" dentro do diretório "docs". Lá se encontram arquivos no formato HTML com toda a documentação gerada por esta ferramenta.

Além disto, caso queiram tirar dúvidas, basta se cadastrar no grupo de discussão http://groups.google.com.br/group/iso8583python

Contribuições

Como a ISO8583py está licenciada pela GPL V.3, pode-se contribuir abertamente.

Apesar de todo código fonte estar disponível ao fazer download, ele está presente também o SVN do GoogleCode http://code.google.com/p/iso8583py/source/browse/#svn/trunk

Conclusão

Se precisarem processar pacotes ISO8583 em Python, está aí uma biblioteca "free" e prática, como Python :)



Veja a relação completa dos artigos de Igor Vitório Custódio

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script