Ir para conteúdo
  • Cadastre-se

dev botao

Clisitef Homologação Múltiplos Cartões


  • Este tópico foi criado há 1763 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde pessoal

Estou passando por um problema na homologação do Sitef com múltiplos cartões, teste 38:

- Valor da transação: 100,00

 

 

- Para esta transação a aplicação deve estar pronta para realizar o pagamento no cartão novamente, passar o restante em dinheiro ou cancelar toda a venda.

- Realizar uma transação de Crédito magnético com uma parte do valor da venda

 - Selecionar a opção á vista

 - Realizar o pagamento do restante do valor com cartão de Débito

 - Desativar o SiTef

 - Selecionar a opção á vista

 - Após o retorno da mensagem para a aplicação, ativar o SiTef, fechar o restante do valor da venda em dinheiro e concluir a venda normalmente.

- A CliSiTef retornará o timeout do SiTef

 - A aplicação deverá exibir a mensagem retornada para o operador e retornar para a tela de pagamentos, permitindo que o operador selecione cartão novamente, outra forma de pagamento ou cancele a venda.

 - Verificar comandos de mensagem retornados.

 - A transação será autorizada

- Há impressão de cupom.

 

Obtive a seguinte resposta deles:

Automação enviando uma função Finaliza para cada operação em uma venda de múltiplos cartões. Em uma venda de múltiplos cartões, deve ser enviado o mesmo número de CupomFiscal para todas as operações dentro da venda de múltiplos. Essas transações ficarão pendentes até a automação identificar que atingiu o valor total da venda, e então, enviará apenas uma função Finaliza com o mesmo número de CupomFiscal para confirmar todas as operações anteriores dentro da venda de múltiplos.

E quando houver desligamento da automação durante uma venda de múltiplos, quando a automação voltar ela deverá obter as transações pendentes e cancelar todas elas.

 

Analisando a AcbrTefD, função ConfirmarTransacoesPendentes percebi que é realmente enviada uma confirmação para cada transação:

procedure TACBrTEFD.ConfirmarTransacoesPendentes(ApagarRespostasPendentes: Boolean);
var
  HouveConfirmacao: Boolean;
  I : Integer;
begin
  fTefClass.GravaLog( 'ConfirmarTransacoesPendentes' );

  HouveConfirmacao := False;
  I := 0;
  while I < RespostasPendentes.Count do
  begin
    try
      with RespostasPendentes do
      begin
        GPAtual := TipoGP;   // Seleciona a Classe do GP

        if not CNFEnviado then
        begin
          CNF( Rede, NSU, Finalizacao, DocumentoVinculado );
          CNFEnviado       := True;
          HouveConfirmacao := True;
        end;

        if ApagarRespostasPendentes then
        begin
          ApagaEVerifica( ArqRespPendente );
          ApagaEVerifica( ArqBackup );
        end;

        Inc( I ) ;
      end;
    except
      { Exceção Muda... Fica em Loop até conseguir confirmar e apagar Backup }
    end;
  end ;

  try
    if HouveConfirmacao and Assigned( fOnDepoisConfirmarTransacoes ) then
      fOnDepoisConfirmarTransacoes( RespostasPendentes );
  finally
    if ApagarRespostasPendentes then
      RespostasPendentes.Clear;
  end;
end;
 

 

Alguém já passou por essa situação ?  Teria que mudar esse código ?

 

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Veja os fontes da classe ACBrTEFDCliSitef.pas... ele não envia CNF se o mesmo já foi enviado..

   { Já Finalizou este Documento por outra Transação ? }
   if (pos(DocumentoVinculado, fDocumentosProcessados) > 0) then
      exit;                  

Basta você monitora o Log do ACBrTEFD ou do próprio SiTef, e verificar os comandos enviados e respostas recebidas...

  • Curtir 1
  • Obrigado 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1763 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.