コード例 #1
0
ファイル: HomeController.cs プロジェクト: agcjunior/hackathon
        public IActionResult Registro(RegistroViewModel model)
        {
            var reference     = Guid.NewGuid().ToString();
            var pagSeguroPage = "https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code=";
            var uri           = "https://ws.sandbox.pagseguro.uol.com.br/v2/checkout";

            var parametros = new NameValueCollection();

            parametros.Add("email", "*****@*****.**");
            parametros.Add("token", "1D7254DACE40448BA5E43680A7807EBE");
            parametros.Add("currency", "BRL");
            parametros.Add("itemId1", "1");
            parametros.Add("itemDescription1", "Doacao para o Incor Crianca");
            parametros.Add("itemAmount1", "50.00");
            parametros.Add("itemQuantity1", "1");
            parametros.Add("reference", reference);

            // Envia um POST para obter o codigo da transação no PagSeguro
            var xmlResponse = "";

            using (var wc = new WebClient())
            {
                wc.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
                byte[] responsebytes = wc.UploadValues(uri, "POST", parametros);
                xmlResponse = Encoding.UTF8.GetString(responsebytes);
            }

            // Obtem o codigo da transação xml recebido
            var xDoc = XDocument.Parse(xmlResponse);
            var code = xDoc.Descendants("checkout").Elements("code").Single().Value;

            pagSeguroPage += code;


            // Grava no BD o registro / doação do Runner
            var registroRunner = new RegistroRunner
            {
                Email           = model.Email,
                NomeCompleto    = model.NomeCompleto,
                GostaSerChamado = model.ComoQuerSerChamado
            };
            var doacao = new Doacao
            {
                Data              = DateTime.UtcNow,
                Referencia        = reference,
                SituacaoPagamento = SituacaoPagamento.AguardandoProcessamento,
                Valor             = 50.00m
            };

            registroRunner.RegistrarDoacao(doacao);
            __doacaoService.Doar(registroRunner);
            return(Redirect(pagSeguroPage));
        }
コード例 #2
0
ファイル: DoacaoService.cs プロジェクト: agcjunior/hackathon
 public void Doar(RegistroRunner runner)
 {
     _ctx.RegistrosRunners.Add(runner);
     _ctx.SaveChanges();
 }