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.

int ConfiguraIntSiTefInterativo (IPSiTef, IdLoja, IdTerminal, Reserv ado)
int ConfiguraIntSiTefInterativoEx (IPSiTef, IdLoja, IdTerminal, Reservado,
ParametrosAdicionais)

Interface ASCII#

ConfiguraIntSiTefInterativoA (Resultado, IPSiTef, IdLoja, IdTerminal, Reservado)
ConfiguraIntSiTefInterativoExA (Resultado, IPSiTef, IdLoja, IdTerminal, Reservado,
ParâmetrosAdicionais)
ParâmetroTipoInterface PadrãoInterface ASCIIDescrição
ResultadoSaída, por favorNão UsadoFixo 6Contém o resultado de resposta à chamada da rotina.
IPSiTefEntrada, por favorchar *VariávelConfigura o nome ou endereço IP (em notação “.”) do servidor SiTef.
IdLojaEntrada, por favorchar *Fixo 8Identifica o número da loja perante a rede de estabelecimentos comerciais.
IdTerminalEntrada, por favorchar *Fixo 8Identifica 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.
ReservadoEntrada, por favorchar *Fixo 6Deve ser passado com 0
ParametrosAdicionaisEntrada, por favorchar *VariávelParâ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:

ValorDescrição
0Não ocorreu erro
1Endereço IP inválido ou não resolvido
2Código da loja inválido
3Código de terminal inválido
6Erro na inicialização do Tcp/Ip
7Falta de memória
8Não encontrou a CliSiTef ou ela está com problemas
9Configuração de servidores SiTef foi excedida.
10Erro de acesso na pasta CliSiTef (possível falta de permissão para escrita)
11Dados inválidos passados pela automação.
12Modo seguro não ativo (possível falta de configuração no servidor SiTef do arquivo .cha).
13Caminho 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 gerais#

Determinadas 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:

[<Funcionalidade >;<Funcionalidade >;...]

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”.


FuncionalidadeDescrição
MultiplosCupons=1Indica 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/Estabelecimento#

A 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:

[ParmsClient=Id1=Valor1;Id2=Valor2;Id3=Valor3;...;IdN=ValorN]

onde:

<ParmsClient=> = Prefixo identificador dos dados.

<IdN> = Identificador do campo, conforme definida a tabela abaixo.

<ValorN> = Valor do campo.

IdFormatoSignificado
1NuméricoCNPJ do estabelecimento/loja.
2NuméricoCNPJ da empresa que desenvolveu a automação comercial
3NuméricoCNPJ do estabelecimento/loja
4NuméricoCNPJ Facilitador (Van)

Exemplo de como enviar dos dados para a CliSiTef:

[ParmsClient=1=31406434895111;2=12523654185985]

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 flutuante#

Como 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.

[TrataPontoFlutuante=1]

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ção#

Como 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.

[TrataPontoFlutuante=1]

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ção#

Se 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
ComandoTipoCampo
0Não
Academia2470
Exemplos de quantidade de casas decimaisBuffer
Peso do Almoço em gramas com 2 casas2
otal da Bomba de Combustível em reais com 3 casas3

• 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: