6
I use C# Asp.Net MVC, I had to make the return of data Secure Pag and I found very flawed the documentation, follows the solution I created below for those who go through the same difficulties.
6
I use C# Asp.Net MVC, I had to make the return of data Secure Pag and I found very flawed the documentation, follows the solution I created below for those who go through the same difficulties.
6
First set the return of data on the pay for your application page, in case this example would be www.site.com.br/Home/Return
Domain of the Request
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ui.Web.Helpers
{
public class Cliente
{
public int IDCliente { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
public string TelefoneCodigoArea { get; set; }
public string Telefone { get; set; }
public string Endereco { get; set; }
public string EnderecoNumero { get; set; }
public string Complemento { get; set; }
public string Bairro { get; set; }
public string Cidade { get; set; }
public string UF { get; set; }
public string Pais { get; set; }
public string CEP { get; set; }
}
public class Pagamento
{
public int Tipo { get; set; }
public int Parcelas { get; set; }
public string TipoDesc
{
get
{
if (Tipo == 1)
return "Cartão de crédito";
else if (Tipo == 2)
return "Boleto";
else if (Tipo == 3)
return "Débito online (TEF)";
else if (Tipo == 4)
return "Saldo PagSeguro";
else if (Tipo == 5)
return "Oi Paggo";
else if (Tipo == 7)
return "Depósito em conta";
else
return "Origem Desconhecida";
}
}
public int Codigo { get; set; }
public string CodigoDesc
{
get
{
if (Codigo == 101)
return "Cartão de crédito Visa";
else if (Codigo == 102)
return "Cartão de crédito MasterCard";
else if (Codigo == 103)
return "Cartão de crédito American Express";
else if (Codigo == 104)
return "Cartão de crédito Diners.";
else if (Codigo == 105)
return "Cartão de crédito Hipercard";
else if (Codigo == 106)
return "Cartão de crédito Aura";
else if (Codigo == 107)
return "Cartão de crédito Elo";
else if (Codigo == 108)
return "Cartão de crédito PLENOCard";
else if (Codigo == 109)
return "Cartão de crédito PersonalCard";
else if (Codigo == 110)
return "Cartão de crédito JCB";
else if (Codigo == 111)
return "Cartão de crédito Discover";
else if (Codigo == 112)
return "Cartão de crédito BrasilCard";
else if (Codigo == 113)
return "Cartão de crédito FORTBRASIL";
else if (Codigo == 114)
return "Cartão de crédito CARDBAN";
else if (Codigo == 115)
return "Cartão de crédito VALECARD";
else if (Codigo == 116)
return "Cartão de crédito Cabal";
else if (Codigo == 117)
return "Cartão de crédito Mais";
else if (Codigo == 118)
return "Cartão de crédito Avista";
else if (Codigo == 119)
return "Cartão de crédito GRANDCARD";
else if (Codigo == 120)
return "Cartão de crédito Sorocred";
else if (Codigo == 201)
return "Boleto Bradesco";
else if (Codigo == 202)
return "Boleto Santander";
else if (Codigo == 301)
return "Débito online Bradesco";
else if (Codigo == 302)
return "Débito online Itaú";
else if (Codigo == 303)
return "Débito online Unibanco";
else if (Codigo == 304)
return "Débito online Banco do Brasil";
else if (Codigo == 305)
return "Débito online Banco Real";
else if (Codigo == 306)
return "Débito online Banrisul";
else if (Codigo == 307)
return "Débito online HSBC";
else if (Codigo == 401)
return "Saldo PagSeguro";
else if (Codigo == 501)
return "Oi Paggo";
else if (Codigo == 701)
return "Depósito em conta - Banco do Brasil";
else if (Codigo == 702)
return "Depósito em conta - HSBC";
else
return "Origem Desconhecida";
}
}
public string URL { get; set; }
}
public class Item
{
public int ID { get; set; }
public string Descricao { get; set; }
public int Quantidade { get; set; }
public decimal Preco { get; set; }
}
public class Pedido
{
public DateTime Data { get; set; }
public int TipoTransacao { get; set; }
public string TransacaoID { get; set; }
public string Referencia { get; set; }
public int Status { get; set; }
[NotMapped]
public string StatusDesc
{
get
{
if (Status == 1)
return "Aguardando pagamento";
else if (Status == 2)
return "Em análise";
else if (Status == 3)
return "Paga";
else if (Status == 4)
return "Disponível";
else if (Status == 5)
return "Em disputa";
else if (Status == 6)
return "Devolvida";
else if (Status == 7)
return "Cancelada";
else
return "Status Desconhecido";
}
}
public decimal Total { get; set; }
public decimal TotalDescontos { get; set; }
public decimal TotalTaxas { get; set; }
public decimal TotalLiquido { get; set; }
public DateTime DataLiberacaoCredito { get; set; }
public int TotalItensPedido { get; set; }
public Pagamento Pagamento = new Pagamento();
public Cliente Cliente = new Cliente();
public List<Item> Itens = new List<Item>();
}
}
Controller receiving the notification
[HttpPost]
public void RetornoPagamento(FormCollection form)
{
string Email = "Email pagseguro";
string Token = "Token Pagseguro";
string TransacaoID = Request.Params["notificationCode"];
string Pagina = "https://ws.pagseguro.uol.com.br/v2/transactions/notifications/" + TransacaoID + "?email=" + Email + "&token=" + Token;
XElement xml = XElement.Load(Pagina);
// Dados Gerais do Pedido
var Pedido = new Pedido();
Pedido.TransacaoID = xml.Element("code").Value;
Pedido.Data = DateTime.Parse(xml.Element("date").Value);
Pedido.TipoTransacao = int.Parse(xml.Element("type").Value);
Pedido.Referencia = xml.Element("reference").Value;
Pedido.Status = int.Parse(xml.Element("status").Value);
Pedido.Total = decimal.Parse(xml.Element("grossAmount").Value);
Pedido.TotalDescontos = decimal.Parse(xml.Element("discountAmount").Value);
Pedido.TotalTaxas = decimal.Parse(xml.Element("feeAmount").Value);
Pedido.TotalLiquido = decimal.Parse(xml.Element("netAmount").Value);
Pedido.TotalItensPedido = int.Parse(xml.Element("itemCount").Value);
// Dados Cliente do Pedido
Pedido.Cliente.Nome = xml.Element("sender").Element("name").Value;
Pedido.Cliente.Email = xml.Element("sender").Element("email").Value;
Pedido.Cliente.TelefoneCodigoArea = xml.Element("sender").Element("phone").Element("areaCode").Value;
Pedido.Cliente.Telefone = xml.Element("sender").Element("phone").Element("number").Value;
Pedido.Cliente.Endereco = xml.Element("shipping").Element("address").Element("street").Value;
Pedido.Cliente.EnderecoNumero = xml.Element("shipping").Element("address").Element("number").Value;
Pedido.Cliente.Complemento = xml.Element("shipping").Element("address").Element("complement").Value;
Pedido.Cliente.Bairro = xml.Element("shipping").Element("address").Element("district").Value;
Pedido.Cliente.Cidade = xml.Element("shipping").Element("address").Element("city").Value;
Pedido.Cliente.UF = xml.Element("shipping").Element("address").Element("state").Value;
Pedido.Cliente.Pais = xml.Element("shipping").Element("address").Element("country").Value;
Pedido.Cliente.CEP = xml.Element("shipping").Element("address").Element("postalCode").Value;
// Dados de Pagamento do Pedido
Pedido.Pagamento.Tipo = int.Parse(xml.Element("paymentMethod").Element("type").Value);
Pedido.Pagamento.Parcelas = int.Parse(xml.Element("installmentCount").Value);
Pedido.Pagamento.Codigo = int.Parse(xml.Element("paymentMethod").Element("code").Value);
// Monta Itens do Pedido
foreach (var Item in xml.Elements("items").Elements("item").ToList())
{
Pedido.Itens.Add(new Helpers.Item()
{
ID = int.Parse(Item.Element("id").Value),
Descricao = Item.Element("description").Value,
Quantidade = int.Parse(Item.Element("quantity").Value),
Preco = decimal.Parse(Item.Element("amount").Value)
});
}
//Aqui você tem todos os dados e pode prosseguir com a inclusão no banco e regra de negócio.
}
Browser other questions tagged c# asp.net-mvc-4
You are not signed in. Login or sign up in order to post.