Método Cancelar:

Este método é responsável pelo Cancelamento de um pagamento.

 

Chamada do método Cancelar:

 
  
spdTEF.Cancelar(aSenha : string; aNumeroControle : string));   

Onde os parâmetros

  • aSenha :
    • Tipo: String.
    • Senha de segurança que deve ser informada para o cancelamento. Esta senha é criada no processo de homologação entre a Empresa e a Cappta.
    • Nos servidores de homologação, esta senha é: cappta.
  • aNumeroControle
    • Tipo: String.
    • Numero do Controle do cupom TEF que será cancelado. Este número deve sempre ser armazenado pelo ERP do cliente.
    • O número controle pode ser conseguido pela propriedade " UltimoNumeroControle " ou através dos retornos tipados.

 

O Retorno deste método é o cupom fiscal de estorno, pronto para ser impresso:

"             HOMOLOGACAO"
"          42.724.382/0001-46"
""
"           **VIA CLIENTE**"
"             **ESTORNO**"
"                CIELO"
"   VISA - ESTORNO DE COMPRA CREDITO"
"         **** **** **** 0002"
"        ESTAB 222222220000000"
"          28/10/16 10:08:30"
"        AUT= SIMULA DOC= 77291"
"             VALOR= 1,00"
"        CONTROLE= 10872197028"
"            CAPPTA CARTOES"
"             HOMOLOGACAO"
"          42.724.382/0001-46"
""
"           **VIA LOJISTA**"
"             **ESTORNO**"
"                CIELO"
"   VISA - ESTORNO DE COMPRA CREDITO"
"         **** **** **** 0002"
"        ESTAB 222222220000000"
"          28/10/16 10:08:30"
"        AUT= SIMULA DOC= 77291"
"             VALOR= 1,00"
"        CONTROLE= 10872197028"
"            CAPPTA CARTOES"

 

Assim como o retorno de um pagamento, o cancelamento também enviará automaticamente o cupom TEF para impressora.

O Cancelamento de cupom TEF, fará a leitura do número do Cartão utilizado para a autorização desta transação que será cancelada. Neste caso, o processo é idêntico a uma autorização de Crédito por exemplo,ou seja, se no momento que o PinPad solicitar a inserção do cartão o usuário teclar CANCELA (botão vermelho) o componente Tecnospeed TEF fará a leitura do propriedade NumeroCartao .

  • Se esta propriedade estiver preenchida, porém o cartão for inserido no PinPad, o componente fará a leitura do cartão normalmente e ignorará esta propriedade.
  • Se esta propriedade estiver vazia e o cliente teclar o botão vermelho do PinPad (cancelamento), o componente lançará um evento que forçará a abertura de uma tela questionando se deseja realmente cancelar esta ação, por exemplo:

Imagem de exemplo

Neste caso o usuário devem entrar com as opções 1 para SIM e 0 para NÃO. Essa informação deve ser via números, pois em diversos casos a frente de caixa possuí somente um teclado numérico (sem  mouse  por exemplo).

  • A opção  NÃO   retorna para a solicitação de inserir o cartão de crédito no PinPad.
  • A opção  SIM  encerra o processo e o componente retorna:   4,Cancelado pelo Operador  .

 

Como forma de segurança, a CAPPTA emite uma mensagem de confirmação de cancelamento, onde o usuário deve digitar um código randômico antes de confirmar. Exemplo da mensagem:

Neste caso o usuário devem entrar digitar o valor listado na mensagem e teclar OK. Essa informação deve ser via números, pois em diversos casos a frente de caixa possuí somente um teclado numérico (sem  mouse  por exemplo).

A opção  Cancel  encerra o processo e o componente retorna:   4,Cancelado pelo Operador  .

 

Observações

  • Para o cancelamento de um cupom TEF, devemos aguardar pelo menos 90 segundos após a autorização.
  • O cancelamento de um cupom TEF, só estará disponível nas próximas 24 horas . Passado este prazo, não é mais possível cancelar o cupom.

 

Exemplo de aplicação:

 
  
spdTEF.Cancelar('cappta', '1234567890');   
 
  
procedure CancelarTEF;
var 
  _numeroControle : string; 
  _senhaAdministrativa : string;
  
begin
  _numeroControle := spdTef.UltimoNumeroControle;
  _senhaAdministrativa:= 'cappta';

  if _senhaAdministrativa = EmptyStr then
  begin
     ShowMessage('A senha administrativa não pode ser vazia.');
     exit;
  end;

  spdTEF.Cartao.NumeroCartao := '123456789012';
  MostrarResultado.text := spdTEF.Cancelar(_senhaAdministrativa, _numeroControle);
end;   

 

 


Sumário