Ir para conteúdo
  • Cadastre-se

fla

Membros
  • Total de ítens

    1
  • Registro em

  • Última visita

Posts postados por fla

  1. 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!

×
×
  • 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.

The popup will be closed in 10 segundos...