Formato do pacote de dados
Entenda o formato do pacote de dados que o terminal POS envia ao WALK Server e como este trata essas informações
Entenda o formato do pacote de dados que o terminal POS envia ao WALK Server e como este trata essas informações e processa as páginas do aplicativo POSXML.
Ao receber um pacote de dados, o WALK Server verifica se é necessário atualizar o aplicativo do POS, senão ele envia o pacote para a página web ou para o IP e porta configurados.
Ao enviar um pacote para uma página web, o WALK Server coloca o pacote em uma variável chamada buffer e a passa através de um método POST. No modo servidor TCP-IP, o socket recebe diretamente o mesmo pacote.
Formato do Pacote de Envio
36,appplanobe7A980.10,1,<cartao>77701503600009900444,, ,12
Os campos são coma delimited (separados por vírgula), portanto analisamos o campo até a virgula ser encontrada:
1. 36
Número do terminal, que pode ser configurado na configuração do Framework WALK.
2. appplanobe7A980.10
2.1. appplanobe
Nome do aplicativo POSXML que o terminal ira buscar no diretório de aplicativos do WALK Server.
Aqui temos algumas premissas:
O nome do aplicativo informado no pacote deve ter 10 bytes
O nome do arquivo no diretório de aplicativos deve ser o mesmo informado no pacote, nesse caso, appplanobe
A extensão dos arquivos no diretório de aplicativos é .wsxml
É possível incluir no final dos 10 bytes do nome do arquivo POSXML uma identificação numérica separada por um underline, de forma que somente o POS com a identificação informada poderia baixar aquela aplicação. Ao omitir a identificação, qualquer terminal POS pode baixar a aplicação.
Exemplo de uma aplicação com identificação: appplanobe_36
No exemplo acima, o aplicativo appplanobe_36 estaria acessível somente ao terminal POS com a identificação 36. A definição da identificação do terminal POS é feita no menu de configuração do terminal.
2.2. 7A98
Cálculo de CRC 16 do aplicativo POSXML existente no terminal. 2 bytes Hexadecimais sendo o segundo mais significativo. Aqui está o grande diferencial da nossa aplicação, pois se o calculo CRC 16 da aplicação POSXML contida no terminal for diferente do CRC 16 da aplicação no WALK Server, será feita automaticamente a troca de aplicativo para que sempre o terminal tenha o aplicativo mais atual.
2.3. 0.10
Versão do Framework WALK sendo executado no terminal.
3. 1,<cartao>77701503600009900444,,
Após este campo todos os dados são variáveis que o aplicativo POSXML armazenou na sua execução com a instrução e enviou para o WALK Server para análise. Um par de vírgulas seguido pelas tags especiais de controle indica o fim das variáveis vindo do aplicativo.
4. Tags de controle: <erro></erro>,<sn>12</sn>
4.1. <erro></erro>
Este campo não é mais utilizado. Nas versões antigas do Framework WALK, ele era utilizado para indicar erros de comunicação. Nas novas versões, o desenvolvedor possui um maior controle na aplicação POSXML para tratar este tipo de erro, da forma que ele achar melhor.
4.2. <sn>12</sn>
Serial number para controle de licenças do Framework WALK instalado no terminal.
Formato do Pacote de Retorno
O WALK Server irá conectar com o autorizador ao receber uma conexão do POS, enviando o pacote descrito acima e o mesmo deve retornar uma resposta no seguinte formato:
<impressaoPesquisa>"nome=Joao Silva","valor_1=10.50","valor_2=9.50","data=01-01-05"
Para retornar a resposta acima a partir de uma página web, basta responder com algum comando da linguagem (PHP, ASP, Java, Rails, etc) que escreva alguma resposta na página.
| A resposta deve ser limpa, sem as tags html, head, body, table, etc |
Caso esteja utilizando um servidor TCP-IP, apenas escreva a resposta no socket.
A tag no começo do retorno (<impressaoPesquisa>) indicará a página que o WALK Server deverá buscar dentro do aplicativo POSXML. Este por sua vez, se a tag existir dentro do aplicativo, pegará todos os nomes de variáveis e substituirá pelos valores especificados nas variáveis nome, valor e data.
Note que valor está com _1 e _2. Essa definição indica um array de variáveis e a linha contendo esta variável no aplicativo POSXML será duplicada de acordo com o índice especificado. O índice deve iniciar em _1 e terminar em _n.
No aplicativo POSXML, os nomes das variáveis que serão substituídas no retorno estão entre [ ] (colchetes).
Exemplo
Utilizando a seguinte página no aplicativo POSXML:
<pagina nome="impressaoPesquisa">
<imprima mensagem="Nome: [nome]" />
<imprima mensagem="Valores:" />
<imprima mensagem="[valor]" />
<imprima mensagem="Data: [data]" />
</pagina>
Quando o autorizador retornar a mensagem abaixo
<impressaoPesquisa>"nome=Joao Silva","valor_1=10.50","valor_2=9.50","data=01-01-05"
O WALK Server retornaria para o terminal a página compilada e formatada da seguinte forma:
<pagina nome="impressaoPesquisa">
<imprima mensagem="Nome: João Silva" />
<imprima mensagem="Valores:" />
<imprima mensagem="10.50" />
<imprima mensagem="9.50" />
<imprima mensagem="Data: 01-01-05" />
</pagina>
Como a página utiliza a instrução imprima, o terminal imprimiria um ticket com o seguinte formato:
Nome: João Silva
Valores:
10.50
9.50
Data: 01/01/05
Como o WALK Server envia automaticamente esta página para o terminal, você não precisa se preocupar com o processo de comunicação entre WALK Server e terminal.
