ISO8583py - Utilizando Python para o tratamento de mensagens ISO8583

ISO8583 é um padrão de mensagens em formato ASCII para ser utilizado na troca de informações financeiras, como entre aqueles terminais de cartão de crédito e as operadoras. Em Python, o processamento adequado da mensagem pode ser feito com a biblioteca ISO8583py descrita neste artigo.

[ Hits: 27.179 ]

Por: Igor V. Custódio em 09/04/2009


Exemplo - Uso básico



Para ilustrar um exemplo básico, com a criação de uma mensagem ISO8583 com esta biblioteca, vamos retomar o exemplo.

Mensagem de Echo:
  • MTI: 0800
  • Bit 3 conteúdo 300000
  • Bit 24 conteúdo 045
  • Bit 41 conteúdo 11111111
  • Bit 42 conteúdo 222222222222222
  • Bit 63 conteúdo This is a Test Message

Para efetivamente usar a biblioteca, necessitamos realizar os "imports" iniciais:

from ISO8583.ISO8583 import ISO8583
from ISO8583.ISOErrors import *

Com estas duas linhas, estamos preparados para trabalhar com os pacotes ISO8583 diretamente.

Agora a criação da mensagem:

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')

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:
  • Tipo
  • Número do bit
  • Conteúdo

Por exemplo:

vet = iso.getBitsAndValues()
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 Message

Exemplo - 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.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Download e instalação
   3. Exemplo - Uso básico
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Python: automatizando a extração de informações na web com expressões regulares

paramiko - Python + SSH

Port Scanner com Python

Interagindo com servidores HTTP com Python

Reconhecimento de placas de veículos com OpenALPR

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts