protected async Task <OrderResponse> CriarPedidoAsync(Models.DTO.PagamentoPage pagamento, string CustomerId, Wirecard.WirecardClient WC) { var body = new OrderRequest { OwnId = pagamento.OrderId, Amount = new Amount { Currency = "BRL", Subtotals = new Subtotals { Shipping = 0// Convert.ToInt32(pagamento.Total * 100) } }, Items = new List <Item> { new Item { Product = "Para influenciadores, marcas e agências", Category = "ARTS_AND_ENTERTAINMENT", Quantity = pagamento.Quantidade, Detail = "", Price = Convert.ToInt32(pagamento.Valor * 100) } }, Customer = new Customer { Id = CustomerId } }; var result = await WC.Order.Create(body); return(result); }
public async Task <ActionResult> Pagamento(Models.DTO.PagamentoPage pagamentoPage) { var _id = HttpContext.Session.GetString("UsuarioFull_id"); var UserId = HttpContext.Session.GetString("UserId"); var repMongo = new Repository.MongoRep("", _settings, UserId); var usuario = await repMongo.ListarById <Models.Usuario>(new MongoDB.Bson.ObjectId(_id)); pagamentoPage.Usuario.UserId = UserId; var result = await CreatePay(pagamentoPage, _id.ToString() + "-" + DateTime.Now.ToLongTimeString().Replace(":", "-"), UserId, repMongo, pagamentoPage.codPlan); result.StatusPagamento = "Pendente"; await repMongo.GravarOne <Models.DTO.PagamentoPage>(result); if (usuario.FirstOrDefault().Obj.Tipo == "1") { return(RedirectToAction("MinhasAnalises", "Relatorios")); } else { return(RedirectToAction("HistoricoMetricas", "Relatorios")); } }
private async Task <Models.DTO.PagamentoPage> CreatePay(Models.DTO.PagamentoPage pay, string _id, string UserId, Repository.MongoRep mongoRep, string plan) { Wirecard.WirecardClient WC = null; WC = await SetAmbiente(WC); var OrderId = Guid.NewGuid().ToString(); try { pay.OrderId = OrderId; pay.Usuario.Telefone = Helper.ApenasNumeros(pay.Usuario.Telefone); var usuario = pay.Usuario; var sub = await CreateSignature(new Address() { City = usuario.City, Complement = usuario.Complement, District = usuario.District, Street = usuario.Street, StreetNumber = usuario.Number, ZipCode = usuario.PostalCode.Replace("-", ""), State = usuario.State, Country = "BRA" }, new Credit_Card { Holder_Name = pay.Usuario.Nome, Number = pay.cardNumber, Expiration_Year = pay.expirationYear, Expiration_Month = pay.expirationMonth }, usuario.Cpf, usuario.DataNascimento, usuario.Email, usuario.Nome + " " + usuario.Sobrenome, usuario.Ddd, usuario.Telefone, plan, OrderId, _id); //var cliente = await CriarClienteAsync(pay.Usuario, OrderId, WC); //var pedido = await CriarPedidoAsync(pay, cliente.Id, WC); //var pagamento = await CriarPagamentoAsync(cliente, pedido, pay, WC); //pay.customerResponse = cliente; //pay.orderResponse = pedido; //pay.paymentResponse = pagamento; if (sub != null && ((sub.Alerts != null) && (sub.Alerts.Count() > 0))) { var resultAlerts = JsonConvert.SerializeObject(sub.Alerts).ToString(); var repMongo = new Repository.MongoRep("", _settings, ""); await repMongo.GravarOne <string>("Pagamento: {" + sub.Code + "}" + resultAlerts); sub.Alerts = null; } pay.subscriptionResponse = sub; return(pay); } catch (Exception ex) { var text = ex.Message.ToString(); return(null); } }
protected async Task <PaymentResponse> CriarPagamentoAsync(CustomerResponse cliente, OrderResponse pedido, Models.DTO.PagamentoPage pagamento, Wirecard.WirecardClient WC) { var body = new PaymentRequest { //informe os campos aqui InstallmentCount = 1, FundingInstrument = new Fundinginstrument { Method = "CREDIT_CARD", CreditCard = new Creditcard { Hash = pagamento.chave, Holder = new Holder { FullName = pagamento.Usuario.Nome, BirthDate = pagamento.Usuario.DataNascimento.ToString("yyyy-MM-dd"), TaxDocument = new Taxdocument { Type = "CPF", Number = pagamento.Usuario.Cpf } } } } }; var result = await WC.Payment.Create(body, pedido.Id); return(result); }
// GET: Pagamento public async Task <ActionResult> Index(string tipo) { byte[] _out; if (!HttpContext.Session.TryGetValue("UsuarioFull_id", out _out)) { return(RedirectToAction("ComeceAqui", "Relatorios", new { msg = 99 })); } var _id = HttpContext.Session.GetString("UsuarioFull_id"); var UserId = HttpContext.Session.GetString("UserId"); var repMongo = new Repository.MongoRep("", _settings, UserId); var usuario = await repMongo.ListarById <Models.Usuario>(new MongoDB.Bson.ObjectId(_id)); var pagamentoPage = new Models.DTO.PagamentoPage() { Usuario = usuario.FirstOrDefault().Obj }; string planoCode = ""; if (tipo == Convert.ToInt32(EnumTipoPagamento.Influenciador).ToString()) {//Influenciador pagamentoPage.Quantidade = 1; pagamentoPage.Valor = 99M; pagamentoPage.Total = 99M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan" + tipo.ToString() + "-99"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan" + tipo.ToString() + "-99", "Plano-" + tipo.ToString() + "-Influencer", "Um influencer - 99 reais", 9900); } planoCode = "Plan" + tipo.ToString() + "-99"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas10).ToString()) {//Agencia pagamentoPage.Quantidade = 10; pagamentoPage.Valor = 99.9M; pagamentoPage.Total = 999M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan" + tipo.ToString() + "-999"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan" + tipo.ToString() + "-999", "Plano-" + tipo.ToString() + "-Influencer", "10 influenciadores - 999 reais", 99900); } planoCode = "Plan" + tipo.ToString() + "-999"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas30).ToString()) {//Agencia pagamentoPage.Quantidade = 30; pagamentoPage.Valor = 93.3M; pagamentoPage.Total = 2799M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan" + tipo.ToString() + "-2799"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan" + tipo.ToString() + "-2799", "Plano-" + tipo.ToString() + "-Influencer", "30 influenciadores - 2799 reais", 279900); } planoCode = "Plan" + tipo.ToString() + "-2799"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas90).ToString()) {//Agencia pagamentoPage.Quantidade = 90; pagamentoPage.Valor = 53.32M; pagamentoPage.Total = 4799M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan" + tipo.ToString() + "-4799"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan" + tipo.ToString() + "-4799", "Plano-" + tipo.ToString() + "-Influencer", "90 influenciadores - 4799 reais", 479900); } planoCode = "Plan" + tipo.ToString() + "-4799"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.InfluenciadorYear).ToString()) {//Influenciador pagamentoPage.Quantidade = 1; pagamentoPage.Valor = 999M; pagamentoPage.Total = 999M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan-yearY" + tipo.ToString() + "999"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan-yearY" + tipo.ToString() + "999", "Plano-" + tipo.ToString() + "-Influencer", "Um influencer - 999 reais - Ano", 99900); if (plano == null) { RedirectToAction("login"); } } planoCode = "Plan-yearY" + tipo.ToString() + "999"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas180Year).ToString()) {//Agencia pagamentoPage.Quantidade = 180; pagamentoPage.Valor = 52.77M; pagamentoPage.Total = 9499M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan-Y" + tipo.ToString() + "9499"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan-Y" + tipo.ToString() + "9499", "Plano-" + tipo.ToString() + "-Influencer", "180 influenciadores - 9499 reais", 949900); if (plano == null) { RedirectToAction("login"); } } planoCode = "Plan-Y" + tipo.ToString() + "9499"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas300Year).ToString()) {//Agencia pagamentoPage.Quantidade = 300; pagamentoPage.Valor = 49.33M; pagamentoPage.Total = 14799M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan-Y" + tipo.ToString() + "14799"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan-Y" + tipo.ToString() + "14799", "Plano-" + tipo.ToString() + "-Influencer", "300 influenciadores - 14799 reais", 1479900); if (plano == null) { RedirectToAction("login"); } } planoCode = "Plan-Y" + tipo.ToString() + "14799"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas600Year).ToString()) {//Agencia pagamentoPage.Quantidade = 600; pagamentoPage.Valor = 49.165M; pagamentoPage.Total = 29499M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan-Y" + tipo.ToString() + "29499"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan-Y" + tipo.ToString() + "29499", "Plano-" + tipo.ToString() + "-Influencer", "600 influenciadores - 29499 reais", 2949900); if (plano == null) { RedirectToAction("login"); } } planoCode = "Plan-Y" + tipo.ToString() + "29499"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.Testes).ToString()) {//TESTES pagamentoPage.Quantidade = 1; pagamentoPage.Valor = 1.00M; pagamentoPage.Total = 1M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan" + tipo.ToString() + "-TST"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan" + tipo.ToString() + "-TST", "Plano-" + tipo.ToString() + "-Influencer", "Um influencer - 1 real", 100); } planoCode = "Plan" + tipo.ToString() + "-TST"; } ViewBag.hddPlan = planoCode; return(View(pagamentoPage)); }