Example #1
0
        protected async Task <string> reqToken(string idSessao, Cartao card)
        {
            using (DatabaseEntities context = new DatabaseEntities())
            {
                CredenciaisPagamento cred = context.CredenciaisPagamento.FirstOrDefault();
                var values = new Dictionary <string, string> {
                    { "sessionId", idSessao },
                    { "amount", o.valor.ToString() },
                    { "cardNumber", card.numero },
                    { "cardBrand", card.bandeira },
                    { "cardCvv", txt_Cvv.Text },
                    { "cardExpirationMonth", card.mesVencimento.ToString() },
                    { "cardExpirationYear", card.anoVencimento.ToString() }
                };
                var content = new FormUrlEncodedContent(values);

                var response = await client.PostAsync("https://df.uol.com.br/v2/cards/?email=" + cred.email + "&token=" + cred.token, content);

                if (response.IsSuccessStatusCode)
                {
                    var responseString = await response.Content.ReadAsStringAsync();

                    XmlDocument xml = new XmlDocument();
                    xml.LoadXml(responseString);

                    return(xml.GetElementsByTagName("token")[0].InnerXml);
                }
                else
                {
                    return("");
                }
            }
        }
Example #2
0
        protected async Task <string> reqSessao()
        {
            using (DatabaseEntities context = new DatabaseEntities())
            {
                CredenciaisPagamento cred = context.CredenciaisPagamento.FirstOrDefault();
                var values = new Dictionary <string, string> {
                    { "email", cred.email },
                    { "token", cred.token }
                };
                var content = new FormUrlEncodedContent(values);

                var response = await client.PostAsync("https://ws.sandbox.pagseguro.uol.com.br/sessions?appId=" + cred.appId + "&appKey=" + cred.appKey, content);

                if (response.IsSuccessStatusCode)
                {
                    var responseString = await response.Content.ReadAsStringAsync();

                    XmlDocument xml = new XmlDocument();
                    xml.LoadXml(responseString);

                    return(xml.GetElementsByTagName("id")[0].InnerXml);
                }
                else
                {
                    return("");
                }
            }
        }
Example #3
0
        protected async void btn_CancelarAssinatura_Click(object sender, EventArgs e)
        {
            using (DatabaseEntities context = new DatabaseEntities())
            {
                CredenciaisPagamento            cred      = context.CredenciaisPagamento.FirstOrDefault();
                HttpClient                      client    = new HttpClient();
                MediaTypeWithQualityHeaderValue mediaType = new MediaTypeWithQualityHeaderValue("application/vnd.pagseguro.com.br.v3+json");
                mediaType.CharSet = "ISO-8859-1";
                client.DefaultRequestHeaders.Accept.Add(mediaType);

                var content = new StringContent("{\"status\":\"SUSPENDED\"}", Encoding.UTF8, "application/json");

                var response = await client.PutAsync("https://ws.sandbox.pagseguro.uol.com.br/pre-approvals/" + oficina.codAssinatura + "/status?token=" + cred.token + "&email=" + cred.email, null);

                var responseString = await response.Content.ReadAsStringAsync();

                if (response.IsSuccessStatusCode)
                {
                    oficina.statusAssinatura = 0;
                    oficina.codAssinatura    = null;
                    pnl_Alert.CssClass       = "alert alert-success";
                    pnl_Alert.Visible        = true;
                    lbl_Alert.Text           = "Assinatura suspensa";
                }
                else
                {
                    pnl_Alert.CssClass = "alert alert-danger";
                    pnl_Alert.Visible  = true;
                    lbl_Alert.Text     = "Erro no cancelamento";
                }
            }
        }
Example #4
0
        protected async void getNotification(string code)
        {
            try
            {
                using (DatabaseEntities context = new DatabaseEntities())
                {
                    HttpClient           client = new HttpClient();
                    CredenciaisPagamento cred   = context.CredenciaisPagamento.FirstOrDefault();

                    var response = await client.GetAsync("https://ws.sandbox.pagseguro.uol.com.br/v3/transactions/notifications/" + code + "?appId=" + cred.appId + "&appKey=" + cred.appKey);

                    if (response.IsSuccessStatusCode)
                    {
                        var responseString = await response.Content.ReadAsStringAsync();

                        XmlDocument xml = new XmlDocument();
                        xml.LoadXml(responseString);

                        string    status      = xml.GetElementsByTagName("status")[0].InnerXml;
                        int       idOrcamento = int.Parse(xml.GetElementsByTagName("reference")[0].InnerXml.Split('-')[1]);
                        Pagamento p           = context.Pagamento.Where(pag => pag.idOrcamento == idOrcamento).FirstOrDefault();
                        Orcamento o;
                        switch (status)
                        {
                        case "1":
                            p.status = "1";
                            break;

                        case "2":
                            p.status = "2";
                            break;

                        case "3":
                            p.status = "3";
                            o        = context.Orcamento.Where(orc => orc.idOrcamento == p.idOrcamento).FirstOrDefault();
                            o.status = "Concluído";
                            context.SaveChanges();
                            break;

                        case "7":
                            o        = context.Orcamento.Where(orc => orc.idOrcamento == p.idOrcamento).FirstOrDefault();
                            o.status = "Pagamento pendente";
                            context.Pagamento.Remove(p);
                            context.SaveChanges();
                            break;

                        default:
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
        protected async void autorizar(Oficina o)
        {
            try
            {
                using (DatabaseEntities context = new DatabaseEntities())
                {
                    HttpClient           client = new HttpClient();
                    CredenciaisPagamento cred   = context.CredenciaisPagamento.FirstOrDefault();
                    StringBuilder        str    = new StringBuilder("");
                    str.Append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");
                    str.Append("<authorizationRequest><reference>req-" + o.cnpj + "</reference>");
                    str.Append("<permissions><code>CREATE_CHECKOUTS</code><code>RECEIVE_TRANSACTION_NOTIFICATIONS</code><code>SEARCH_TRANSACTIONS</code><code>MANAGE_PAYMENT_PRE_APPROVALS</code><code>DIRECT_PAYMENT</code></permissions>");
                    str.Append("<redirectURL>https://localhost:44382/Pages/oficina_CadastroCont.aspx</redirectURL><notificationURL>https://localhost:44382/Pages/oficina_CadastroCont.aspx</notificationURL></authorizationRequest>");

                    var content = new StringContent(str.ToString(), Encoding.UTF8, "text/xml");
                    content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml;charset=ISO-8859-1");

                    var response = await client.PostAsync("https://ws.sandbox.pagseguro.uol.com.br/v2/authorizations/request/?appId=" + cred.appId + "&appKey=" + cred.appKey, content);

                    var responseString = await response.Content.ReadAsStringAsync();

                    XmlDocument xml = new XmlDocument();
                    xml.LoadXml(responseString);

                    if (response.IsSuccessStatusCode)
                    {
                        string code = xml.GetElementsByTagName("code")[0].InnerXml;
                        Session["oficina"] = o;
                        Response.Redirect("https://sandbox.pagseguro.uol.com.br/v2/authorization/request.jhtml?code=" + code);
                    }
                    else
                    {
                        removeOficina(o);

                        string erro = xml.GetElementsByTagName("message")[0].InnerXml;
                        pnl_Alert.CssClass = "alert alert-danger";
                        pnl_Alert.Visible  = true;
                        lbl_Alert.Text     = "Error: " + erro + " Por favor entre em contato com o suporte.";
                    }
                }
            }
            catch (Exception ex)
            {
                pnl_Alert.CssClass = "alert alert-danger";
                pnl_Alert.Visible  = true;
                lbl_Alert.Text     = "Erro: " + ex.Message + Environment.NewLine + "Por favor entre em contato com o suporte";
            }
        }
        protected async Task <string> reqAdesao(string token)
        {
            try
            {
                using (DatabaseEntities context = new DatabaseEntities())
                {
                    CredenciaisPagamento cred = context.CredenciaisPagamento.FirstOrDefault();

                    StringBuilder str = new StringBuilder("");
                    str.Append("{\"plan\": \"673503779E9E96CBB4DBEF9646FF65CB\",\"reference\": \"Teste\",");
                    str.Append("\"sender\": {\"name\": \"Vladimir Integracao\",\"email\": \"[email protected]\",\"hash\": \"werwerwerwerwer\",\"phone\": {\"areaCode\": \"11\",\"number\": \"20516250\"},");
                    str.Append("\"address\": {\"street\": \"Rua Vi Jose De Castro\",\"number\": \"99\",\"complement\": \"\",\"district\": \"It\",\"city\": \"Sao Paulo\",\"state\": \"SP\",\"country\": \"BRA\",\"postalCode\": \"06240300\"},\"documents\": [{\"type\": \"CPF\",\"value\": \"68951723003\"}]},");
                    str.Append("\"paymentMethod\": {\"type\": \"CREDITCARD\",\"creditCard\": {\"token\": \"b8eb02412a054772bbd7ab84aaacd72c\",\"holder\": {\"name\": \"Julian Teste\",\"birthDate\": \"04/12/1991\",\"documents\": [{\"type\": \"CPF\",\"value\": \"19333575090\"}],");
                    str.Append("\"phone\": {\"areaCode\": \"11\",\"number\": \"20516250\"},");
                    str.Append("\"billingAddress\": {\"street\": \"Rua Vi Jose De Castro\",\"number\": \"99\",\"complement\": \"\",\"district\": \"It\",\"city\": \"Sao Paulo\",\"state\": \"SP\",\"country\": \"BRA\",\"postalCode\": \"06240300\"}}}}}");

                    var content = new StringContent(str.ToString(), Encoding.UTF8, "application/json");
                    content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
                    MediaTypeWithQualityHeaderValue mediaType = new MediaTypeWithQualityHeaderValue("application/vnd.pagseguro.com.br.v1+json");
                    mediaType.CharSet = "ISO-8859-1";

                    client.DefaultRequestHeaders.Accept.Add(mediaType);

                    var response = await client.PostAsync("https://ws.sandbox.pagseguro.uol.com.br/pre-approvals?email=" + cred.email + "&token=" + cred.token, content);

                    if (response.IsSuccessStatusCode)
                    {
                        var responseString = await response.Content.ReadAsStringAsync();

                        return(responseString);
                    }
                    else
                    {
                        var responseString = await response.Content.ReadAsStringAsync();

                        return(responseString);
                    }
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
        protected async void getNotification(string code)
        {
            try
            {
                using (DatabaseEntities context = new DatabaseEntities())
                {
                    HttpClient           client = new HttpClient();
                    CredenciaisPagamento cred   = context.CredenciaisPagamento.FirstOrDefault();

                    var response = await client.GetAsync("https://ws.sandbox.pagseguro.uol.com.br/v2/authorizations/notifications/" + code + "?appId=" + cred.appId + "&appKey=" + cred.appKey);

                    if (response.IsSuccessStatusCode)
                    {
                        var responseString = await response.Content.ReadAsStringAsync();

                        XmlDocument xml = new XmlDocument();
                        xml.LoadXml(responseString);

                        string  cnpj = xml.GetElementsByTagName("reference")[0].InnerXml.Split('-')[1];
                        Oficina o    = context.Oficina.Where(of => of.cnpj.Equals(cnpj)).FirstOrDefault();
                        o.chavePublica = xml.GetElementsByTagName("publicKey")[0].InnerXml;
                        context.SaveChanges();

                        pnl_Alert.CssClass = "alert alert-success";
                        pnl_Alert.Visible  = true;
                        lbl_Alert.Text     = "Oficina autorizada. Agora você pode receber pagamentos de clientes";
                    }
                    else
                    {
                        pnl_Alert.CssClass = "alert alert-danger";
                        pnl_Alert.Visible  = true;
                        lbl_Alert.Text     = "Erro na autorização. Tente novamente mais tarde.<br /> (Para tentar novamente acesse Dashboard=>Configurações)";
                    }
                }
            }
            catch (Exception ex)
            {
                pnl_Alert.CssClass = "alert alert-danger";
                pnl_Alert.Visible  = true;
                lbl_Alert.Text     = "Erro: " + ex.Message + Environment.NewLine + "Por favor entre em contato com o suporte";
            }
        }
Example #8
0
        protected async Task <XmlDocument> reqPagar(string token)
        {
            using (DatabaseEntities context = new DatabaseEntities())
            {
                Oficina oficina = context.Oficina.Where(of => of.cnpj.Equals(o.cnpjOficina)).FirstOrDefault();

                CredenciaisPagamento cred = context.CredenciaisPagamento.FirstOrDefault();
                var values = new Dictionary <string, string> {
                    { "payment.mode", "default" },
                    { "payment.method", "creditCard" },
                    { "currency", "BRL" },
                    { "item[1].id", o.idOrcamento.ToString() },
                    { "item[1].description", "Orçamento" },
                    { "item[1].amount", o.valor.ToString("0.00").Replace(",", ".") },
                    { "item[1].quantity", "1" },
                    { "notificationURL", "https://*****:*****@sandbox.pagseguro.com.br" },
                    { "shipping.address.street", "Av. Brig. Faria Lima" },
                    { "shipping.address.number", "1384" },
                    { "shipping.address.complement", "5o andar" },
                    { "shipping.address.district", "Jardim Paulistano" },
                    { "shipping.address.postalCode", "01452002" },
                    { "shipping.address.city", "Sao Paulo" },
                    { "shipping.address.state", "SP" },
                    { "shipping.address.country", "BRA" },
                    { "shipping.type", "3" },
                    { "shipping.cost", "0.00" },
                    { "installment.value", o.valor.ToString("0.00").Replace(",", ".") },
                    { "installment.quantity", "1" },
                    { "installment.noInterestInstallmentQuantity", "2" },
                    { "creditCard.token", token },
                    { "creditCard.holder.name", c.nome },
                    { "creditCard.holder.CPF", c.cpf },
                    { "creditCard.holder.birthDate", c.dataNascimento.ToString().Split(' ')[0] },
                    { "creditCard.holder.areaCode", c.telefone.Substring(0, 2) },
                    { "creditCard.holder.phone", c.telefone.Substring(2, c.telefone.Length - 2) },
                    { "billingAddress.street", "Av. Brig. Faria Lima" },
                    { "billingAddress.number", "1384" },
                    { "billingAddress.complement", "5o andar" },
                    { "billingAddress.district", "Jardim Paulistano" },
                    { "billingAddress.postalCode", "01452002" },
                    { "billingAddress.city", "Sao Paulo" },
                    { "billingAddress.state", "SP" },
                    { "billingAddress.country", "BRA" },
                    { "primaryReceiver.publicKey", oficina.chavePublica }
                };
                var content = new FormUrlEncodedContent(values);
                client.DefaultRequestHeaders
                .Accept
                .Add(new MediaTypeWithQualityHeaderValue("application/vnd.pagseguro.com.br.v3+xml"));

                var response = await client.PostAsync("https://ws.sandbox.pagseguro.uol.com.br/transactions?appId=" + cred.appId + "&appKey=" + cred.appKey, content);

                if (response.IsSuccessStatusCode)
                {
                    var responseString = await response.Content.ReadAsStringAsync();

                    XmlDocument xml = new XmlDocument();
                    xml.LoadXml(responseString);

                    return(xml);
                }
                else
                {
                    var responseString = await response.Content.ReadAsStringAsync();

                    return(null);
                }
            }
        }