Beispiel #1
0
        public static Respostas.RespostaTransacao Capturar(string transacaoId, decimal? value)
        {
            if (!value.HasValue)
            {
                var status = ObterSituacao(transacaoId);
                if (status == null)
                    throw new Exception("Transação não encontrada");

                var autorizantionValue = status != null ? status.Autorizacao.Valor : 0;
                var capturedValues = status.Captura != null ? status.Captura.Valor : 0;

                value = autorizantionValue - capturedValues;

                if (value.Value <= 0)
                    throw new Exception("Valor não disponível para esta transação");
            }



            var taken = new RequisicaoCaptura(transacaoId, ObterECData());
            var resposta = Utils.Requisitar<Respostas.RespostaTransacao, Requisicoes.RequisicaoCaptura>(taken);

            Config.CallLogAction(resposta.TransacaoId, resposta.XMLRequisicao, resposta.XMLResposta);

            return resposta;
        }
Beispiel #2
0
        public static Respostas.RespostaTransacao Capturar(string transacaoId, decimal?value)
        {
            if (!value.HasValue)
            {
                var status = ObterSituacao(transacaoId);
                if (status == null)
                {
                    throw new Exception("Transação não encontrada");
                }

                var autorizantionValue = status != null ? status.Autorizacao.Valor : 0;
                var capturedValues     = status.Captura != null ? status.Captura.Valor : 0;

                value = autorizantionValue - capturedValues;

                if (value.Value <= 0)
                {
                    throw new Exception("Valor não disponível para esta transação");
                }
            }

            var taken    = new RequisicaoCaptura(transacaoId, ObterECData());
            var resposta = Utils.Requisitar <Respostas.RespostaTransacao, Requisicoes.RequisicaoCaptura>(taken);

            Config.CallLogAction(resposta.TransacaoId, resposta.XMLRequisicao, resposta.XMLResposta);

            return(resposta);
        }
Beispiel #3
0
        public Retorno CapturarTransacao(string tid, decimal valor, string anexo)
        {
            var ret = new Retorno();

            var dadosEc = new DadosEcAutenticacao {
                numero = Numero, chave = Chave
            };

            var msg = new RequisicaoCaptura
            {
                id      = DateTime.Now.ToString("yyyyMMdd"),
                versao  = MensagemVersao.v110,
                tid     = tid,
                dadosec = dadosEc
            };

            if (valor > -1)
            {
                msg.valor = valor.ToFormatoCielo();
            }

            if (!string.IsNullOrWhiteSpace(anexo))
            {
                msg.anexo = anexo;
            }

            try
            {
                var xml = msg.ToXml <RequisicaoCaptura>(Encoding.GetEncoding("iso-8859-1"));

                var res = EnviarMensagem(xml);

                ret = XmlToRetorno(res);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(ret);
        }