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(""); } } }
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(""); } } }
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"; } } }
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"; } }
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); } } }