Introdução
As mensagens são formadas por 3 partes:
A seguir temos um exemplo de uma mensagem ISO8583 do tipo 0800 (MTI):
Bits setados:
Assim, a mensagem final, com todos os campos e o bitmap seria:08002000010000c0000230000004511111111222222222222222022This is a Test Message
Quebrando a mensagem, verifica-se:
Segundo o padrão, cada um dos bits deve ter um tamanho/tipo específico, possuindo também um nome que define sua finalidade.
Maiores informações sobre ISO8583, MTI, mapa de bits e os bits, podem ser visto na Wikipedia do ISO8583.ISO8583py
A biblioteca IS8583py é feita inteiramente em Python e está licenciada segundo a GPL V.3 com suporte ao processamento das mensagens ISO8583.
O site do projeto é: ISO8583 Python Library
Neste site é possível:Download e instalação
A instalação é bem simples:
Ao descompactar o arquivo, pode-se observar as seguintes pastas:Estrutura da biblioteca e documentação
A biblioteca ISO8583py está organizada basicamente em duas partes:
Maiores informações sobre estas classes e métodos podem ser obtidas através:Exemplo - Uso básico
Mensagem de Echo:
Para efetivamente usar a biblioteca, necessitamos realizar os "imports" iniciais:
from ISO8583.ISOErrors import *
Com estas duas linhas, estamos preparados para trabalhar com os pacotes ISO8583 diretamente.
Agora a criação da mensagem:
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')
Simples, como Python.
Caso queira obter o ASCII que representa o pacote, basta chamar o método showRawIso(). Por exemplo, iso.showRawIso() irá resultar em:
08002000010000c0000230000004511111111222222222222222022This is a Test Message
Caso queira obter os valores dos bits da mensagem, utiliza-se o método showIsoBits(). Por exemplo, iso.showIsoBits() irá resultar em:
Bit[3] of type N has limit 6 = 300000
Bit[24] of type N has limit 3 = 045
Bit[41] of type N has limit 8 = 11111111
Bit[42] of type A has limit 15 = 222222222222222
Bit[63] of type LLL has limit 999 = 022This is a Test Message
Já se quiser ter maior controle sobre o que quer do pacote, pode-se utilizar o método getBitsAndValues(), que retorna um vetor com as informações:
Por exemplo:
for v in vet:
print 'Bit %s of type %s has value = %s' % (v['bit'],v['type'],v['value'])
Irá resultar em:
Bit 3 of type N has value = 300000
Bit 24 of type N has value = 045
Bit 41 of type N has value = 11111111
Bit 42 of type A has value = 222222222222222
Bit 63 of type LLL has value = 022This is a Test MessageExemplo - Uso avançado
Para quem quiser ter uma visão mais geral da biblioteca em uma aplicação ciente/servidor, pode acessar o código de exemplo de uma aplicação de Echo, que utiliza o pacote de exemplo.
Este exemplo completo, bem como outros, presentes tanto no diretório "examples" quanto na página de exemplos do iso8583py.Conclusão
A ISO8583py é um biblioteca capaz de nos fornecer uma abstração adequada para o processamento simples de mensagens no formato ISO8583 em Python.
Fácil de instalar e repleta de documentação pode ser utilizada sem grandes mistérios.
quarta-feira, 24 de novembro de 2010
ISO8583py - Utilizando Python para o tratamento de mensagens ISO8583
O download da versão 1.0 da biblioteca pode ser feita através do link:ISO8583 Module-1.0.zip
Para ilustrar um exemplo básico, com a criação de uma mensagem ISO8583 com esta biblioteca, vamos retomar o exemplo.
from ISO8583.ISO8583 import ISO8583
iso = ISO8583()
vet = iso.getBitsAndValues()
0 comentários:
Postar um comentário