コード例 #1
0
        internal static Tresposta Requisitar <Tresposta, TRequest>(TRequest request, JetDev.Cielo.Entidades.Ambiente enviroment)
            where Tresposta : RespostaBase
            where TRequest : RequisicaoBase
        {
            var encoding     = Encoding.GetEncoding(encodingDefault);
            var xmlRequest   = ParaXML <TRequest>(request);
            var postData     = string.Format("mensagem={0}", xmlRequest);
            var postDataByte = encoding.GetBytes(postData);
            var url          = string.Empty;

            switch (enviroment)
            {
            case JetDev.Cielo.Entidades.Ambiente.TesteCieloIntegrado:
            case JetDev.Cielo.Entidades.Ambiente.TesteWebService:
                url = Config.URLTeste;
                break;

            case JetDev.Cielo.Entidades.Ambiente.Producao:
                url = Config.URLProducao;
                break;

            default:
                break;
            }
            var wr = WebRequest.Create(url);

            wr.Method        = "POST";
            wr.ContentType   = "application/x-www-form-urlencoded";
            wr.ContentLength = postDataByte.Length;
            var stream = wr.GetRequestStream();

            stream.Write(postDataByte, 0, postDataByte.Length);
            stream.Flush();
            stream.Close();


            StreamReader sr          = new StreamReader(wr.GetResponse().GetResponseStream(), encoding);
            var          XMLResposta = sr.ReadToEnd();

            if (!string.IsNullOrEmpty(XMLResposta) && XMLResposta.Contains("<erro"))
            {
                throw new ExcecaoPagamento(DeXML <Erro>(XMLResposta), xmlRequest, XMLResposta);
            }

            var resposta = DeXML <Tresposta>(XMLResposta);

            resposta.XMLRequisicao = xmlRequest;
            resposta.XMLResposta   = XMLResposta;

            request.XMLRequisicao = xmlRequest;
            request.XMLResposta   = XMLResposta;

            return(resposta);
        }
コード例 #2
0
 internal static Tresposta Requisitar <Tresposta, TRequest>(TRequest request, JetDev.Cielo.Entidades.Ambiente enviroment)
     where Tresposta : RespostaBase
     where TRequest : RequisicaoBase
 {
     if (enviroment == Ambiente.ProducaoCieloCheckout)
     {
         return(RequisitarJSON <Tresposta, TRequest>(request, enviroment));
     }
     else
     {
         return(RequisitarXML <Tresposta, TRequest>(request, enviroment));
     }
 }
コード例 #3
0
        public static Respostas.RespostaTransacao AutorizarPagamento(Requisicoes.RequisicaoTransacao transacao, JetDev.Cielo.Entidades.Ambiente ambiente)
        {
            if (!transacao.FormaPagamento.Validar())
            {
                throw new Exception("Requisição inválida");
            }
            if (transacao.EC == null || ambiente != Ambiente.Producao)
            {
                transacao.EC = ObterECData(ambiente);
            }
            var resposta = Utils.Requisitar <Respostas.RespostaTransacao, Requisicoes.RequisicaoTransacao>(transacao, ambiente);

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

            return(resposta);
        }
コード例 #4
0
        public static Respostas.RespostaTransacao ObterSituacao(Requisicoes.RequisicaoConsulta consulta, JetDev.Cielo.Entidades.Ambiente ambiente)
        {
            if (string.IsNullOrEmpty(consulta.TransacaoId))
            {
                throw new Exception("ID da transação é obrigatório");
            }
            if (consulta.EC == null)
            {
                consulta.EC = ObterECData(ambiente);
            }

            var resposta = Utils.Requisitar <Respostas.RespostaTransacao, Requisicoes.RequisicaoConsulta>(consulta, ambiente);

            Config.CallLogAction(resposta.TransacaoId, resposta.XMLRequisicao, resposta.XMLResposta);
            return(resposta);
        }
コード例 #5
0
 public static Respostas.RespostaTransacao ObterSituacao(string transacaoId, JetDev.Cielo.Entidades.Ambiente ambiente)
 {
     return(ObterSituacao(new Requisicoes.RequisicaoConsulta(transacaoId), ambiente));
 }
コード例 #6
0
        public static TokenDados ObterTokenCartao(Requisicoes.RequisicaoToken requiscaoToken, JetDev.Cielo.Entidades.Ambiente ambiente)
        {
            if (requiscaoToken.EC == null)
            {
                requiscaoToken.EC = ObterECData(ambiente);
            }

            var resposta = Utils.Requisitar <Respostas.RespostaToken, Requisicoes.RequisicaoToken>(requiscaoToken, ambiente);

            Config.CallLogAction(null, resposta.XMLRequisicao, resposta.XMLResposta);
            return(resposta != null && resposta.Token != null ? resposta.Token.Dados : null);
        }
コード例 #7
0
        internal static TResposta RequisitarJSON <TResposta, TRequest>(TRequest request, JetDev.Cielo.Entidades.Ambiente enviroment)
            where TResposta : RespostaBase
            where TRequest : RequisicaoBase
        {
            var encoding = System.Text.Encoding.UTF8;// Encoding.GetEncoding(encodingDefault);

            request.XMLRequisicao = JsonConvert.SerializeObject(request, new JsonSerializerSettings()
            {
                NullValueHandling = NullValueHandling.Ignore
            });
            var postDataByte = encoding.GetBytes(request.XMLRequisicao);

            /*
             * using (var wc = new WebClient())
             * {
             *  wc.Headers.Add("MerchantID", Config.ChaveEstabelecimento);
             *  wc.Headers.Add("Content-Type", "text/json");
             *  var responseService = wc.UploadData(Config.URLProducaoCieloCheckout, "GET", postDataByte);
             *  request.XMLResposta = encoding.GetString(responseService);
             * }
             */

            var wr = WebRequest.Create(Config.URLProducaoCieloCheckout);

            wr.Method = "POST";
            wr.Headers.Add("MerchantID", Config.ChaveEstabelecimento);
            wr.ContentType   = "text/json";
            wr.ContentLength = postDataByte.Length;
            var stream = wr.GetRequestStream();

            stream.Write(postDataByte, 0, postDataByte.Length);
            stream.Flush();
            stream.Close();

            StreamReader sr           = new StreamReader(wr.GetResponse().GetResponseStream(), encoding);
            var          jsonResposta = sr.ReadToEnd();

            request.XMLResposta = jsonResposta;


            var resposta = JsonConvert.DeserializeObject <RespostaTransacaoCheckout>(request.XMLResposta);

            resposta.XMLRequisicao = request.XMLRequisicao;
            resposta.XMLResposta   = request.XMLResposta;

            return((TResposta)(object)resposta);
        }