예제 #1
0
파일: Cielo.cs 프로젝트: RubensBR/Cielo
        public Retorno CancelarTransacao(string tid)
        {
            var ret = new Retorno();

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

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

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

                var res = EnviarMensagem(xml);

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

            return ret;
        }
예제 #2
0
파일: Cielo.cs 프로젝트: RubensBR/Cielo
        public Retorno CriarTransacao(DadosPedido dadosPedido, DadosEcAutenticacao dadosEc, FormaPagamento formaPagamento,
            Uri urlRetorno, RequisicaoNovaTransacaoAutorizar reqAutorizar, bool capturar)
        {
            var ret = new Retorno();

            var msg = new RequisicaoNovaTransacao
            {
                id = dadosPedido.numero,
                versao = MensagemVersao.v110,
                dadosec = dadosEc,
                dadospedido = dadosPedido,
                formapagamento = formaPagamento,
                urlretorno = urlRetorno.AbsoluteUri,
                autorizar = reqAutorizar,
                capturar = capturar
            };

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

                var res = EnviarMensagem(xml);

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

            return ret;
        }
예제 #3
0
파일: Cielo.cs 프로젝트: RubensBR/Cielo
        private Retorno XmlToRetorno(string xml)
        {
            var ret = new Retorno();

            if (!string.IsNullOrEmpty(xml))
            {
                RetornoTransacao transacao;
                RetornoErro erro;

                if (xml.Contains("</transacao>"))
                {
                    transacao = xml.ToType<RetornoTransacao>(Encoding.GetEncoding("iso-8859-1"));
                    ret.Transacao = transacao;
                    ret.Transacao.rawXml = xml;
                }
                else if (xml.Contains("</erro>"))
                {
                    erro = xml.ToType<RetornoErro>(Encoding.GetEncoding("iso-8859-1"));
                    ret.Erro = erro;
                }
            }

            return ret;
        }
예제 #4
0
파일: Cielo.cs 프로젝트: RubensBR/Cielo
        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;
        }