Upload
juarez-abrahao-mendes
View
90
Download
2
Tags:
Embed Size (px)
Citation preview
EASYTEF TEAM
DOCUMENTAÇÃO EASYTEFDEDICADO
VERSÃO DO DOCUMENTO – 1.3
2009
SUMÁRIO 1. INTRODUÇÃO .....................................................................................................1 2. PRIMEIROS PASSOS .........................................................................................2 3. INSTALANDO E TESTANDO INFRA-ESTRUTURA PARA TEF DEDICADO .....4 4. EASYTEFDEDICADO..........................................................................................5
4.1. Instalação da versão COM (VB, VB.NET, C# e etc.) ....................................5 4.2. Instalação da versão sem código fonte para Delphi e C++ Builder...............6 4.3. Instalação da versão com código fonte para Delphi e C++ Builder...............6 4.4. Propriedades.................................................................................................7
4.4.1. autoVerificarTEF ....................................................................................7 4.4.2. formMsgOperador..................................................................................8 4.4.3. imprimirComprovante.............................................................................8 4.4.4. imprimirEmUnicaVia ..............................................................................8 4.4.5. multiplosCartoes ....................................................................................9 4.4.6. numeroDeCartoes..................................................................................9 4.4.7. operacaoTEFAtual .................................................................................9 4.4.8. transacaoAprovada..............................................................................10 4.4.9. transacaoNegada.................................................................................10 4.4.10. valorCampoXXX-XXX ..........................................................................10 4.4.11. usouCartaoDebito ................................................................................10 4.4.12. usouCartaoCredito...............................................................................10
4.5. Métodos ......................................................................................................11 4.5.1. cancelarVenda .....................................................................................11 4.5.2. cancelarVenda .....................................................................................11 4.5.3. confirmacaoVendaImpressaoCupom...................................................12 4.5.4. consultarCheque..................................................................................12 4.5.5. fazerRequisicaoAdministrativa.............................................................13 4.5.6. gerenciadorInstalado ...........................................................................13 4.5.7. gerenciadorAtivo ..................................................................................14 4.5.8. imagemCupomTef ...............................................................................14 4.5.9. imprimirCupomECF .............................................................................14 4.5.10. imprimirCuponsECF.............................................................................14 4.5.11. naoConfirmacaoVendaImpressaoCupom ............................................14 4.5.12. pagarNoCartao ....................................................................................15 4.5.13. tratarConsultaCheque..........................................................................16 4.5.14. tratarCupomFiscal................................................................................16
4.6. Eventos .......................................................................................................17 4.6.1. OnAbrirComprovanteNaoFiscalVinculado ...........................................18 4.6.2. OnEfetuarFormaPagamento................................................................18 4.6.3. OnEfetuarFormaPagamentoDescricaoForma......................................18 4.6.4. OnEncerrarCupomFiscal .....................................................................18 4.6.5. OnFecharComprovanteNaoFiscalVinculado........................................19 4.6.6. OnFecharRelatorioGerencial ...............................................................19 4.6.7. OnGerarIdentificacao...........................................................................19 4.6.8. OnImpressoraTemPapel ......................................................................19 4.6.9. OnImprimirRelatorioGerencial..............................................................20 4.6.10. OnIniciarFechamentoCupomFiscal......................................................20 4.6.11. OnTerminarCancelamentoMultiplosCartoes ........................................20
4.6.12. OnTerminarFechamentoCupom ..........................................................21 4.6.13. OnUsarComprovanteNaoFiscalVinculado ...........................................21 4.6.14. OnSubTotalizarCupom ........................................................................21 4.6.15. OnValorPersonalizadoReq ..................................................................21
5. ÚLTIMOS PASSOS ...........................................................................................23 5.1. O processo de certificação..........................................................................23 5.2. Instalação em seu cliente............................................................................23
1
© 2009 – EasyTEF Team – Todos os direitos reservados.
1. INTRODUÇÃO
Parabéns, desenvolvedor de automação comercial, por adquirir o
componente EasyTEFDedicado, a maneira mais fácil, rápida e de baixo custo de
aprovar sua Aplicação Comercial (AC) no processo de certificação TEF dedicado.
Este documento não apenas explica os métodos, eventos e propriedades do
componente, mas também traz nossa base de conhecimento no processo de
certificação, o que aumenta ainda mais suas chances de certificar sua AC.
Uma AC que faz pagamentos via cartões de débito e crédito por TEF
dedicado reúne pelo menos três conhecimentos específicos: A AC em si, TEF
dedicado e Impressora Fiscal (ECF). O EasyTEFDedicado trabalha diretamente com
o conhecimento relacionado ao TEF dedicado e traz métodos e eventos que ajudam
na parte de ECF. Desta forma, o conhecimento sobre a AC e ECF não são cobertos
pelo componente, ficando a cargo do programador conhecer estas outras áreas.
2
© 2009 – EasyTEF Team – Todos os direitos reservados.
2. PRIMEIROS PASSOS
O componente EasyTEFDedicado trabalha com o produto SiTef, da Software
Express, empresa localizada na cidade de São Paulo - SP. O SiTef é um produto
proprietário da Software Express, por isso não estamos habilitados a distribuir cópias
de qualquer parte do SiTef, nem cliente, nem servidor. Para saber mais sobre o
SiTef, acesse:
http://www.softwareexpress.com.br/produtos/sitef.htm
O EasyTEFDedicado trabalha com o Cliente SiTef Modular versão 1.0.37.1,
e superiores, através da troca de arquivos texto, contendo os comandos
interpretados pelo SiTef.
Por se tratar de um produto proprietário, existem algumas regras que regem
o licenciamento e distribuição do SiTef. Para poder desenvolver softwares que façam
pagamentos via TEF dedicado com o SiTef, é preciso estabelecer contrato comercial
com a Software Express.
Neste contrato, o desenvolvedor / Software House irá desembolsar um valor,
estipulado pela Software Express, referente à licença de desenvolvimento e suporte
ao SiTef. Este valor deve ser consultado junto à empresa. Como o SiTef se integra
com várias redes de cartão e várias instituições de crédito e consulta de crédito,
muitas são as configurações necessárias quando se pretende desenvolver uma
funcionalidade específica.
O EasyTEFDedicado apenas retornará as mensagens devolvidas pelo SiTef
Client Modular, não alterando qualquer configuração do produto. Desta forma, todas
as dúvidas referentes ao SiTef devem ser sanadas junto ao suporte da Software
Express. As dúvidas serão várias, desde a configuração do Pinpad até a
configuração de módulos específicos do SiTef.
Todas estas dúvidas deverão ser esclarecidas junto ao suporte da Software
Express. Esta é a razão pelo valor cobrado ao fechar contrato com a Software
Express, que é também quem realiza o processo de homologação de sua AC, o que
exigirá deslocamento à capital de São Paulo.
Outro detalhe importante é que quando seus clientes utilizarem sua AC
certificada para TEF dedicado com SiTef, o contrato prevê uma mensalidade, que é
paga a Software Express, calculada de acordo com a quantidade de estações de
trabalho que seu cliente utilizar.
3
© 2009 – EasyTEF Team – Todos os direitos reservados.
Homologando sua AC para TEF dedicado com SiTef, o desenvolvedor /
Software House torna-se um integrador do produto, ou seja, quem dará suporte ao
SiTef não será a Software Express, mas o integrador.
A Software Express não tem contato com os clientes do integrador, o que faz
com que a mensalidade não seja cobrada deles, mas do integrador. A Software
Express recomenda que o integrador cobre um percentual a mais, sobre o valor que
ela pede em contrato, para cobrir os custos que o integrador tem para disponibilizar
suporte do SiTef a seus clientes.
O primeiro passo a ser tomado para começar a programar o TEF dedicado
em sua AC é fechar contrato comercial com a Software Express para ter acesso aos
instaladores do Cliente SiTef Modular, que é o software que deve rodar em cada
estação de desenvolvimento, e do SitDemo, que é a versão de desenvolvimento do
servidor SiTef.
É importante estudar a Especificação do ClientSitef para entender como o
EasyTEFDedicado interage com o Cliente SiTef Modular, via troca de arquivos texto,
e para entender o significado de algumas das propriedades do componente.
4
© 2009 – EasyTEF Team – Todos os direitos reservados.
3. INSTALANDO E TESTANDO INFRA-ESTRUTURA PARA TEF D EDICADO
Para desenvolver para TEF dedicado com SiTef com o EasyTEFDedicado, é
necessário instalar o SitDemo, que é a versão de desenvolvimento do servidor SiTef,
e o Cliente SiTef Modular.
O Client SiTef Modular não funcionará caso o SitDemo não esteja em
execução. É necessário que o SitDemo esteja configurado corretamente, inclusive
com a questão do Pinpad. As dúvidas sobre configuração das estações de
desenvolvimento e do Pinpad junto ao SitDemo, devem ser tiradas com o suporte da
Software Express.
O exemplo que acompanha o EasyTEFDedicado, a título de demonstração,
foi programado para funcionar com as ECFs (Emissor de Cupom Fiscal) Bematech
suportadas pela biblioteca BemaFI32.dll (Matricial MP20 FI II, Térmica MP 2100 TH
FI, ...), porém, possui métodos e eventos que podem ser programados para outras
ECFs. Bastaria substituir os comandos da Bematech pelos comandos da ECF
desejada, caso esta não possua particularidades peculiares a ela.
Durante a execução do Roteiro de Pré-Homologação Client SiTef, serão
gerados Cupons Fiscais. Estes devem ser enviados a Software Express para pré-
avaliação. Após a confirmação, por parte da certificadora, de que os cupons estão
corretos, deve-se agendar a data para a homologação da AC. Acesse o site da
Software Express para saber o endereço de envio dos cupons e o telefone para
eventuais contatos.
5
© 2009 – EasyTEF Team – Todos os direitos reservados.
4. EASYTEFDEDICADO
O EasyTEFDedicado funciona como uma interface entre a AC e Cliente
SiTef Modular. O componente troca mensagens com o SiTef via arquivos texto. O
Cliente SiTef Modular processa apenas uma requisição por vez, por isso, cada form
Delphi poderá ter somente um componente EasyTEFDedicado. Se for colocado um
segundo componente, será gerada uma exceção não permitindo que este seja
colocado sobre o form.
Junto com o componente, vem um exemplo completo de tela de frente de
caixa utilizando TEF dedicado e ECF Bematech, apenas como demonstração, para
ajudar na programação de sua AC com o EasyTEFDedicado. Como dito
anteriormente, basta trocar os comandos da Bematech pelos comandos da ECF
desejada, caso esta não possua particularidades muito peculiares.
Este exemplo pode ser usado como base para adaptar sua AC a outras
ECFs, já que a especificação de impressora fiscal é a mesma para todas elas. Como
o exemplo já traz os métodos e em qual parte da AC eles devem ser implementados,
vejamos uma explicação da instalação, propriedades, métodos e eventos do
componente.
Repare também que todas as ações do exemplo possuem teclas de atalho,
possibilitando o não uso do mouse. Este é outro requerimento que sua AC deve ter,
pois a Software Express exige isso dos sistemas. No dia da certificação, o
certificador não permite o uso do mouse para interagir com a AC.
4.1. Instalação da versão COM (VB, VB.NET, C# e etc .)
• Descompactar o arquivo EasyTEFCOM.zip em qualquer diretório;
• Executar o arquivo de lote registrar componente.bat;
• Adicionar a referência da type library do EasyTEF (EasyTEF.tlb) em seu
ambiente de programação:
o VB: Menu Project -> Add References -> EasyTEF Library;
o Visual Studio -> Menu Project -> Add References -> Aba COM ->
EasyTEF Library.
6
© 2009 – EasyTEF Team – Todos os direitos reservados.
4.2. Instalação da versão sem código fonte para Del phi e C++ Builder
• Delphi 5, 6, 7 e C++ Builder 6
o Descompacte o arquivo EasyTEF.zip no diretório “Projects\bpl” do
Delphi ou C++ Builder;
• Delphi 2006
o Descompacte o arquivo EasyTEF.zip no diretório Meus
Documentos\Borland Studio Projects\Bpl
• Delphi 2007
o Descompacte o arquivo EasyTEF.zip no diretório Meus
Documentos\Borland Studio C:\Documents and Settings\All
Users\Documents\RAD Studio\5.0\Bpl
• Delphi 2009
o Descompacte o arquivo EasyTEF.zip no diretório Meus
Documentos\Borland Studio C:\Documents and Settings\All
Users\Documents\RAD Studio\6.0\Bpl
• No Delphi, feche todos os projetos (“Menu File”, opção “Close All”);
• Menu “Component”, opção “Install Packages”, pressione o botão “Add”;
• Escolha o arquivo “DEasyTEF.bpl” e pressione o botão “Abrir”, depois,
botão “Ok”;
• Para Delphi 5, 6, 7, adicionar, literalmente, o diretório
$(DELPHI)\Projects\Bpl no Labrary Path do Delphi (Menu “Tools”, opção
“Environment Options”, aba “Library”, campo “Library Path”);
• Para Delphi 2007 e 2009, é necessário adicionar o Path
$(BDSCOMMONDIR)\Bpl no Library Path do Delphi (Menu “Tools”, opção
“Options”, opção “Library – Win32”, campo “Library Path”, botão [...]).
4.3. Instalação da versão com código fonte para Del phi e C++ Builder
• Descompacte o arquivo EasyTEF.zip no diretório em que desejar;
• No Delphi, feche todos os projetos (“Menu File”, opção “Close All”);
• Menu “File”, opção “Open”, vá ao diretório onde o EasyTEF foi
descompactado;
7
© 2009 – EasyTEF Team – Todos os direitos reservados.
• Va ao diretório EasyTEF\package e escolha o diretório cujo nome
corresponde a versão de seu Delphi;
• Abra o arquivo REasyTEF.dpk;
• Na janela do package, pressione o botão “Compile”;
• Abra o arquivo DEasyTEF.dpk;
• Na janela do package, pressione o botão “Compile”, depois o botão
“Install”;
• Adicione o diretório common do EasyTEF no Library path do Delphi (menu
“Tools”, opção “Environment Options”, tab “Library” no Delphi 5, 6, 7 e C++
Builder 6, e menu “Tools”, opção “Options”, opção “Library – Win32”,
campo “Library Path” para Delphi 2006, 2007 e 2009).
4.4. Propriedades
Vejamos as propriedades visualizadas pelo Object Inspector e as
propriedades public que podem ser utilizadas via código. A convenção de escrita de
código que foi utilizada no nome dos métodos e propriedades é a mesma do Java.
Assim, o início dos mesmos é minúsculo e cada palavra dentro do nome inteiro inicia
com maiúscula.
4.4.1. autoVerificarTEF
Esta propriedade indica se o componente deve executar suas verificações
automáticas e executar seus métodos. Quando seu valor for False, não serão feitas
as verificações automáticas de transações pendentes e os métodos do componente
não serão executados, mesmo quando invocados.
Esta propriedade foi desenvolvida para sistemas que são executados em
vários clientes, mas nem todos utilizam TEF dedicado. Desta forma, para clientes
que não usam TEF dedicado, o valor desta propriedade deve ser atribuída para
False em tempo de design.
Assim, quando o cliente utilizar TEF dedicado, seu valor deve ser atribuído
para True em tempo de execução.
8
© 2009 – EasyTEF Team – Todos os direitos reservados.
4.4.2. formMsgOperador
Os gerenciadores TEF retornam mensagens ao operador da AC. Estas
mensagens são mostradas em um form próprio do EasyTEF. Com esta propriedade,
você poderá configurar esse formulário para personalizá-lo de acordo com a
interface de sua AC.
• fonte: Definir a fonte que irá formatar o texto do form de mensagens ao
operador da AC. Dependendo da operação requisitada ao gerenciador,
ele pode devolver uma resposta ao operador do sistema. Esta
mensagem deverá ser formatada com alguma fonte. Esta fonte é a fonte
definida nesta propriedade;
• altura: Altura, em pixels, do form de mensagens ao operador;
• largura: Largura, em pixels, do form de mensagens ao operador;
botaoOK: Permite configurar altura e largura, em pixels, do botão OK.
4.4.3. imprimirComprovante
Se True, imprime o comprovante automaticamente, logo após a execução de
uma operação TEF que possua comprovante a ser impresso, caso a operação tenha
sido aprovada pela rede. Esta propriedade existe para dar mais controle da
impressão ao programador.
No exemplo que acompanha o componente, numa operação administrativa,
o valor desta propriedade está como True. Entretanto, para venda com cartão o
mesmo valor está como False, de forma que sejam feitos alguns controles antes da
impressão do cupom.
4.4.4. imprimirEmUnicaVia
A especificação do SiTef exige que haja uma opção para se imprimir apenas
a primeira via do cupom TEF. Atribuindo o valor True a esta propriedade, quando for
impresso o cupom TEF, será impresso somente a primeira via do cupom.
9
© 2009 – EasyTEF Team – Todos os direitos reservados.
4.4.5. multiplosCartoes
Informa se a transação corrente está sendo feito com múltiplos cartões.
Após informar ao EasyTEF a quantidade de cartões que será utilizada, pela property
numeroDeCartoes, esta property informa se a transação corrente está sendo feita
com múltiplos cartões se o número de cartões utilizado na transação for maior que
um.
4.4.6. numeroDeCartoes
Serve para informar ao EasyTEF quantos serão os cartões utilizados na
transação. Para que todos os tratamentos relacionados a múltiplos cartões possam
ser feitos automaticamente, o componente precisa saber antecipadamente a
quantidade de cartões utilizada na transação. Isto pode ser feito no momento de
informar as formas de pagamento do cupom fiscal. O exemplo que acompanha o
EasyTEF faz exatamente este tratamento. Para maiores informações, ver o método
tratarPagamentoComCartao, da unit FrenteCaixaFrm.pas.
4.4.7. operacaoTEFAtual
Identifica qual operação TEF está sendo executada no momento.
Valores:
• ttNone: Nenhuma operação;
• ttSitefAtivo: Verificação se o Cliente SiTef Modular está ativo;
• ttAdministrativa: Operação administrativa;
• ttCheque: Consulta de cheque;
• ttCartao: Pagamento com cartão;
• ttCancelamento: Cancelamento de um pagamento via cartão;
• ttConfirmacao: Confirmação da rede de cartão de que o Cupom TEF foi
impresso com sucesso após a aprovação da transação;
• ttNaoConfirmacao: Não confirmação a rede de cartão de que a Cupom
TEF foi impresso com sucesso após a aprovação da transação.
10
© 2009 – EasyTEF Team – Todos os direitos reservados.
4.4.8. transacaoAprovada
Indica, após o processamento da transação, se a transação foi aprovada, ou
não, pela rede.
Retorno : True, caso a transação tenha sido aprovada.
4.4.9. transacaoNegada
Informa se a transação atual foi negada. Durante o pagamento com cartão, a
transação pode ser aprovada pela rede de cartão, ou pode ser negada. Quando for
feita uma transação com mais de um cartão, se uma das transações for negada, a
AC deve oferecer ao usuário a opção de fechar o cupom com outra forma de
pagamento ou cancelar a transação toda.
Tratamentos para saber quais foram as transações aprovadas, para o caso
de fechamento do cupom com outras formas de pagamento, devem ser feitos pela
AC pois o valor total de cada forma de pagamento deve ser informado ao cupom
fiscal.
Retorno : True, caso a transação tenha sido negada
4.4.10. valorCampoXXX-XXX
Estes campos são exatamente os mesmos citados na Especificação do
ClientSiTef. Se não fossem tantos, seriam colocados neste documento, porém, pelo
volume de campos, sugerimos que seja lida a Especificação do ClientSiTefb.
4.4.11. usouCartaoDebito
Indica se, após uma venda com cartão, foi utilizado cartão de débito.
Retorno : True caso o cartão utilizado tenha sido um cartão de débito.
4.4.12. usouCartaoCredito
Indica se, após uma venda com cartão, foi utilizado cartão de crédito.
Retorno : True caso o cartão utilizado tenha sido um cartão de crédito.
11
© 2009 – EasyTEF Team – Todos os direitos reservados.
4.5. Métodos
Vejamos os métodos disponibilizados pelo componente para realizar as
transações via cartão ou consulta de cheque, além de recursos adicionais.
É importante ler a Especificação do ClientSiTef, pois alguns parâmetros dos
métodos são campos devolvidos pelo Cliente SiTef Moular logo após uma operação
TEF. O EasyTEFDedicado mapeia esses campos via property valorCampoXXX-
XXX, que é o mesmo campo indicado.
Exemplo: O parâmetro nomeRede (AMEX, REDECARD, VISANET) é
devolvido pelo Cliente SiTef Modular no campo 010-000, que é mapeado no
EasyTEFDedicado pela property valorCampo010_000.
4.5.1. cancelarVenda
Método que executa o cancelamento de uma venda com cartão. Existem
dois tipos de cancelamento: via este método ou via operação administrativa. A
implementação deste método não é obrigatória, mas o componente já está pronto
caso deseje fazer o cancelamento personalizado.
Parâmetros:
• valorTotal: Valor total da venda feita com cartão;
• nomeRede: Nome da rede utilizada (AMEX, REDECARD, VISANET);
• numeroTransacaoNsu: Número da transação fornecido pela rede do
cartão;
• dataTransacao: Data em que ocorreu a transação;
• horaTransacao: Hora em que ocorreu a transação.
4.5.2. cancelarVenda
Esta é uma versão sobrecarregada do método anterior, porém, sem
parâmetros. Este método serve para fazer o cancelamento automático das últimas
transações feitas com cartão na seguinte situação: Digamos que uma compra será
paga com 2 cartões. O primeiro cartão foi aprovado, mas na hora do passar o
segundo cartão, o cliente desiste da compra, então o operador da AC cancela o
segundo pagamento com cartão. A transação anterior foi aprovada e precisa ser
12
© 2009 – EasyTEF Team – Todos os direitos reservados.
cancelada. Basta chamar o método cancelarVenda, que não pede parâmetros, que o
cancelamento da(s) transação(oes) anterior(es) será feito automaticamente.
4.5.3. confirmacaoVendaImpressaoCupom
Confirmar à rede que o cupom fiscal foi impresso com sucesso. Depois de
aprovada a transação via cartão, a rede do mesmo precisa ser notificada de que o
cupom fiscal foi impresso com sucesso.
Parâmetros:
• nomeRede: Nome da rede utilizada (AMEX, REDECARD, VISANET, ...);
• numeroTransacaoNsu: Número da transação fornecido pela rede do
cartão;
• finalizacao: Dados recebidos pelo módulo TEF. Este número é recebido
após uma operação TEF;
• documentoFiscalVinculado: Número do cupom fiscal vinculado ao
pagamento via cartão.
4.5.4. consultarCheque
Fazer uma consulta ou garantia de cheque via Serasa. Por enquanto, este
método foi implementado apenas pela rede REDECARD. Inclusive, a implementação
deste método é obrigatório para a certificação. O exemplo implementa este método
da seguinte maneira:
Quando a venda é encerrada, se a forma de pagamento for “Cheque”, é
habilitado um botão para a consulta do cheque. Se a consulta for feita e o cheque foi
aprovado, imediatamente o cupom fiscal é encerrado e o cupom TEF da consulta é
impresso. Esta é a maneira que as certificadoras exigem que seja feito.
Parâmetros:
• valorTotal: Valor do cheque;
• documentoFiscalVinculado: Valor do documento fiscal vinculado a venda;
• cmc7: Dados do cheque obtidos no mesmo formato de uma leitura cmc7;
• tipoPessoa: Tipo da pessoa do Cheque (F para física e J para jurídica);
13
© 2009 – EasyTEF Team – Todos os direitos reservados.
• documentoPessoa: No. do CPF para pessoa física ou no. do CNPJ para
pessoa jurídica;
• dataCheque: Data do cheque;
• banco: Código do banco;
• agencia: Agência do banco;
• digitoControleAgencia: Dígito verificador do no. da agência, caso exista;
• contaCorrente: No. da conta corrente;
• digitoControleContaCorrente: Dígito verificador do no. da agência, caso
exista;
• numeroCheque: Número do cheque;
• digitoControleNumeroCheque: Digito verificador do cheque, caso exista.
Exemplo : EasyTEF.imprimirComprovante := False;
EasyTEF.identificacao := funcaoGeradoraDeSequencias ;
EasyTEF.consultarCheque(StrToFloat(edtValor.Text), '', '',
'F', edtRegistro.Text, dtpBomPara.Date, edtBanco .Text,
edtAgencia.Text, '', edtContaCorrente.Text, '', edtCheque.Text, '');
4.5.5. fazerRequisicaoAdministrativa
Requisitar ao SiTef que seja feita uma operação administrativa junto aos
módulos de cada rede. Para se configurar os módulos, por exemplo, este método
deve ser executado, assim como para configurar PinPad, transmitir informações de
lote, visualizar relatórios de venda e etc.
Exemplo : EasyTEF.imprimirComprovante := True;
EasyTEF.identificacao := funcaoGeradoraDeSequencias ;
EasyTEF.fazerRequisicaoAdministrativa;
4.5.6. gerenciadorInstalado
Verifica se o Cliente SiTef Modular está instalado.
Retorno : True, caso o SiTef esteja instalado.
14
© 2009 – EasyTEF Team – Todos os direitos reservados.
4.5.7. gerenciadorAtivo
Verifica se o Cliente SiTef Modular está ativo.
Retorno : True, caso o SiTef esteja ativo.
4.5.8. imagemCupomTef
Retorna a imagem do cupom TEF logo após uma operação TEF. É este o
cupom propriamente dito que é retornado pela rede e que deve ser impresso logo
após a aprovação da venda pela rede. O cupom não pode, em hipótese alguma, ser
salvo em arquivo! Caso isso aconteça, penalidades legais podem ser aplicadas.
Para mais informações, entrar em contato com as certificadoras.
Retorno : Um objeto do tipo TStrings contendo a imagem do cupom TEF.
4.5.9. imprimirCupomECF
Imprimir a imagem do cupom TEF. A impressão do cupom TEF deve ser
feita em duas vias com intervalo de pelo menos 5 segundos entre a impressão de
uma via e outra. Este método já cuida dessa regra automaticamente.
Parâmetros: imagemCupomTEF: TStrings.
4.5.10. imprimirCuponsECF
Imprimir os cupons fiscais de transações encerradas com múltiplos cartões.
Este método deve ser chamado após o pagamento com múltiplos cartões, caso o
valor da property imprimirComprovante seja False.
O exemplo que acompanha o EasyTEF verifica se foi feito uma transação
com múltplos cartões e, caso tenha sido feito, executa este método.
4.5.11. naoConfirmacaoVendaImpressaoCupom
Informar à rede que o cupom fiscal não foi impresso com sucesso, o que
cancelará a transação. Depois de aprovada a transação via cartão, a rede do mesmo
precisa ser notificada de que o cupom fiscal foi impresso com sucesso.
15
© 2009 – EasyTEF Team – Todos os direitos reservados.
Parâmetros:
• nomeRede: Nome da rede utilizada (AMEX, REDECARD, VISANET, ...);
• numeroTransacaoNsu: Número da transação fornecido pela rede do
cartão;
• finalizacao: Dados recebidos pelo módulo TEF. Este número é recebido
após uma operação TEF;
• documentoFiscalVinculado: Número do cupom fiscal vinculado ao
pagamento via cartão.
4.5.12. pagarNoCartao
Fazer o pagamento da compra via cartão de débito ou crédito.
Parâmetros:
• valorTotal: Valor total da compra;
• moeda: Moeda que será utilizada para a compra (0 para real e 1 para
dólar);
• documentoFiscalVinculado: Número do cupom fiscal vinculado a compra.
• primeiroCartao: Informa ao componente se o cartão corrente é o primeiro
cartão de múltiplos cartões;
• ultimoCartao: Informa ao componente se o cartão corrente é o último
cartão de múltiplos cartões;
Exemplo: EasyTEF.imprimirComprovante := False;
EasyTEF.identificacao := funcaoGeradoraDeSequencias ;
EasyTEF.numeroDeCartoes := 1;
EasyTEF.pagarNoCartao(valorTotalCartao, 0, numeroCu pom, True, True);
A combinação dos parâmetros de múltiplos cartões obedece a seguinte
tabela verdade:
primeiroCartao ultimoCartao Informação passada ao EasyTEF
False False Cartão(ões) intermediario(s) da transação
False True Último cartão da transação
True False Primeiro cartão da transação
True True Pagamento com apenas um cartão
16
© 2009 – EasyTEF Team – Todos os direitos reservados.
O exemplo que acompanha o EasyTEF faz um tratamento de múltiplos
cartões que informa corretamente o valor destes parâmetros durante o pagamento
com múltiplos cartões no método tratarPagamentoComCartao, da unit
FrenteCaixaFrm.pas.
Informando estes parâmetros, podem ser feitos os tratamentos automáticos
para impressão dos cupons TEF e tratamento de exceção durante a impressão dos
mesmos durante o pagamento com múltiplos cartões.
4.5.13. tratarConsultaCheque
Método que deve ser utilizado após uma consulta de cheque aprovada.
Parâmetros :
• imagemCupomTEF: Imagem do cupom TEF da consulta aprovada;
• nomeRede: Nome da rede utilizada para fazer a consulta;
• numeroTransacaoNsu: Número da transação fornecido pela rede do
cartão;
• finalizacao: Dados recebidos pelo módulo TEF. Este número é recebido
após uma operação TEF;
• documentoFiscalVinculado: Número do cupom fiscal vinculado ao
pagamento via cartão.
4.5.14. tratarCupomFiscal
Fazer o tratamento dos métodos relacionados ao cupom fiscal. Durante a
certificação, vários testes de desligamento da ECF serão realizados em momentos
diferentes da impressão do cupom fiscal. Este método implementa o tratamento
correto para esses momentos. O exemplo que acompanha o componente utiliza este
método constantemente.
Parâmetros :
• método: Qual o método do cupom fiscal que deverá ser tratado. Todos os
valores possuem eventos associados que devem ser programados para
a execução do método propriamente dito da ECF;
17
© 2009 – EasyTEF Team – Todos os direitos reservados.
Valores :
o tmeSubTotal: Indica que o método deve tratar a totalização do cupom
fiscal;
o tmeIniciarFechamentoCupom: Indica que o método deve tratar o inicio
do fechamento do cupom fiscal;
o tmeEfetuarFormaPgto: Indica que o método deve tratar a efetuação
da(s) forma(s) de pagamento do cupom fiscal;
o tmeEfetuarFormaPgtoDescForma: Indica que o método deve tratar a
efetuação da(s) forma(s) de pagamento do cupom fiscal com
descrição;
o tmeTerminarFechamentoCupom: Indica que o método deve tratar o
término do fechamento do cupom fiscal.
• params: Parâmetros que o método específico do cupom fiscal irá
precisar.
Retorno : Se o método propriamente dito do cupom fiscal tiver algum retorno,
será esse o valor de resultado.
4.6. Eventos
Os eventos do componente são basicamente mapeamentos para funções
específicas das impressoras fiscais. Para tanto, o EasyTEFDedicado faz justamente
o tratamento de impressão do cupom fiscal e do cupom TEF devido a necessidade
de confirmação das redes de que o cupom fiscal, e o cupom não fiscal vinculado,
tenham sido impressos com sucesso.
Depois de uma transação ter sido aprovada pela rede de cartão, deve ser
impresso o cupom TEF, que nas impressoras fiscais é impresso como cupom não
fiscal vinculado. Caso este cupom tenha sido impresso com sucesso, a rede de
cartão receberá a confirmação definitiva da transação. Caso este cupom não seja
impresso por qualquer razão (falta de energia, reiniciar o computador, ...) a
transação será cancelada.
O componente fornece recursos para todos estes tratamentos e são
implementados no exemplo que acompanha o EasyTEF.
18
© 2009 – EasyTEF Team – Todos os direitos reservados.
4.6.1. OnAbrirComprovanteNaoFiscalVinculado
Evento que deve executar o comando de abertura do comprovante não fiscal
vinculado da ECF.
Parâmetros :
• operacaoECFOk: Deve indicar se o comando foi executado com sucesso.
• valorCupom: Numa transação com múltiplos cartões, informa qual o valor
do cupom TEF corrente, caso contrário, informa 0,00.
4.6.2. OnEfetuarFormaPagamento
Evento que deve executar o comando para efetuar a(s) forma(s) de
pagamento do cupom fiscal.
Parâmetros :
• operacaoECFOk: Deve indicar se o comando foi executado com sucesso;
• params: Parâmetros que o método da ECF irá precisar (params[0],
params[1], ..., params[n]);
• retorno: Retorno que o método da ECF tiver.
4.6.3. OnEfetuarFormaPagamentoDescricaoForma
Evento que deve executar o comando para efetuar a(s) forma(s) de
pagamento do cupom fiscal com uma descrição.
Parâmetros :
• operacaoECFOk: Deve indicar se o comando foi executado com sucesso;
• params: Parâmetros que o método da ECF irá precisar (params[0],
params[1], ..., params[n]);
• retorno: Retorno que o método da ECF tiver.
4.6.4. OnEncerrarCupomFiscal
Evento disparado quando o cupom fiscal precisa ser cancelado e fechado o
comprovante não fiscal vinculado. Quando ocorre algum problema na impressão do
cupom, o componente pergunta ao operador se ele deseja tentar novamente a
19
© 2009 – EasyTEF Team – Todos os direitos reservados.
operação na ECF. Caso ele escolha não, este evento é disparado. Então, tanto o
cupom não fiscal vinculado quanto o cupom fiscal devem ser fechados.
Exemplo:
Bematech_FI_FechaComprovanteNaoFiscalVinculado;
Bematech_FI_CancelaCupom;
4.6.5. OnFecharComprovanteNaoFiscalVinculado
Evento que deve executar o comando para fechar o comprovante não fiscal
vinculado da ECF.
4.6.6. OnFecharRelatorioGerencial
Evento que deve executar o comando fechar o relatório gerencial da ECF.
Em operações administrativas ou por falta de energia na ECF, o componente irá
abrir um relatório gerencial na ECF. Quando o cupom TEF termina de ser impresso
no relatório gerencial, este método é executado para fechar o mesmo.
4.6.7. OnGerarIdentificacao
Este evento é chamado para a geração da chave identificadora única, que
pode ser um número seqüencial, da operação TEF que será executada. Os números
gerados neste evento nunca devem se repetir.
Parâmetros:
• identificacao: Deve ser atribuído um número inteiro a este parâmetro e
este valor nunca deve ser repetido.
4.6.8. OnImpressoraTemPapel
Evento que deve executar o tratamento de falta de papel na ECF.
Parâmetros :
• operacaoECFOk: Deve indicar se a impressora TEM PAPEL.
20
© 2009 – EasyTEF Team – Todos os direitos reservados.
4.6.9. OnImprimirRelatorioGerencial
Evento que deve executar o comando de impressão do relatório gerencial.
Um detalhe importante sobre este evento é que ele é disparado para impressão do
cupom TEF em bloco, ou seja, de três em três linhas, pois não é possível enviar todo
o cupom TEF de uma só vez para a impressão.
Parâmetros :
• imagemCupomTef: Blocos de três linhas da imagem do cupom TEF;
• impressaoOk: Deve indicar se o bloco foi impresso com sucesso.
O método que imprime em bloco pode ser sobre escrito em componentes
descendentes. Eis o protótipo do método, que tem manipulador de acesso protected:
procedure imprimirEmBloco(imagemCupomTef: TStrings;
var impressaoTEFOk: Boolean; relatorioGerencial: Boole an = False);
virtual;
4.6.10. OnIniciarFechamentoCupomFiscal
Evento que deve executar o comando de inicio de fechamento de cupom
fiscal.
Parâmetros :
• operacaoECFOk: Deve indicar se o comando foi executado com sucesso.
4.6.11. OnTerminarCancelamentoMultiplosCartoes
Durante uma transação com múltiplos cartões, um dos cartões pode ser
negado pela rede de cartão por alguma razão. Neste momento, o usuário deve ter a
opção de terminar o fechamento do cupom com outra(s) forma(s) de pagamento ou
cancelar o cupom. Caso ele queira cancelar o cupom, a tela da AC deve ser limpa
para uma nova transação.
O tratamento de limpeza da tela de frente de caixa da AC, após o
cancelamento de uma transação feita com múltiplos cartões, deve ser feito neste
evento.
21
© 2009 – EasyTEF Team – Todos os direitos reservados.
4.6.12. OnTerminarFechamentoCupom
Evento que deve executar o comando de termino de fechamento do cupom
fiscal.
Parâmetros :
operacaoECFOk: Deve indicar se o comando foi executado com sucesso.
4.6.13. OnUsarComprovanteNaoFiscalVinculado
Método que deve executar o comando de uso do comprovante não fiscal
vinculado da ECF. Um detalhe importante sobre este evento é que ele é disparado
para impressão do cupom TEF em bloco, ou seja, de três em três linhas, pois não é
possível enviar todo o cupom TEF de uma só vez para a impressão.
Parâmetros :
• imagemCupomTef: Blocos de três linhas da imagem do cupom TEF;
• impressaoOk: Deve indicar se o bloco foi impresso com sucesso.
O método que imprime em bloco pode ser sobre escrito em componentes
descendentes. Eis o protótipo do método, que tem manipulador de acesso protected:
procedure imprimirEmBloco(imagemCupomTef: TStrings;
var impressaoTEFOk: Boolean; relatorioGerencial: Boole an = False);
virtual;
4.6.14. OnSubTotalizarCupom
Método que deve executar o comando de totalização do valor do cupom da
ECF.
Parâmetros :
operacaoECFOk: Deve indicar se o comando foi executado com sucesso.
4.6.15. OnValorPersonalizadoReq
Durante o processo de certificação, será avaliado se sua AC utiliza alguma
biblioteca externa para comunicação com o SiTef. Para mostrar que é a sua AC,
22
© 2009 – EasyTEF Team – Todos os direitos reservados.
mesmo, que cria os arquivos de mensagens com o SiTef, o certificador irá solicitar
que durante a certificação seja adicionado um novo campo com um novo valor no
arquivo de mensagens, que não será tratado pelo SiTef, mas que mostrará que
apenas a sua AC faz a troca de mensagens com o SiTef sem intervenção de
bibliotecas terceiras.
Parâmetros :
• campo: Nome do campo que será adicionado ao arquivo de mensagem;
• valor: Valor do campo que será adicionado ao arquivo de mensagem.
23
© 2009 – EasyTEF Team – Todos os direitos reservados.
5. ÚLTIMOS PASSOS
5.1. O processo de certificação
Depois de implementado o EasyTEFDedicado em sua AC, o Roteiro de Pré-
Homologação Client SiTef deve ser executado.
Ele possui passos numerados. Cada passo pode gerar ou não um cupom
fiscal com um cupom não fiscal vinculado. Cada cupom deve ser numerado com o
número do teste equivalente a este cupom e todos devem ser enviados à Software
Express para ela avaliar se sua AC pode passar pela certificação.
Quando eles aprovarem o roteiro de teste, será agendada a certificação.
Isso acarretará em deslocamento a São Paulo - SP. A certificadora enviará por email
endereços de hotéis próximos, lanchonetes e mapas de como se guiar até lá.
Será necessário levar preenchido o roteiro de pré-homologação com os
dados da empresa e do software, além das fichas de solicitação de homologação.
Para mais detalhes sobre estes documentos, será necessário entrar em contato com
a Software Express.
Será necessário levar uma gravadora de CD para gravar sua AC, pois a
certificadora fica com uma cópia dela.
Durante a homologação, o certificador fará um teste excluindo alguns
arquivos do gerenciador e irá perguntar se a AC faz backup desses arquivos pra
depois poder excluir este backup. O EasyTEFDedicado gera um backup com o
mesmo nome do executável da AC, mas com extensão .ini, na pasta onde está o
executável.
5.2. Instalação em seu cliente
Depois que sua AC for certificada, você torna-se um integrador do SiTef,
desta forma, o responsável pela manutenção e configuração do Cliente SiTef
Modular e do servidor SiTef, em seu(s) cliente(s) é o desenvolvedor / Software
House.
O contrato estabelecido entre a Software Express e o desenvolvedor /
Software House, agora integrador, prevê uma mensalidade pelo uso do SiTef. O
valor desta mensalidade varia de acordo com o número de estações de trabalho que
o(s) cliente(s) do integrador utilizará.
24
© 2009 – EasyTEF Team – Todos os direitos reservados.
A Software Express recomenda que o integrador deve cobrar seja maio que
o que ela cobra, para que o integrador possa cobrir os custos para oferecer suporte
ao SiTef.
Seus(s) cliente(s) deverá(ao) adquirir um roteador e linha dedicada,
chamada de X25, para utilizar o TEF dedicado. A linha X25 pode ser contratada
junto as operadoras de telefonia e possuem um valor mensal a ser pago a
operadora. Dúvidas relacionadas a infra-estrutura de rede que seu cliente utilizará
devem ser sanadas junto a Software Express.
Como podemos perceber, seu cliente deve possuir uma demanda muito forte
por pagamento com cartão, pois são vários os custos por fazer pagamentos com
cartão via TEF dedicado.
Outro detalhe importante é que a certificação de sua AC é valida por um
ano, ou seja, uma vez por ano será necessário ir a São Paulo para re-certificar seu
software. Por esta mesma razão, o valor pago pelo EasyTEF pode ser anual, ou não.
A anuidade serve para o recebimento de atualizações e correções do
componente durante um ano, a partir da data da compra. Porém, ela não é
obrigatória. Caso não deseje receber atualizações e correções, basta pagar apenas
uma vez.
Exemplo: Adquirindo o componente dia 23/09/2008, havendo alterações na
especificação TEF, por parte das redes de cartão, ou se for descoberto algum bug,
até 23/09/2009, a atualização será recebida gratuitamente.
Caso haja alterações depois do dia 23/09/2009 e a anuidade seguinte não
for paga, não há problema no uso do componente, porém, as possíveis atualizações
não serão recebidas. Então, caso queira pagar apenas uma vez, não há problemas
com a licença.
Por fim, esperamos que o EasyTEFDedicado tenha cumprido sua proposta
de facilitar e agilizar, com baixo custo, a certificação de sua AC no processo de
certificação TEF dedicado. Qualquer dúvida, crítica ou sugestão, entre em contato
conosco pelo nosso site http://www.easytef.com.br.
Obrigado.
EasyTEF Team