Confirmando ou desfazendo um pagamento

using System;
using Cappta.Gp.Api.Com;

namespace CappAPIIntegration
{
    class Program
    {
        static void Main(string[] args)
        {
            //Não esqueça da autenticação e do código para processar o pagamento aqui \o/

            IRespostaOperacaoAprovada pagamentoAprovado = iteracaoTef as IRespostaOperacaoAprovada;

            Console.WriteLine("Pagamento Aprovado =D");
            Console.WriteLine(pagamentoAprovado.CupomCliente);
            Console.WriteLine(pagamentoAprovado.CupomLojista);

            Console.WriteLine("Deseja confirmar este pagamento? (S/N)");
            ConsoleKeyInfo keyInfo = Console.ReadKey();

            int resultadoFinalizacao = keyInfo.Key == ConsoleKey.S
                ? cappta.ConfirmarPagamentos()
                : cappta.DesfazerPagamentos();

            if (resultadoFinalizacao != 0)
            {
                Console.WriteLine("Não foi possível finalizar o pagamento. Código de erro {0}", resultado);
                return;
            }
        }
    }
}
program cappapiintegration;

uses Cappta_Gp_Api_Com_1_0_TLB, SysUtils;

var
  cappta : IClienteCappta;
  iteracaoTef : IIteracaoTef;
  tipoIteracao : integer;
  resultado : integer;
  pagamentoAprovado : IRespostaOperacaoAprovada;
  keyInfo : string;

begin
  // -- Não esqueça de realizar a autenticação e iniciar uma operação tef aqui \o/ --

  iteracaoTef := cappta.IterarOperacaoTef();
  tipoIteracao := iteracaoTef.Get_TipoIteracao;

  if tipoIteracao <> 1 then
  begin
      WriteLn('Não interessa nesse exemplo =p');
      exit;
  end
  else
  begin
    pagamentoAprovado := (iteracaoTef as IRespostaOperacaoAprovada);

    WriteLn('Pagamento Aprovado =D');
    WriteLn(pagamentoAprovado.Get_CupomCliente);
    WriteLn(pagamentoAprovado.Get_CupomLojista);

    WriteLn('Deseja confirmar este pagamento? (S/N)');
    ReadLn(Input, keyInfo);

    if UpperCase(keyInfo) = 'S' then
    begin
        resultado := cappta.ConfirmarPagamentos;
    end
    else
    begin
        resultado := cappta.DesfazerPagamentos;
    end;

    if resultado <> 0 then
    begin
         WriteLn(Format('Não foi possível iniciar a operação. Código de erro %d', [resultado]));
         exit;
    end;
  end;
end.
Imports Cappta.Gp.Api.Com
Imports Cappta.Gp.Api.Com.Model

Module Module1
    Sub Main()

        Dim cappta As New ClienteCappta()

        Dim iteracaoTef As IIteracaoTef

        Dim pagamentoAprovado As IRespostaOperacaoAprovada = iteracaoTef

        Console.WriteLine("Pagamento Aprovado =D")
        Console.WriteLine(pagamentoAprovado.CupomCliente)
        Console.WriteLine(pagamentoAprovado.CupomLojista)

        Console.WriteLine("Deseja confirmar este pagamento? (S/N)")
        Dim keyInfo As ConsoleKeyInfo = Console.ReadKey()

        Dim resultadoFinalizacao As Integer
        If resultadoFinalizacao = keyInfo.Key = ConsoleKey.S Then
            cappta.ConfirmarPagamentos()

        Else
            cappta.DesfazerPagamentos()
        End If

        If resultadoFinalizacao <> 0 Then
            Console.WriteLine("Não foi possível finalizar o pagamento")
        End If

    End Sub

End Module
Imports Cappta.Gp.Api.Com
Imports Cappta.Gp.Api.Com.Model

Module Module1
    Sub Main()

        Dim cappta As New ClienteCappta()

        Dim iteracaoTef As IIteracaoTef

        Dim pagamentoAprovado As IRespostaOperacaoAprovada = iteracaoTef

        Console.WriteLine("Pagamento Aprovado =D")
        Console.WriteLine(pagamentoAprovado.CupomCliente)
        Console.WriteLine(pagamentoAprovado.CupomLojista)

        Console.WriteLine("Deseja confirmar este pagamento? (S/N)")
        Dim keyInfo As ConsoleKeyInfo = Console.ReadKey()

        Dim resultadoFinalizacao As Integer
        If resultadoFinalizacao = keyInfo.Key = ConsoleKey.S Then
            cappta.ConfirmarPagamentos()

        Else
            cappta.DesfazerPagamentos()
        End If

        If resultadoFinalizacao <> 0 Then
            Console.WriteLine("Não foi possível finalizar o pagamento")
        End If

    End Sub

End Module
private void FinalizarPagamento() 
  {
        if (processandoPagamento = false) {
            return;
        }
        if (sessaoMultiTefEmAndamento) {
            quantidadeCartoes--;
            if (quantidadeCartoes > 0) {
                return;
            }
        }
        String mensagem = GerarMensagemTransacaoAprovada();

        this.processandoPagamento = false;
        this.sessaoMultiTefEmAndamento = false;

        int dialogButton = JOptionPane.YES_NO_OPTION;
        int dialogResult = JOptionPane.showConfirmDialog(null, mensagem + "?", "", dialogButton);
        if (dialogResult == JOptionPane.YES_OPTION) {
            cappta.confirmarPagamentos();

        } else {
            cappta.desfazerPagamentos();
        }
    }

Sempre que retornamos Operação Aprovada, ficamos aguardando a confirmação por parte da sua automação para finalizar a operação de pagamento

Caso o cupom fiscal tenha sido impresso corretamente e deseje confirmar o pagamento utilize a função ConfirmarPagamentos(), caso contrário se houver algum problema na impressão do cupom fiscal e desejar desfazer e cancelar o pagamento utilize a função DesfazerPagamentos().

Reforçamos que para as operações administrativas como reimpressão e cancelamento não será necessário finalizar a operação ao receber uma resposta de Operação Aprovada no fluxo de iteração.

Obs: Esse valor pode ser alterado nas configurações da aplicação, para isso será necessário entrar em contato com o suporte da Cappta.

👍

Quer mais detalhes desse procedimento?

Para detalhamento dos códigos de retorno consulte a tabela Possíveis códigos de retorno