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.651 ]

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

Construindo um portscanner TCP com Python

Download de Arquivos com Verificação do Hash SHA 256

Robótica com Android e Arduino

Como criar um keylogger em Python

Como criar um bot para curtir e comentar perfis do Instagram

  
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