Configuração da biblioteca
Esta deve ser a primeira chamada para a biblioteca CliSiTef. Ela tem por objetivo configurar os parâmetros de conexão com o servidor SiTef, e com a própria Automação Comercial.
#
Interface ASCIIParâmetro | Tipo | Interface Padrão | Interface ASCII | Descrição |
---|---|---|---|---|
Resultado | Saída, por favor | Não Usado | Fixo 6 | Contém o resultado de resposta à chamada da rotina. |
IPSiTef | Entrada, por favor | char * | Variável | Configura o nome ou endereço IP (em notação “.”) do servidor SiTef. |
IdLoja | Entrada, por favor | char * | Fixo 8 | Identifica o número da loja perante a rede de estabelecimentos comerciais. |
IdTerminal | Entrada, por favor | char * | Fixo 8 | Identifica o pdv perante a loja. Possui o formato XXnnnnnn onde XX corresponde a 2 caracteres alfabéticos e nnnnnn 6 dígitos quaisquer desde que o número resultante não sobreponha a faixa 000900 a 000999 que é reservada para uso pelo SiTef. |
Reservado | Entrada, por favor | char * | Fixo 6 | Deve ser passado com 0 |
ParametrosAdicionais | Entrada, por favor | char * | Variável | Parâmetros adicionais de configuração da CliSiTef no seguinte Formato:[<Nome_Parametro_1>=<Valor_Parametro_1>;<Nome_Parametro_2>=<Valor_Parametro_2>] |
Importante! Cada terminal deve ter um código único e fixo por loja do SiTef. Desta forma o estabelecimento comercial deve administrar os códigos utilizados de forma que nunca exista repetição de terminais para uma mesma loja.
O servidor SiTef não permite duas ou mais conexões simultâneas utilizando o mesmo par (loja, terminal), derrubando as conexões anteriores, mantendo apenas a última conexão efetuada; se porventura a transação que estava em andamento quando da queda da conexão por PDV duplicado estivesse já em estado pendente (uma venda por exemplo), o SiTef coloca-a imediatamente em estado Canc.PDV (Cancelada pelo PDV), ou seja, esta estará cancelada; o terminal que for desconectado receberá a mensagem “Sem conexao SiTef” com o código de erro -5.
Quando o estabelecimento comercial utilizar Pinpad para leitura de cartões e digitação de senha e caso o par (loja, terminal) seja alterado, isto implicará em nova carga de tabelas no pinpad a cada alteração. Este é mais um motivo para que o código de terminal seja fixo.
As rotinas de configuração retornam um dos seguintes valores:
Valor | Descrição |
---|---|
0 | Não ocorreu erro |
1 | Endereço IP inválido ou não resolvido |
2 | Código da loja inválido |
3 | Código de terminal inválido |
6 | Erro na inicialização do Tcp/Ip |
7 | Falta de memória |
8 | Não encontrou a CliSiTef ou ela está com problemas |
9 | Configuração de servidores SiTef foi excedida. |
10 | Erro de acesso na pasta CliSiTef (possível falta de permissão para escrita) |
11 | Dados inválidos passados pela automação. |
12 | Modo seguro não ativo (possível falta de configuração no servidor SiTef do arquivo .cha). |
13 | Caminho DLL inválido (o caminho completo das bibliotecas está muito grande). |
Observação: durante o ciclo de vida da automação, caso não haja mudança nos parâmetros de entrada da função, então não há necessidade de chamá-la novamente.
#
1.1 Configurações especiais geraisDeterminadas configurações gerais (válidas para todas as transações) da CliSiTef podem ser passadas através do parâmetro “ParametrosAdicionais” da rotina ConfiguraIntSiTefInterativoEx. O formato deste campo é o seguinte:
A seguir, descrevemos as funcionalidades previstas neste campo.
Observação: neste item serão destacadas somente as configurações principais. Para a descrição detalhada de todos as opções disponíveis, consulte o documento “CliSiTef – Lista de Parâmetros Adicionais”.
Funcionalidade | Descrição |
---|---|
MultiplosCupons=1 | Indica que o PDV está apto para receber mais de um comprovante por transação. No caso de transações com mais de um comprovante, como transações de recarga de celular ou pagamentos de contas com cartões de crédito ou débito, o comprovante da recarga de celular ou do pagamento de conta será entregue separadamente do comprovante do TEF de crédito ou débito. |
PortaPinPad=<Porta PinPad> | Define a porta em que está conectado o pinpad compartilhado. Exemplo: Windows: [PortaPinPad=1] Linux: [PortaPinPad=/dev/ttyS0] |
LojaECF=<Num Loja> | Número da loja fiscal (Tamanho máximo: 20) |
CaixaECF=<Num Caixa> | Número do caixa fiscal (Tamanho máximo: 20) |
NumeroSerieECF=<Serie ECF> | Número de série do ECF (Tamanho máximo: 20) |
#
1.2 Informações adicionais da Automação/EstabelecimentoA configuração ParmsClient permite que a automação comercial possa configurar informações comuns a todas as transações trocadas com o servidor SiTef.
Formato:
onde:
<ParmsClient=>
= Prefixo identificador dos dados.
<IdN>
= Identificador do campo, conforme definida a tabela abaixo.
<ValorN>
= Valor do campo.
Id | Formato | Significado |
---|---|---|
1 | Numérico | CNPJ do estabelecimento/loja. |
2 | Numérico | CNPJ da empresa que desenvolveu a automação comercial |
3 | Numérico | CNPJ do estabelecimento/loja |
4 | Numérico | CNPJ Facilitador (Van) |
Exemplo de como enviar dos dados para a CliSiTef:
Onde:
1 (CNPJ do Estabelecimento) com o valor 31406434895111.
2 (CNPJ da empresa de automação comercial) com o valor 12523654185985.
Observação: este parâmetro não deve ser usado para fins de sub-adquirência (soft descriptor). Para este fim, consulte o documento “CliSiTef - Informações de Sub-Adquirência (Soft Descriptor)”
#
1.3 Ponto flutuanteComo a automação informa à CliSiTef que sabe tratar campos com ponto flutuante
O tratamento de campos com Ponto Flutuante requer um procedimento executado em conjunto com a automação.
Para que a Clisitef efetue este procedimento que será descrito adiante, é necessário que a automação informe à Clisitef que está apta a tratá-lo. Para isso, a automação deve passar a string abaixo no parâmetro “ParametrosAdicionais” na execução da função ConfiguraIntSiTefInterativoEx.
Se este parâmetro for omitido e o SiTef solicitar a coleta de campo com Ponto Flutuante, a CliSiTef solicitará à automação, a exibição da mensagem: "Ponto Flutuante nao Suportado pelo PDV".
#
Procedimento em “operação casada” com a automaçãoComo a automação informa à CliSiTef que sabe tratar campos com ponto flutuante
O tratamento de campos com Ponto Flutuante requer um procedimento executado em conjunto com a automação.
Para que a Clisitef efetue este procedimento que será descrito adiante, é necessário que a automação informe à Clisitef que está apta a tratá-lo. Para isso, a automação deve passar a string abaixo no parâmetro “ParametrosAdicionais” na execução da função ConfiguraIntSiTefInterativoEx.
Se este parâmetro for omitido e o SiTef solicitar a coleta de campo com Ponto Flutuante, a CliSiTef solicitará à automação, a exibição da mensagem: "Ponto Flutuante nao Suportado pelo PDV".
#
Procedimento em “operação casada” com a automaçãoSe foi informado na Configuração, suportar o recurso de Ponto Flutuante, conforme descrito acima, a CliSiTef através do Comando 0 em conjunto com o TipoCampo 2470, informa à Automação a quantidade de casas decimais no parâmetro Buffer, para que esta possa formatar suas telas antes de exibi-las ao operador (Vide Exemplos de Telas na próxima página). Somente após este “pacto” com a Automação, a CliSiTef enviará o comando de coleta do campo com ponto flutuante (através dos comandos 34 ou 30) conforme exemplos abaixo
Parâmetros ContinuaFuncaoSiTefInterativo: CliSiTef ======= -> PDV |
---|
Comando | TipoCampo |
---|---|
0 | Não |
Academia | 2470 |
Exemplos de quantidade de casas decimais | Buffer |
---|---|
Peso do Almoço em gramas com 2 casas | 2 |
otal da Bomba de Combustível em reais com 3 casas | 3 |
• No exemplo onde a quantidade de casas decimais informada foi 2, logo após, a CliSitef solicitará o comando
• No exemplo onde a quantidade de casas decimais informada foi 3, logo após, a CliSitef solicitará o comando 34: