Exemple #1
0
        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);
        }
Exemple #2
0
        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"));
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        // 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));
        }