You are on page 1of 24

SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

MANUAL

DE

UTILIZAO

PINPAD

SEGURO

"Este documento possui informaes e tecnologia de propriedade exclusiva da Software Express, no podendo, a
no ser quando de autorizao previa e escrita fornecida unicamente pela Software Express, ser reproduzido,
utilizado ou divulgado por qualquer meio ou modo total ou parcialmente para outro fim que no seja o de servir de
interface entre um sistema de processamento de dados e o SiTef".

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 1


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

NDICE

1. INTERFACES DE COMUNICAO COM O PINPAD SEGURO................................................................3


2. INTERFACE PARA WINDOWS.......................................................................................................................3
2.1 ENTRYPOINTS.....................................................................................................................................................3
2.1.1 SESolicitaSenhaDedicado...............................................................................................................................................3
2.1.2 SEObtemSenha...............................................................................................................................................................4
2.1.3 SESolicitaConf................................................................................................................................................................4
2.1.4 SEObtemConf.................................................................................................................................................................5
2.1.5 SEMsgPadrao..................................................................................................................................................................5
2.1.6 SESolicitaTrilha1_2........................................................................................................................................................5
2.1.7 SESolicitaTrilhas.............................................................................................................................................................6
2.1.8 SEObtemTrilha1_2.........................................................................................................................................................6
2.1.9 SEFinalizar......................................................................................................................................................................6
2.2 CONFIGURANDO O PINPAD NO WINDOWS........................................................................................................7
2.2.1 Arquivo configurao do PinPad - Windows..................................................................................................................7
2.2.2 PinPad Verifone - Windows............................................................................................................................................7
2.2.3 PinPad Dione - Windows................................................................................................................................................7
2.2.4 PinPad Schlumberger - Windows...................................................................................................................................8
2.3 ARQUIVOS NECESSRIO PARA APLICAES EM 16 BITS.....................................................................................8
2.4 ARQUIVOS NECESSRIO PARA APLICAES EM 32 BITS.....................................................................................8
2.5 EXEMPLO DE UTILIZAO EM VB......................................................................................................................9
3. INTERFACE PARA DOS..................................................................................................................................11
3.1 APIS DA TSR - SITPIN..................................................................................................................................11
3.1.1 CMD_SOLICITA_CONFIRMACAO..........................................................................................................................11
3.1.2 CMD_OBTEM_CONFIRMACAO..............................................................................................................................12
3.1.3 CMD_FINALIZA_SOLICITACAO.............................................................................................................................12
3.1.4 CMD_SOLICITA_SENHA..........................................................................................................................................12
3.1.5 CMD_OBTEM_SENHA..............................................................................................................................................13
3.1.6 CMD_MSG_PADRAO.................................................................................................................................................13
3.1.7 CMD_Solicita_Trilha1_2..............................................................................................................................................13
3.1.8 CMD_Solicita_Trilhas..................................................................................................................................................14
3.1.9 CMD_Obtem_Trilha1_2...............................................................................................................................................14
3.2 CONFIGURANDO O PINPAD PARA DOS...........................................................................................................15
3.2.1 PinPad Verifone - DOS.................................................................................................................................................15
3.2.2 PinPad Dione - DOS.....................................................................................................................................................16
3.3 ARQUIVOS NECESSRIO PARA APLICAES DOS.............................................................................................16
3.4 PROCEDIMENTOS PARA APLICAES DOS.......................................................................................................16
3.5 EXEMPLO DE UTILIZAO DA TSR PARA O PINPAD......................................................................................17
4. TABELA STATUS DE RETORNO...................................................................................................................23
5. PINPADS DISPONVEIS...................................................................................................................................24
6. BIBLIOGRAFIA................................................................................................................................................24

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 2


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

1. Interfaces de comunicao com o PINPAD Seguro

O PINPAD Seguro um dispositivo que aceita a entrada de senhas pessoais, que por motivo de
segurana criptografa os nmeros digitados e os envia a um dispositivo conectado. O PIN serve como
uma assinatura eletrnica para as transaes de dbito.
A interface fsica entre o PINPAD e o mdulo de controle feita atravs de uma porta serial definida
pelo usurio.

2. Interface para Windows

Para facilitar o controle e obteno de senhas criptografadas do PINPAD sob ambiente WINDOWS
uma interface foi desenvolvida, na forma de uma DLL (Dinamic Link Library) nomeada SITPIN quando
uso de executveis 16 bits e SITPIN32 quando executveis 32 bits.
O modulo SITPIN incorpora todas as funes bsicas referentes a programao do PINPAD e sua
interface fsica (Conectores). Atravs do SITPIN o usurio poder obter informaes de senha
criptografada ou mesmo mostrar mensagens informativas ao usurio.

2.1 Entrypoints

As APIs disponibilizadas pela DLL so:

2.1.1 SESolicitaSenhaDedicado

Solicita a digitao da senha ao usurio, podendo ser enviada tambm uma mensagem especifica.

Nome Tipo Tam, Descrio Domnio E/S


Trilha2 alfanumrico 40 Trilha2 do carto E
Mensagem alfanumrico 16 Mensagem a ser E
mostrada no display
do PIN
Working Key alfanumrico 20 Campo obtido E
atravs do servio 3
quando do retorno
da transao de
consulta de bins.
Status alfanumrico 2 Retorno da funo 00= OK S

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 3


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

2.1.2 SEObtemSenha

Obtm a senha criptografada digitada pelo usurio. Esta funo deve ser chamada at que o
parmetro status retorne 00 ou um status de erro (Cdigo diferente de 00 e 99). Quando o status
retornado for igual a 99 indicada que senha ainda no foi digitada pelo usurio. Um controle de
timeout poder ser realizado enquanto a funo estiver retornando 99.

Nome Tipo Tam, Descrio Domnio E/S


Senha alfanumrico 20 Tamanho senha (02) S
Senha Cript. (at
18).Quando enviar a
senha ao SiTef
excluir os dois bytes
de tamanho.
Status alfanumrico 2 Retorno da funo 00 = OK S
01a 98 =
erro
99 =
rechamar

2.1.3 SESolicitaConf

Solicita ao usurio a confirmao de uma operao.

Nome Tipo Tam, Descrio Domnio E/S


Mensagem alfanumrico 16 Mensagem a ser E
mostrada no display
do PIN
Status alfanumrico 2 Retorno da funo 00 = OK S
01a 98 =
erro
99 =
rechamar

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 4


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

2.1.4 SEObtemConf

Obtm do usurio a confirmao. Esta funo deve ser chamada at que o parmetro status retorne
00 ou um erro ocorra (Status diferente de 00 e 99). Se desejado um timeout poder ser controlado
enquanto a funo estiver retornando 99.

Nome Tipo Tam, Descrio Domnio E/S


Status alfanumrico 2 Retorno da funo 00 = OK S
01 a 98 =
erro
99 =
rechamar

2.1.5 SEMsgPadrao

Estabelece uma mensagem padro para o display do PINPAD. Esta mensagem continuar a ser
mostrada quando o PINPAD no estiver sendo utilizado.

Nome Tipo Tam, Descrio Domnio E/S


Mensagem alfanumrico 16 Mensagem a ser E
mostrada no display
do PIN
Status alfanumrico 2 Retorno da funo 00 = OK S
01 a 99 =
erro

2.1.6 SESolicitaTrilha1_2

Solicita ao usurio a leitura da trilha1 e da trilha2 do carto. Esta funo no permitida para novas
homologaes.

Nome Tipo Tam, Descrio Domnio E/S


Status alfanumrico 2 Retorno da funo 00 = OK S
01a 98 =
erro
99 =
rechamar

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 5


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

2.1.7 SESolicitaTrilhas

Solicita ao usurio a leitura da trilha1 e da trilha2 do carto. Esta funo obrigatria para as novas
homologaes.

Nome Tipo Tam, Descrio Domnio E/S


Modalidade Alfanumrico 1 Informa a 1 Crdito E
modalidade da 2 Dbito
transao
(dbito/crdito)
Status alfanumrico 2 Retorno da funo 00 = OK S
01a 98 =
erro
99 =
rechamar

2.1.8 SEObtemTrilha1_2

Obtm a leitura realizada da trilha1 e da trilha2 do carto. Esta funo deve ser chamada at que o
parmetro status retorne 00 ou um erro ocorra (Status diferente de 00 e 99). Se desejado um timeout
poder ser controlado enquanto a funo estiver retornando 99.

Nome Tipo Tam, Descrio Domnio E/S


Trilha1 alfanumrico 80 Trilha1 Magntica S
do carto.
Trilha2 alfanumrico 40 Trilha2 Magntica S
do carto.
Status alfanumrico 2 Retorno da funo 00 = OK S
01a 98 =
erro 99 =
rechamar

2.1.9 SEFinalizar

Libera as interrupes e porta de comunicao com o PINPAD. Esta funo dever ser utilizada
sempre que o sistema finalizar uma operao que solicitar uma interveno do usurio. Sendo que, a no
finalizao dos mdulos de comunicao poder causar danos ao sistema.

Esta funo no necessita de parmetros.

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 6


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

2.2 Configurando o PINPAD no Windows

A configurao do PINPAD obtida a partir de um arquivo tipo (.INI). Este arquivo deve residir no
diretrio raiz do sistema operacional (Ex. \WINDOWS).

2.2.1 Arquivo configurao do PinPad - Windows

Nome do Arquivo : PPVISA.INI

Contedo para Interface de 32 bits:

[General]
Driver32= path\(dll do fabricante do Pin)
BINFile=path\ppvisa.bin

[VFN]
Config = PortaSerialxxxxxxxxxx

[DIO]
Port=1
SAM=1

[SLB]
Port=2
SAM=1

2.2.2 PinPad Verifone - Windows

Utilizar seo [VFN]


Portaserial = nmero da porta serial do microcomputador (1 a n)
Xxxxxxxxx = 201 quando verso do PinPad for inferior a 000825
EEVC quando verso do PinPad for de 000825 a 0001120
CHIP quando a verso do PinPad for 0001121 ou superior.

Caso no seja especificado assume-se o default 1CHIP.

2.2.3 PinPad Dione - Windows

Utilizar seo [DIO]


Port = nmero da porta serial do microcomputador (1 a n)
SAM = nmero do slot onde se encontra instalado o modulo SAM

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 7


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

2.2.4 PinPad Schlumberger - Windows

Utilizar seo [SLB]


Port = nmero da porta serial do microcomputador (1 a n)
SAM = nmero do slot onde se encontra instalado o modulo SAM

2.3 Arquivos necessrio para aplicaes em 16 bits

Arquivo\PinPad DIONE SCHLUMBERGER VERIFONE


SITPIN.DLL X X X
PPVISA.INI X X X
PPVISA.BIN X X X
PPW16.DLL X X X
PPDIOW16.DLL X
PPSLBW16.DLL X
PPVFNW16.DLL X

2.4 Arquivos necessrio para aplicaes em 32 bits

Arquivo\PinPad DIONE SCHLUMBERGER VERIFONE


SITPIN32.DLL X X X
PPVISA.INI X X X
PPVISA.BIN X X X
PPW32.DLL X X X
PPDIOW32.DLL X
PPSLBW32.DLL X
PPVFNW32.DLL X

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 8


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

2.5 Exemplo de utilizao em VB

Declaraes

Public Declare Sub SESolicitaSenhaDedicado Lib "c:\winnt\sitpin32.dll" Alias


"_SESolicitaSenhaDedicado" (ByVal Trilha2Pin As String, ByVal MsgEnvPin As String, ByVal
work As String, ByVal Status As String)

Public Declare Sub SEObtemSenha Lib "c:\winnt\sitpin32.dll" Alias "_SEObtemSenha" (ByVal


SenhaPin As String, ByVal Status As String)

Public Declare Sub SESolicitaConf Lib "c:\winnt\sitpin32.dll" Alias "_SESolicitaConf" (ByVal


MsgPin As String, ByVal Status As String)

Public Declare Sub SEObtemConf Lib "c:\winnt\sitpin32.dll" Alias "_SEObtemConf" (ByVal


Status As String)

Public Declare Sub SEMsgPadrao Lib "c:\winnt\sitpin32.dll" (ByVal MsgEnv As String, ByVal
Status As String)

Public Declare Sub SEObtemTrilha1_2 Lib "c:\winnt\sitpin32.dll" (ByVal Trilha1Pin As String,


ByVal Trilha2Pin As String, ByVal Status As String)

Public Declare Sub SESolicitaTrilha1_2 Lib "c:\winnt\sitpin32.dll" (ByVal Status As String)

Public Declare Sub SEFinalizar Lib "c:\winnt\sitpin32.dll" ()

Exemplo da Leitura da Trilha2

Sub le_cartao_magnetico()

status_cartao_mag = String(2, " ")


result = 0
HoraInicial = Timer
Do Until status_cartao_mag = "00"
SESolicitaTrilha1_2 status_cartao_mag
If (status_cartao_mag = "99") Or (status_cartao_mag < "00") Then
HoraAtual = Timer
If HoraAtual - HoraInicial > TimeOut Then
testa_retorno_pin
Exit Sub
End If
Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 9
2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

Else
testa_retorno_pin
If status_cartao_mag = "00" Then
Exit Do
Else
Exit Sub
End If
End If
Loop

Trilha1_cartao_mag = String(80, " ")


Trilha2_cartao_mag = String(40, " ")
status_cartao_mag = String(2, " ")
result = 0
HoraInicial = Timer
mensagem_display = "PASSE O CARTO"
Do Until status_cartao_mag = "00"
SEObtemTrilha1_2 trilha1_cartao_mag, trilha2_cartao_mag, status_cartao_mag
If (status_cartao_mag = "99") Then
HoraAtual = Timer
If HoraAtual - HoraInicial > TimeOut Then
testa_retorno_pin
Exit Sub
End If
Else
mensagem_display = ""
testa_retorno_pin
Exit Do
End If
Loop

End Sub

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 10


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

3. Interface para Dos

Visando facilitar a programao da interface com o PINPAD no ambiente DOS, foi desenvolvida
uma TSR, que efetua o controle e a obteno de senhas criptografadas. O nome da TSR SITPIN.
O modulo SITPIN incorpora todas as funes bsicas referentes a programao do PINPAD e sua
interface fsica (Conectores). Atravs do SITPIN o usurio poder obter informaes de senha
criptografada ou mesmo mostrar mensagens informativas ao usurio. A interface fsica entre o PINPAD e
o mdulo de controle feita atravs de porta serial definida pelo usurio.

3.1 APIs da TSR - SITPIN

SITPIN disponibiliza APIs para as seguintes funes :


Solicitao de confirmao do usurio,
Obtm confirmao do usurio,
Finaliza solicitao ao usurio,
Solicitao de senha ao usurio,
Obtm senha ao usurio,
Envia mensagem padro,
Solicita leitura da trilha2,
Obtm leitura da trilha2.

3.1.1 CMD_SOLICITA_CONFIRMACAO

Solicita ao usurio a confirmao de uma operao.

Nome Tipo Tam, Descrio Domnio E/S


Mensagem alfanumrico 16 Mensagem a ser E
mostrada no display
do PIN
Status alfanumrico 2 Retorno da funo 00= OK S

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 11


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

3.1.2 CMD_OBTEM_CONFIRMACAO

Obtm do usurio a confirmao de uma operao. Esta funo deve ser chamada at que o
parmetro status retorne 00 ou um status de erro (status diferente de 00 e 99). Se desejado um
timeout poder ser controlado enquanto a funo estiver retornando 99.

Nome Tipo Tam, Descrio Domnio E/S


Status alfanumrico 2 Retorno da funo 00 = OK S
01a 98 =
erro
99 =
rechamar

3.1.3 CMD_FINALIZA_SOLICITACAO

Esta funo no necessita de parmetros e existe apenas para manter compatibilidade com verses
anteriores.

3.1.4 CMD_SOLICITA_SENHA

Solicita ao usurio a digitao da senha.

Nome Tipo Tam, Descrio Domnio E/S


Trilha2 alfanumrico 40 Trilha 2 do carto E
Mensagem alfanumrico 32 Mensagem a ser E
apresentada no
display do PINPAD
WorkingKey alfanumrico 20 Chave de E
criptografia obtida
no servio 3 do
SiTef.
Status alfanumrico 2 Retorno da funo 00 = OK S
01 a 98 =
erro

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 12


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

3.1.5 CMD_OBTEM_SENHA

Obtm a senha digitada pelo usurio, de forma criptografada.


Esta funo deve ser chamada at que o parmetro Status retorne OK ou um cdigo de erro diferente
de 99. Se desejar um timeout, este dever ser controlado pela aplicao, ficando em loop de chamadas
da funo enquanto no existirem dados ou at ultrapassar o tempo estipulado.

Nome Tipo Tam, Descrio Domnio E/S


Senha alfanumrico 20 Tamanho senha (02) S
Senha Cript. (at
18). Quando enviar a
senha ao SiTef
excluir os dois bytes
de tamanho.
Status alfanumrico 2 Retorno da funo 00 = OK S
01 a 99 =
erro

3.1.6 CMD_MSG_PADRAO

Estabelece uma mensagem padro para o display do PINPAD. Esta mensagem continuar a ser
mostrada quando o PINPAD no estiver sendo utilizado.

Nome Tipo Tam, Descrio Domnio E/S


Mensagem alfanumrico 16 Mensagem a ser E
mostrada no display
do PIN
Status alfanumrico 2 Retorno da funo 00 = OK S
01 a 99 =
erro

3.1.7 CMD_Solicita_Trilha1_2

Solicita ao usurio a leitura da trilha1 e da trilha2 do carto. Esta funo no permitida para novas
homologaes.

Nome Tipo Tam, Descrio Domnio E/S


Status alfanumrico 2 Retorno da funo 00 = OK S
01a 98 =
erro
99 =
rechamar

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 13


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

3.1.8 CMD_Solicita_Trilhas

Solicita ao usurio a leitura da trilha1 e da trilha2 do carto. Esta funo obrigatria para as novas
homologaes.

Nome Tipo Tam, Descrio Domnio E/S


Modalidade Alfanumrico 1 Informa a 1 Crdito E
modalidade da 2 Dbito
transao
(dbito/crdito)
Status alfanumrico 2 Retorno da funo 00 = OK S
01a 98 =
erro
99 =
rechamar

3.1.9 CMD_Obtem_Trilha1_2

Obtm a leitura realizada da trilha1 e da trilha2 do carto. Esta funo deve ser chamada at que o
parmetro status retorne 00 ou um erro ocorra (Status diferente de 00 e 99). Se desejado um timeout
poder ser controlado enquanto a funo estiver retornando 99.

Nome Tipo Tam, Descrio Domnio E/S


Trilha1 alfanumrico 80 Trilha1 Magntica S
do carto.
Trilha2 alfanumrico 40 Trilha2 Magntica S
do carto.
Status alfanumrico 2 Retorno da funo 00 = OK S
01a 98 =
erro 99 =
rechamar

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 14


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

3.2 Configurando o PINPAD para DOS


3.2.1 PinPad Verifone - DOS

A configurao dever ser realizada no arquivo CONFIG.SYS

DEVICE[HIGH] = PPFVN.SYS [/Config=<strcfg>] [/Esc=<scancode>]

onde: <strcfg> = string de configuracao do PIN-pad no formato "pmmm.."


p = porta serial do PIN-pad (1 ou 2).
mmm.. = verso do emulador carregado no PIN-pad:
"CHIP" = quando verso do PinPad for 001121 ou superior
"EEVC" = quando verso do PinPad for de 000825 0001120
"201" = quando verso do PinPad for inferior a 000825

<scancode> = "scan code" de uma tecla a ser utilizada para


cancelamento das funcoes blocantes.

Exemplo com o PinPad conectado a COM2, com verso para CHIP e tecla de cancelamento [F1]:

DEVICE = PPFVN.SYS /Config=2CHIP /Esc=59

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 15


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

3.2.2 PinPad Dione - DOS

A configurao dever ser realizada no arquivo CONFIG.SYS

DEVICE[HIGH] = PPDIO.SYS [/Port=<port#>] [/SAM=<slot#>] [/Esc=<scancode>]

onde: <port#> = numero da porta serial (1 ou 2, default=1)


<slot#> = numero do soquete do SAM VISA (1 a 3, default=1)

<scancode> = "scan code" de uma tecla a ser utilizada para cancelamento das funes blocantes.

Exemplo com o PinPad conectado a COM2 e tecla de cancelamento [F1] :

DEVICE = PPDIO.SYS /Port=2 /SAM=3 /Esc=59

3.3 Arquivos necessrio para aplicaes DOS

Arquivo\PinPad DIONE VERIFONE


SITPIN.EXE X X
PPDIO.SYS X
PPVFN.SYS X

3.4 Procedimentos para aplicaes DOS

- Carregar o programa PPxxx.SYS no arquivo CONFIG.SYS conforme PinPad a ser


utilizado;
- Executar o programa SITPIN.EXE.

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 16


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

3.5 Exemplo de utilizao da TSR para o PINPAD

Programa Teste.c

#include <stdlib.h>
#include <dos.h>
#include "trata.h"

typedef unsigned long ulong;


static char far *lpParam;

int PinMsgPadrao ( );
int PinConfirmacao ( );
int PinSenha (char *pSenha, char *pWorkingKey );

void EnviaCmdTsr ( int iCmd, void *pDadosApi);

ulong ReadTime();
void W_NSeconds (ulong l);
void W_NMilesecs (ulong l);

/*----------------------------- PROTOTYPES ---------------------------------*/


void main ( void)
{
int
i
;
char
Senha [22]
,WorkingKey [25]
;
PinMsgPadrao ( );

i = PinConfirmacao ( );
switch (i) {

case 0:
printf ("\n O usuario confirmou");
break;
case 9:
printf ("\n o usuario cancelou");
break;
default:
printf ("\n Erro na solicitacao %d ", i);
Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 17
2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

strcpy (WorkingKey, "99123456789012345678");


i = PinSenha ( Senha, WorkingKey );
if (i == 0 ) {
Senha[20] = 0;
printf ("\nSenha ->%s", Senha);
}
}

int PinMsgPadrao ( )
{
DADOSAPI_MSG_PADRAO ApiMsgPadrao ;

strncpy (ApiMsgPadrao.inMsg, "Software Express", 16);

EnviaCmdTsr ( CMD_MSG_PADRAO, &ApiMsgPadrao);

printf ("\nstatus eh ->%c%c", ApiMsgPadrao.Status[0], ApiMsgPadrao.Status[1]);

return ( (ApiMsgPadrao.Status[0] - '0') + (ApiMsgPadrao.Status[1] - '0') );


}

int PinConfirmacao ( )
{

DADOSAPI_CONFIRMACAO ApiConfirmacao;
DADOSAPI_OBTEM_CONF ApiObtemConf;
int
i= 0
;
/*
* Inicializando os parametros da chamada
*/

strnset (ApiConfirmacao.inMsg, ' ', sizeof (ApiConfirmacao.inMsg));


strncpy (ApiConfirmacao.inMsg, "Confirma ", 16);

EnviaCmdTsr ( CMD_SOLICITA_CONFIRMACAO, &ApiConfirmacao);

/*
* Aguardando a Mensagem Por aproximadamente 30s
*/
Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 18
2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

do {

EnviaCmdTsr (CMD_OBTEM_CONFIRMACAO, &ApiObtemConf);


W_NSeconds (1L);
i ++;
} while ((strncmp(ApiObtemConf.Status, "99", 2) == 0) && ( i < 30));

EnviaCmdTsr ( CMD_FINALIZA_SOLICITACAO, " ");

/* retornos
* 00 -> confirmacao do usuario
* 09 -> Cancelamento
* 99 -> Contitua Pesquisa , nada foi retornado pelo pinpad
* xx -> Erro ver tabela de erros
*/
printf ("\nstatus eh ->%c%c", ApiObtemConf.Status[0], ApiObtemConf.Status[1]);
return ((ApiObtemConf.Status[0] - '0') + (ApiObtemConf.Status[1] - '0'));
}

int PinSenha (char *pSenha, char *pWorkingKey )


{

DADOSAPI_SENHA ApiSenha;
DADOSAPI_OBTEM_SENHA ApiObtemSenha;
int
i= 0
;
/*
* Inicializando os parametros da chamada
*/

strnset (ApiSenha.inMsg, ' ', sizeof (ApiSenha.inMsg));


strncpy (ApiSenha.inMsg, "Informe A Senha SiTef ", TAM_MSG32);
strcpy (ApiSenha.inTrilha2, "4341123456789012=120301010000000000000");
memcpy (ApiSenha.inWorkingKey, pWorkingKey, TAM_WORKINGKEY);

EnviaCmdTsr ( CMD_SOLICITA_SENHA, &ApiSenha);

/*
* Aguardando a Mensagem Por aproximadamente 30s
*/
do {
Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 19
2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

EnviaCmdTsr (CMD_OBTEM_SENHA, &ApiObtemSenha);


W_NSeconds (1L);
i ++;

// status = 99 continua pesquisa

} while ((strncmp(ApiObtemSenha.Status, "99", 2) == 0) && ( i < 30));

EnviaCmdTsr ( CMD_FINALIZA_SOLICITACAO, " ");

if (strncmp(ApiObtemSenha.Status, "00", 2) == 0)
memcpy (pSenha, ApiObtemSenha.Senha, TAM_SENHA);
else
memset (pSenha, '0', TAM_SENHA);

/* retornos
* 00 -> Usuario informou a senha
* 99 -> Contitua Pesquisa , nada foi retornado pelo pinpad
* xx -> Erro ver tabela de erros
*/
printf ("\nstatus eh ->%c%c", ApiObtemSenha.Status[0], ApiObtemSenha.Status[1]);
return ((ApiObtemSenha.Status[0] - '0') + (ApiObtemSenha.Status[1] - '0'));
}

void EnviaCmdTsr ( int iCmd, void *pDadosApi)


{
struct SREGS sregs;
union REGS regs;

lpParam = pDadosApi;
regs.x.bx = FP_OFF (lpParam);
sregs.es = FP_SEG (lpParam);
regs.x.ax = iCmd;

int86x (INT_PIN, &regs, &regs, &sregs);


}

ulong ReadTime()
{
ulong milleseconds;
union REGS r;
r.h.ah = 0x2c;
int86 (0x21,&r,&r);
Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 20
2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

milleseconds = (long) r.h.dl * 10; // dl :centesimos


milleseconds += (long) r.h.dh * 1000; // dh :segundos
milleseconds += (long) r.h.cl * 60000L; // cl :minutos
milleseconds += (long) r.h.ch * 3600000L; // ch :horas
return ( milleseconds );
}

void W_NSeconds (ulong l)


{
ulong TimeTow;
TimeTow = ReadTime () + (l * 1000L) ; /* readtime retorna em milesegundos*/
while (ReadTime () < TimeTow);
}

void W_NMilesecs (ulong l)


{
ulong TimeTow;
TimeTow = ReadTime () + l ; /* ReadTime retorna em milesegundos*/
while (ReadTime () < TimeTow);
}

Include Trata.h

#ifndef _TRATA_H
#define _TRATA_H

#define INT_PIN 0x65

#define CMD_CONFIGURA 1
#define CMD_FINALIZA_SOLICITACAO 2
#define CMD_SOLICITA_SENHA 3
#define CMD_SOLICITA_CONFIRMACAO 4
#define CMD_SOLICITA_TRILHA1_2 6
#define CMD_SOLICITA_TRILHAS 7

#define CMD_OBTEM_SENHA 13
#define CMD_OBTEM_CONFIRMACAO 14
#define CMD_OBTEM_TRILHA1_2 16
#define CMD_MSG_PADRAO 20

/*
Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 21
2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

* Definicao das estruturas da API


*
*/
#define TAM_MSG32 32
#define TAM_MSG16 16
#define TAM_STATUS 2
#define TAM_SENHA 20
#define TAM_TRILHA1 80
#define TAM_TRILHA2 40
#define TAM_WORKINGKEY 20

typedef struct
{
char inMsg [TAM_MSG16];
char Status [TAM_STATUS];
} *LPDADOSAPI_MSG_PADRAO, DADOSAPI_MSG_PADRAO;

typedef struct
{
char Status [TAM_STATUS];
} *LPDADOSAPI_OBTEM_CONF, DADOSAPI_OBTEM_CONF;

typedef struct
{
char Senha [TAM_SENHA];
char Status [TAM_STATUS];
} *LPDADOSAPI_OBTEM_SENHA, DADOSAPI_OBTEM_SENHA;

typedef struct
{
char inMsg [TAM_MSG16];
char Status [TAM_STATUS];
} *LPDADOSAPI_CONFIRMACAO, DADOSAPI_CONFIRMACAO;

typedef struct
{
char inTrilha2 [TAM_TRILHA2];
char inMsg [TAM_MSG32];
char inWorkingKey[TAM_WORKINGKEY];
char Status [TAM_STATUS];

} *LPDADOSAPI_SENHA, DADOSAPI_SENHA;

typedef struct
Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 22
2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

{
unsigned char inPorta ;
unsigned char tpPinPad;
char Status [TAM_STATUS];
} *LPDADOSAPI_CONFIG, DADOSAPI_CONFIG;

#endif

4. Tabela Status de retorno


Cdigo Descrio
00 Solicitao atendida
01 Erro ao inicializar o PINPAD
02 Erro ao inicializar a porta de comunicao. Possivelmente, a porta de
comunicao esta sendo utilizada ou alocada para outro recurso.
03 Erro ao inicializar as funes do PINPAD
05 O cdigo da rede solicitada no corresponde a uma Masterkey disponvel
permitida.
08 Aconteceu um erro de comunicao com o PINPAD ao solicitar a senha. Tente
outra vez.
09 Usurio pressionou a tecla CLEAR.
12 Falha na comunicao com o PINPAD.
13 Erro ao iniciar a leitura do carto.
14 O PINPAD no dispe de leitor de cartes.
15 Porta de comunicao invlida.
16 Tipo de PINPAD invalido.
17 PINPAD no configurado.
18 Rede invlida.
50 Arquivo externo ausente (dll, etc..)
51 Erro ao acessar o PinPad
52 Erro na capturar de Trilha/Chip
99 Aps a solicitao de uma entrada do usurio, o modulo de PINPAD fica
aguardando os dados obtidos do usurio pelo PINPAD. Com este cdigo de
resposta o modulo indica ao programa cliente que o PINPAD ainda no
repassou os dados obtidos do usurio. Sendo assim, o programa cliente poder
decidir se continuar a aguardar os dados chamando a mesma funo
novamente ou se cancelara a solicitao devido um timeout ou deciso do
usurio.

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 23


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - Soluo inteligente para Transferncia Eletrnica de Fundos

5. PINPADs disponveis

Modelo Modelo
DIONE Solo 2005
SCHLUMBERGER Magic 1800
VERIFONE SC552

6. Bibliografia
- Visa Chip Migration Biblioteca para PinPad Especificao Detalhada (JAN/2001)

Especificao Tcnica Uso PinPad com CHIP - Verso 3.00 Pgina - 24


2001, Software Express Informtica
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001

You might also like