/// <summary> /// Faz a solicitação junto a API do Bradesco. /// </summary> /// <param name="boleto">Requisição do boleto</param> /// <returns>Retorna a resposta do webservice</returns> public BoletoResposta Solicitar(BoletoRequisicao boleto) { try { if (!boleto.Valido) { throw new Exception("Boleto não é válido"); } } catch (Exception ex) { throw new Exception("Boleto não é válido. Consulte as exceções internas", ex); } var req = (HttpWebRequest)WebRequest.Create(UrlRequisicao + "transacao"); var data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(boleto)); //Configuracao do cabecalho da requisicao req.Method = "POST"; req.ContentType = _mediaType + ";charset=" + _charSet; req.ContentLength = data.Length; req.Accept = _mediaType; req.Headers.Add(HttpRequestHeader.AcceptCharset, _charSet); //Credenciais de Acesso String header = boleto.MerchantId + ":" + ChaveSegura; String headerBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(header)); req.Headers.Add(HttpRequestHeader.Authorization, "Basic " + headerBase64); req.GetRequestStream().Write(data, 0, data.Length); var response = (HttpWebResponse)req.GetResponse(); if (response == null || response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.Created) { throw new BoletoApiException { Codigo = response.StatusCode, Source = "Erro na transação" }; } var resposta = new BoletoResposta(); var bodyResposta = response.GetResponseStream(); //var strBody = bodyResposta.ToString(); using (var reader = new StreamReader(bodyResposta)) { var jsonretorno = reader.ReadToEnd(); resposta = JsonConvert.DeserializeObject <BoletoResposta>(jsonretorno); } return(resposta); }
public static BoletoRequisicao GeraRequisicaoBoleto() { var retorno = new BoletoRequisicao { MerchantId = "100006095", TokenRequestConfirmacaoPagamento = "abc123456789", ConfigBoletoRequisicao = GeraConfigRequisicao(), DadosComprador = GeraDadosComprador(), Pedido = GeraPedido() }; return(retorno); }