/// <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);
        }
Пример #2
0
        public static BoletoRequisicao GeraRequisicaoBoleto()
        {
            var retorno = new BoletoRequisicao
            {
                MerchantId = "100006095",
                TokenRequestConfirmacaoPagamento = "abc123456789",
                ConfigBoletoRequisicao           = GeraConfigRequisicao(),
                DadosComprador = GeraDadosComprador(),
                Pedido         = GeraPedido()
            };

            return(retorno);
        }