4. Fluxo Operacional

4.1. Fluxo principal

A figura a seguir ilustra o fluxo completo para realização de uma transação eletrônica, evidenciando
as funções a serem chamadas pela Automação.

578

• A Automação chama PW_iInit uma única vez após ser iniciada, para inicializar a biblioteca.

• A Automação chama PW_iNewTransac (ver página 13) para indicar o início de uma nova
transação.

• A Automação chama repetidamente PW_iAddParam para alimentar a biblioteca com cada informação referente à transação que já seja conhecida (pode ser pré-definida ou ter sido
capturada pelo operador).

• A Automação chama PW_iExecTransac, para efetuar a transação.

• Caso PW_iExecTransac retorne PWRET_MOREDATA, indica que dados adicionais devem ser
capturados pela Automação. Nesta situação, a Automação deve obter estes dados (usualmente,
solicitando-os ao operador) e informa-los à biblioteca através de PW_iAddParam, e em seguida
chamar novamente PW_iExecTransac. Este processo pode ser repetido várias vezes até obtenção
de todos os dados necessários para realização da transação.

• Caso PW_iExecTransac retorne qualquer código diferente de PWRET_MOREDATA, a Automação
pode chamar PW_iGetResult para obter as informações disponíveis referentes à transação.

• Caso PW_iExecTransac retorne PWRET_OK, indica que a transação foi realizada com êxito. A
Automação deve então realizar seus processos vinculados à transação eletrônica (liberar
mercadoria, imprimir comprovantes, atualizar banco de dados, etc.) e em seguida, caso
requerido pela transação, chamar PW_iConfirmation para informar ao Pay&Go Web o status
final da transação (confirmada ou desfeita).

• A Automação pode a qualquer momento durante a captura de dados interromper uma transação
já iniciada. Neste caso, deve chamar PW_iConfirmation para que a transação seja desfeita junto
ao Provedor.

4.2. Captura de dados

Os dados que a Automação deve obter após PW_iExecTransac retornar PWRET_MOREDATA podem
ser:

• Uma opção a ser selecionada dentro de uma lista (menu);
• Um dado a ser digitado pelo operador na interface com usuário gerenciada pela Automação;
• Um código de barras (a ser lido através de um dispositivo ou digitado pelo usuário);
• Dados a serem obtidos do PIN-pad.

4.2.1. Interface com o usuário principal

Todas as mensagens de texto para apresentação ao operador previstas nesta versão da especificação possuem as seguintes características:

• Estão em maiúsculas e não possuem caracteres acentuados;
• Utilizam o caractere carriage return (0Dh) para indicar quebras de linha;
• São formatadas prevendo uma tela de 4 linhas de 20 colunas e caracteres de largura fixa.

A Automação pode alterar a formatação destas mensagens para acomodá-las da melhor maneira
possível na interface com o usuário, porém sem alterar seu conteúdo (palavras).

4.2.2. Interface com o PIN-pad

No caso de dados a serem obtidos do PIN-pad, a biblioteca disponibiliza um conjunto específico de
funções de alto nível com as seguintes características:

• A Automação mantém o controle do fluxo operacional, podendo manter o operador
corretamente informado do processo em andamento ou da ação a ser tomada;

• O protocolo de comunicação com o PIN-pad é implementado pela biblioteca;

• Os dados sensíveis do cartão ou do Cliente manipulados pelo PIN-pad não trafegam pela
Automação.

A figura abaixo ilustra o fluxo de processamento da Automação durante a captura de um dado do
PIN-pad:

598

• De acordo com o tipo de dado a ser capturado, a Automação identifica e chama uma função
PW_iPPxxx para iniciar o processo de captura.

• A partir deste momento, a Automação inicia um ciclo de processamento, chamando
indefinidamente a função PW_iPPEventLoop, enquanto esta retornar:

→ PWRET_NOTHING, que não pede nenhuma ação da Automação, a não ser continuar
aguardando o processamento; ou

→ PWRET_DISPLAY, que pede para a Automação apresentar uma mensagem de texto para o
operador na interface com o usuário gerenciada pela Automação.

• Durante este ciclo de processamento, a Automação pode verificar outros eventos como, por
exemplo, uma ação do operador na interface com o usuário principal que requeira interromper a
captura no PIN-pad. Neste caso, a Automação deve chamar PW_iPPAbort para que o PIN-pad
retorne ao seu estado ocioso.

• Atenção: durante o ciclo de chamadas repetitivas a PW_iPPEventLoop, a Automação deve tomar
o cuidado de liberar o tempo de processador para o sistema operacional. Recomendamos
aguardar no mínimo 100 milissegundos entre duas chamadas.

• Um retorno de PWRET_OK de PW_iPPEventLoop indica que a captura foi realizada com êxito.