Você está na página 1de 24

SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

MANUAL

DE

UTILIZAÇÃO

PINPAD

SEGURO

"Este documento possui informações e tecnologia de propriedade exclusiva da Software Express, não podendo, a
não ser quando de autorização 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 não seja o de servir de
interface entre um sistema de processamento de dados e o SiTef".

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 1


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

ÍNDICE

1. INTERFACES DE COMUNICAÇÃO 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 configuração 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 NECESSÁRIO PARA APLICAÇÕES EM 16 BITS.....................................................................................8
2.4 ARQUIVOS NECESSÁRIO PARA APLICAÇÕES EM 32 BITS.....................................................................................8
2.5 EXEMPLO DE UTILIZAÇÃO EM VB......................................................................................................................9
3. INTERFACE PARA DOS..................................................................................................................................11
3.1 API’S 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 NECESSÁRIO PARA APLICAÇÕES DOS.............................................................................................16
3.4 PROCEDIMENTOS PARA APLICAÇÕES DOS.......................................................................................................16
3.5 EXEMPLO DE UTILIZAÇÃO DA TSR PARA O PINPAD......................................................................................17
4. TABELA STATUS DE RETORNO...................................................................................................................23

5. PINPADS DISPONÍVEIS...................................................................................................................................24

6. BIBLIOGRAFIA................................................................................................................................................24

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 2


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

1. Interfaces de comunicação com o PINPAD Seguro

O PINPAD Seguro é um dispositivo que aceita a entrada de senhas pessoais, que por motivo de
segurança criptografa os números digitados e os envia a um dispositivo conectado. O PIN serve como
uma assinatura eletrônica para as transações de débito.
A interface física entre o PINPAD e o módulo de controle é feita através de uma porta serial definida
pelo usuário.

2. Interface para Windows

Para facilitar o controle e obtenção 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 executáveis 16 bits e SITPIN32 quando executáveis 32 bits.
O modulo SITPIN incorpora todas as funções básicas referentes a programação do PINPAD e sua
interface física (Conectores). Através do SITPIN o usuário poderá obter informações de senha
criptografada ou mesmo mostrar mensagens informativas ao usuário.

2.1 Entrypoints

As API´s disponibilizadas pela DLL são:

2.1.1 SESolicitaSenhaDedicado

Solicita a digitação da senha ao usuário, podendo ser enviada também uma mensagem especifica.

Nome Tipo Tam, Descrição Domínio E/S


Trilha2 alfanumérico 40 Trilha2 do cartão E
Mensagem alfanumérico 16 Mensagem a ser E
mostrada no display
do PIN
Working Key alfanumérico 20 Campo obtido E
através do serviço ´3
´ quando do retorno
da transação de
consulta de bins.
Status alfanumérico 2 Retorno da função ‘00’= OK S

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 3


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

2.1.2 SEObtemSenha

Obtém a senha criptografada digitada pelo usuário. Esta função deve ser chamada até que o
parâmetro status retorne ‘00’ ou um status de erro (Código diferente de ‘00’ e ‘99’). Quando o status
retornado for igual a ‘99’ indicada que senha ainda não foi digitada pelo usuário. Um controle de
timeout poderá ser realizado enquanto a função estiver retornando ‘99’.

Nome Tipo Tam, Descrição Domínio E/S


Senha alfanumérico 20 Tamanho senha (02) S
Senha Cript. (até
18).Quando enviar a
senha ao SiTef
excluir os dois bytes
de tamanho.
Status alfanumérico 2 Retorno da função ’00’ = OK S
‘01’a ‘98’ =
erro
‘99’ =
rechamar

2.1.3 SESolicitaConf

Solicita ao usuário a confirmação de uma operação.

Nome Tipo Tam, Descrição Domínio E/S


Mensagem alfanumérico 16 Mensagem a ser E
mostrada no display
do PIN
Status alfanumérico 2 Retorno da função ’00’ = OK S
‘01’a ‘98’ =
erro
‘99’ =
rechamar

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 4


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

2.1.4 SEObtemConf

Obtém do usuário a confirmação. Esta função deve ser chamada até que o parâmetro status retorne
‘00’ ou um erro ocorra (Status diferente de ‘00’ e ‘99’). Se desejado um timeout poderá ser controlado
enquanto a função estiver retornando ‘99’.

Nome Tipo Tam, Descrição Domínio E/S


Status alfanumérico 2 Retorno da função ‘00’ = OK S
‘01’ a ‘98’ =
erro
‘99’ =
rechamar

2.1.5 SEMsgPadrao

Estabelece uma mensagem padrão para o display do PINPAD. Esta mensagem continuará a ser
mostrada quando o PINPAD não estiver sendo utilizado.

Nome Tipo Tam, Descrição Domínio E/S


Mensagem alfanumérico 16 Mensagem a ser E
mostrada no display
do PIN
Status alfanumérico 2 Retorno da função ‘00’ = OK S
‘01’ a ‘99’ =
erro

2.1.6 SESolicitaTrilha1_2

Solicita ao usuário a leitura da trilha1 e da trilha2 do cartão. Esta função não é permitida para novas
homologações.

Nome Tipo Tam, Descrição Domínio E/S


Status alfanumérico 2 Retorno da função ’00’ = OK S
‘01’a ‘98’ =
erro
‘99’ =
rechamar

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 5


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

2.1.7 SESolicitaTrilhas

Solicita ao usuário a leitura da trilha1 e da trilha2 do cartão. Esta função é obrigatória para as novas
homologações.

Nome Tipo Tam, Descrição Domínio E/S


Modalidade Alfanumérico 1 Informa a 1 – Crédito E
modalidade da 2 – Débito
transação
(débito/crédito)
Status alfanumérico 2 Retorno da função ’00’ = OK S
‘01’a ‘98’ =
erro
‘99’ =
rechamar

2.1.8 SEObtemTrilha1_2

Obtém a leitura realizada da trilha1 e da trilha2 do cartão. Esta função deve ser chamada até que o
parâmetro status retorne ‘00’ ou um erro ocorra (Status diferente de ‘00’ e ‘99’). Se desejado um timeout
poderá ser controlado enquanto a função estiver retornando ‘99’.

Nome Tipo Tam, Descrição Domínio E/S


Trilha1 alfanumérico 80 Trilha1 Magnética S
do cartão.
Trilha2 alfanumérico 40 Trilha2 Magnética S
do cartão.
Status alfanumérico 2 Retorno da função ’00’ = OK S
‘01’a ‘98’ =
erro ‘99’ =
rechamar

2.1.9 SEFinalizar

Libera as interrupções e porta de comunicação com o PINPAD. Esta função deverá ser utilizada
sempre que o sistema finalizar uma operação que solicitar uma intervenção do usuário. Sendo que, a não
finalização dos módulos de comunicação poderá causar danos ao sistema.

Esta função não necessita de parâmetros.

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 6


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

2.2 Configurando o PINPAD no Windows

A configuração do PINPAD é obtida a partir de um arquivo tipo (.INI). Este arquivo deve residir no
diretório raiz do sistema operacional (Ex. \WINDOWS).

2.2.1 Arquivo configuração do PinPad - Windows

Nome do Arquivo : PPVISA.INI

Conteúdo 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 seção [VFN]


Portaserial = número da porta serial do microcomputador (1 a n)
Xxxxxxxxx = ‘201’ quando versão do PinPad for inferior a 000825
‘EEVC’ quando versão do PinPad for de 000825 a 0001120
‘CHIP’ quando a versão do PinPad for 0001121 ou superior.

Caso não seja especificado assume-se o default ‘1CHIP’.

2.2.3 PinPad Dione - Windows

Utilizar seção [DIO]


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

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 7


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

2.2.4 PinPad Schlumberger - Windows

Utilizar seção [SLB]


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

2.3 Arquivos necessário para aplicações 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 necessário para aplicações 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

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 8


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

2.5 Exemplo de utilização em VB

Declarações

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

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 9


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica 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 CARTÃO"
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

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 10


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

3. Interface para Dos

Visando facilitar a programação da interface com o PINPAD no ambiente DOS, foi desenvolvida
uma TSR, que efetua o controle e a obtenção de senhas criptografadas. O nome da TSR é SITPIN.
O modulo SITPIN incorpora todas as funções básicas referentes a programação do PINPAD e sua
interface física (Conectores). Através do SITPIN o usuário poderá obter informações de senha
criptografada ou mesmo mostrar mensagens informativas ao usuário. A interface física entre o PINPAD e
o módulo de controle é feita através de porta serial definida pelo usuário.

3.1 API’s da TSR - SITPIN

SITPIN disponibiliza API’s para as seguintes funções :


· Solicitação de confirmação do usuário,
· Obtém confirmação do usuário,
· Finaliza solicitação ao usuário,
· Solicitação de senha ao usuário,
· Obtém senha ao usuário,
· Envia mensagem padrão,
· Solicita leitura da trilha2,
· Obtém leitura da trilha2.

3.1.1 CMD_SOLICITA_CONFIRMACAO

Solicita ao usuário a confirmação de uma operação.

Nome Tipo Tam, Descrição Domínio E/S


Mensagem alfanumérico 16 Mensagem a ser E
mostrada no display
do PIN
Status alfanumérico 2 Retorno da função ‘00’= OK S

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 11


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

3.1.2 CMD_OBTEM_CONFIRMACAO

Obtém do usuário a confirmação de uma operação. Esta função deve ser chamada até que o
parâmetro status retorne ‘00’ ou um status de erro (status diferente de ‘00’ e ‘99’). Se desejado um
timeout poderá ser controlado enquanto a função estiver retornando ‘99’.

Nome Tipo Tam, Descrição Domínio E/S


Status alfanumérico 2 Retorno da função ’00’ = OK S
‘01’a ‘98’ =
erro
‘99’ =
rechamar

3.1.3 CMD_FINALIZA_SOLICITACAO

Esta função não necessita de parâmetros e existe apenas para manter compatibilidade com versões
anteriores.

3.1.4 CMD_SOLICITA_SENHA

Solicita ao usuário a digitação da senha.

Nome Tipo Tam, Descrição Domínio E/S


Trilha2 alfanumérico 40 Trilha 2 do cartão E
Mensagem alfanumérico 32 Mensagem a ser E
apresentada no
display do PINPAD
WorkingKey alfanumérico 20 Chave de E
criptografia obtida
no serviço ‘3’ do
SiTef.
Status alfanumérico 2 Retorno da função ‘00’ = OK S
‘01’ a ‘98’ =
erro

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 12


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

3.1.5 CMD_OBTEM_SENHA

Obtém a senha digitada pelo usuário, de forma criptografada.


Esta função deve ser chamada até que o parâmetro Status retorne OK ou um código de erro diferente
de ‘99’. Se desejar um timeout, este deverá ser controlado pela aplicação, ficando em loop de chamadas
da função enquanto não existirem dados ou até ultrapassar o tempo estipulado.

Nome Tipo Tam, Descrição Domínio E/S


Senha alfanumérico 20 Tamanho senha (02) S
Senha Cript. (até
18). Quando enviar a
senha ao SiTef
excluir os dois bytes
de tamanho.
Status alfanumérico 2 Retorno da função ‘00’ = OK S
‘01’ a ‘99’ =
erro

3.1.6 CMD_MSG_PADRAO

Estabelece uma mensagem padrão para o display do PINPAD. Esta mensagem continuará a ser
mostrada quando o PINPAD não estiver sendo utilizado.

Nome Tipo Tam, Descrição Domínio E/S


Mensagem alfanumérico 16 Mensagem a ser E
mostrada no display
do PIN
Status alfanumérico 2 Retorno da função ‘00’ = OK S
‘01’ a ‘99’ =
erro

3.1.7 CMD_Solicita_Trilha1_2

Solicita ao usuário a leitura da trilha1 e da trilha2 do cartão. Esta função não é permitida para novas
homologações.

Nome Tipo Tam, Descrição Domínio E/S


Status alfanumérico 2 Retorno da função ’00’ = OK S
‘01’a ‘98’ =
erro
‘99’ =
rechamar

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 13


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

3.1.8 CMD_Solicita_Trilhas

Solicita ao usuário a leitura da trilha1 e da trilha2 do cartão. Esta função é obrigatória para as novas
homologações.

Nome Tipo Tam, Descrição Domínio E/S


Modalidade Alfanumérico 1 Informa a 1 – Crédito E
modalidade da 2 – Débito
transação
(débito/crédito)
Status alfanumérico 2 Retorno da função ’00’ = OK S
‘01’a ‘98’ =
erro
‘99’ =
rechamar

3.1.9 CMD_Obtem_Trilha1_2

Obtém a leitura realizada da trilha1 e da trilha2 do cartão. Esta função deve ser chamada até que o
parâmetro status retorne ‘00’ ou um erro ocorra (Status diferente de ‘00’ e ‘99’). Se desejado um timeout
poderá ser controlado enquanto a função estiver retornando ‘99’.

Nome Tipo Tam, Descrição Domínio E/S


Trilha1 alfanumérico 80 Trilha1 Magnética S
do cartão.
Trilha2 alfanumérico 40 Trilha2 Magnética S
do cartão.
Status alfanumérico 2 Retorno da função ’00’ = OK S
‘01’a ‘98’ =
erro ‘99’ =
rechamar

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 14


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

3.2 Configurando o PINPAD para DOS


3.2.1 PinPad Verifone - DOS

A configuração 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.. = versão do emulador carregado no PIN-pad:
"CHIP" = quando versão do PinPad for 001121 ou superior
"EEVC" = quando versão do PinPad for de 000825 à 0001120
"201" = quando versão 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 versão para CHIP e tecla de cancelamento [F1]:

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

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 15


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

3.2.2 PinPad Dione - DOS

A configuração 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 funções 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 necessário para aplicações DOS

Arquivo\PinPad DIONE VERIFONE


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

3.4 Procedimentos para aplicações DOS

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


- Executar o programa SITPIN.EXE.

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 16


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

3.5 Exemplo de utilização 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);
Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 17
Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica 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
*/
Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 18
Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica 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 {
Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 19
Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica 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);
Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 20
Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica 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

/*
Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 21
Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica 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
Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 22
Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

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

#endif

4. Tabela Status de retorno


Código Descrição
00 Solicitação atendida
01 Erro ao inicializar o PINPAD
02 Erro ao inicializar a porta de comunicação. Possivelmente, a porta de
comunicação esta sendo utilizada ou alocada para outro recurso.
03 Erro ao inicializar as funções do PINPAD
05 O código da rede solicitada não corresponde a uma Masterkey disponível
permitida.
08 Aconteceu um erro de comunicação com o PINPAD ao solicitar a senha. Tente
outra vez.
09 Usuário pressionou a tecla ‘CLEAR’.
12 Falha na comunicação com o PINPAD.
13 Erro ao iniciar a leitura do cartão.
14 O PINPAD não dispõe de leitor de cartões.
15 Porta de comunicação inválida.
16 Tipo de PINPAD invalido.
17 PINPAD não configurado.
18 Rede inválida.
50 Arquivo externo ausente (dll, etc..)
51 Erro ao acessar o PinPad
52 Erro na capturar de Trilha/Chip
99 Após a solicitação de uma entrada do usuário, o modulo de PINPAD fica
aguardando os dados obtidos do usuário pelo PINPAD. Com este código de
resposta o modulo indica ao programa cliente que o PINPAD ainda não
repassou os dados obtidos do usuário. Sendo assim, o programa cliente poderá
decidir se continuará a aguardar os dados chamando a mesma função
novamente ou se cancelara a solicitação devido à um timeout ou decisão do
usuário.

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 23


Ó 2001, Software Express Informática
Tel.: (011) 3024-5353 e_mail: suporte@softwareexpress.com.br NOVEMBRO/2001
SiTef - “Solução inteligente para Transferência Eletrônica de Fundos”

5. PINPADs disponíveis

Modelo Modelo
DIONE Solo 2005
SCHLUMBERGER Magic 1800
VERIFONE SC552

6. Bibliografia

- Visa Chip Migration – Biblioteca para PinPad – Especificação Detalhada (JAN/2001)

Especificação Técnica – Uso PinPad com CHIP - Versão 3.00 Página - 24


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

Você também pode gostar