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); }
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)); } }
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); }
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); }
public static Respostas.RespostaTransacao ObterSituacao(string transacaoId, JetDev.Cielo.Entidades.Ambiente ambiente) { return(ObterSituacao(new Requisicoes.RequisicaoConsulta(transacaoId), ambiente)); }
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); }
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); }