public PaypalServiceBuilder(PaypalConfig paypalConfig, IMailService mailService, IPlanService planService, ILogger <PaypalServiceBuilder> logger)
 {
     this.PaypalConfig = paypalConfig;
     this.MailService  = mailService;
     this.PlanService  = planService;
     this.Logger       = logger;
 }
Exemplo n.º 2
0
        public string SendPayment(PaypalPaymentParam paymentParam)
        {
            try
            {
                APIContext apiContext        = PaypalConfig.GetAPIContext();
                var        guid              = Convert.ToString((new Random()).Next(100000));
                var        createdPayment    = CreatePayment(apiContext, paymentParam.CallbackUrl + "?guid=" + guid, paymentParam);
                var        links             = createdPayment.links.GetEnumerator();
                string     paypalRedirectUrl = null;

                while (links.MoveNext())
                {
                    Links lnk = links.Current;
                    if (lnk.rel.ToLower().Trim().Equals("approval_url"))
                    {
                        paypalRedirectUrl = lnk.href;
                    }
                }
                paymentParam.Session.Add(guid, ((Payment)createdPayment).id);

                return(paypalRedirectUrl);
            }
            catch
            {
                return("NG");
            }
        }
Exemplo n.º 3
0
        public float ExecutePayment(ExecutePaymentParam paymentParam)
        {
            try
            {
                APIContext apiContext       = PaypalConfig.GetAPIContext();
                var        paymentExecution = new PaymentExecution()
                {
                    payer_id = paymentParam.PayerId
                };
                payment = new Payment()
                {
                    id = paymentParam.Session[paymentParam.Guid] as string
                };

                var executedPayment = payment.Execute(apiContext, paymentExecution);

                if (executedPayment.state.ToLower() != "approved")
                {
                    return(-1);
                }
                return(GetTotalMoney(executedPayment.transactions));
            }
            catch
            {
                return(-1);
            }
        }
 protected PaypalService(PaypalConfig paypalConfig, IMailService mailService, IPlanService planService, ILogger logger)
 {
     this.PaypalConfig = paypalConfig;
     this.MailService  = mailService;
     this.PlanService  = planService;
     this.Logger       = logger;
 }
Exemplo n.º 5
0
 public PaypalController(PaypalConfig paypalConfig, ILogger <PaypalController> logger, IMailService mailService, FewBoxSDKConfig fewBoxSDKConfig, PaypalServiceBuilder paypalServiceBuilder)
 {
     this.PaypalConfig    = paypalConfig;
     this.Logger          = logger;
     this.MailService     = mailService;
     this.FewBoxSDKConfig = fewBoxSDKConfig;
     this.PaypalService   = paypalServiceBuilder.Build();
 }
Exemplo n.º 6
0
        public ActionResult TestPayout()
        {
            var payout = new PayPal.Api.Payout()
            {
                sender_batch_header = new PayoutSenderBatchHeader
                {
                    sender_batch_id = "batch_" + System.Guid.NewGuid().ToString().Substring(0, 8),
                    email_subject   = "You have a payment"
                },

                items = new List <PayoutItem>
                {
                    new PayoutItem
                    {
                        recipient_type = PayoutRecipientType.EMAIL,
                        amount         = new Currency
                        {
                            value    = "0.99",
                            currency = "USD"
                        },
                        receiver       = "*****@*****.**",
                        note           = "Thank you.",
                        sender_item_id = "item_1"
                    },
                    new PayoutItem
                    {
                        recipient_type = PayoutRecipientType.EMAIL,
                        amount         = new Currency
                        {
                            value    = "0.90",
                            currency = "USD"
                        },
                        receiver       = "*****@*****.**",
                        note           = "Thank you.",
                        sender_item_id = "item_2"
                    },
                    new PayoutItem
                    {
                        recipient_type = PayoutRecipientType.EMAIL,
                        amount         = new Currency
                        {
                            value    = "2.00",
                            currency = "USD"
                        },
                        receiver       = "4532216992026816",
                        note           = "Thank you.",
                        sender_item_id = "item_3"
                    }
                }
            };
            var createdPayout = payout.Create(PaypalConfig.GetAPIContext(), false);

            return(Success(1));
        }
Exemplo n.º 7
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            PaypalConfig.Initilize(ConfigurationManager.AppSettings);
            AuthConfig.RegisterAuth();

            Database.SetInitializer <Context>(new DropCreateDatabaseIfModelChanges <Context>());
        }
Exemplo n.º 8
0
        public float SendPaymentByCreditCard(PaypalPaymentParam paymentParam)
        {
            CreditCard creditCard = new CreditCard()
            {
                billing_address = new Address()
                {
                    city = "Johnstown", country_code = "US", line1 = "52 N Main ST", postal_code = "43210", state = "OH"
                },
                cvv2         = paymentParam.CreditCard.cvv2,
                expire_month = paymentParam.CreditCard.expire_month,
                expire_year  = paymentParam.CreditCard.expire_year,
                first_name   = paymentParam.CreditCard.first_name,
                last_name    = paymentParam.CreditCard.last_name,
                type         = "visa",
                number       = paymentParam.CreditCard.number,
            };

            FundingInstrument fundInstrument = new FundingInstrument();

            fundInstrument.credit_card = creditCard;

            var fundingInstruments = new List <FundingInstrument>();

            fundingInstruments.Add(fundInstrument);

            Payer payer = new Payer()
            {
                funding_instruments = fundingInstruments,
                payment_method      = "credit_card"
            };
            var payment = new Payment()
            {
                intent       = "sale",
                payer        = payer,
                transactions = GetTransactions(paymentParam),
            };

            try
            {
                APIContext apiContext     = PaypalConfig.GetAPIContext();
                Payment    createdPayment = payment.Create(apiContext);

                if (createdPayment.state.ToLower() != "approved")
                {
                    return(-1);
                }
                return(GetTotalMoney(createdPayment.transactions));;
            }
            catch
            {
                return(-1);
            }
        }
Exemplo n.º 9
0
        public PayoutBatch SendPayout(string subject, List <PayoutItem> payouts)
        {
            try
            {
                var payout = new Payout()
                {
                    sender_batch_header = new PayoutSenderBatchHeader
                    {
                        sender_batch_id = "batch_" + System.Guid.NewGuid().ToString().Substring(0, 8),
                        email_subject   = subject
                    },
                    items = payouts
                };

                return(payout.Create(PaypalConfig.GetAPIContext(), false));
            }
            catch
            {
                return(null);
            }
        }
 public RefundPaypalService(PaypalConfig paypalConfig, IMailService mailService, IPlanService planService, ILogger logger)
     : base(paypalConfig, mailService, planService, logger)
 {
 }
Exemplo n.º 11
0
        public ActionResult PaymentWithPaypal()
        {
            if (Session["TaiKhoan"] == null)
            {
                Redirect("/Login/Index");
            }
            var            kh      = Session["TaiKhoan"] as TaiKhoan;
            var            giohang = db.giohangs.Where(x => x.makhachhang == kh.makh).ToList <giohang>();
            List <sanpham> dssp    = new List <sanpham>();

            foreach (var item in giohang)
            {
                var sanphamGioHang = db.sanphams.Where(x => x.masp == item.masp && x.slsp >= item.soluongdamua && x.trangthai == 1).SingleOrDefault();
                if (sanphamGioHang != null)
                {
                    sanphamGioHang.slsp = item.soluongdamua;
                    dssp.Add(sanphamGioHang);
                }
            }
            if (dssp.Count <= 0)
            {
                return(Redirect("/product/giohang"));
            }
            APIContext apiContext = PaypalConfig.GetAPIContext();

            try
            {
                string payerId = Request.Params["PayerID"];
                if (string.IsNullOrEmpty(payerId))
                {
                    string baseURI        = Request.Url.Scheme + "://" + Request.Url.Authority + "/Product/PaymentWithPaypal?";
                    var    guid           = Convert.ToString((new Random()).Next(100000));
                    var    createdPayment = CreatePayment(apiContext, baseURI + "guid=" + guid);

                    var    links             = createdPayment.links.GetEnumerator();
                    string paypalRedirectUrl = string.Empty;

                    while (links.MoveNext())
                    {
                        Links link = links.Current;
                        if (link.rel.ToLower().Trim().Equals("approval_url"))
                        {
                            paypalRedirectUrl = link.href;
                        }
                    }
                    Session.Add(guid, createdPayment.id);
                    return(Redirect(paypalRedirectUrl));
                }
                else
                {
                    var guid           = Request.Params["guid"];
                    var executePayment = ExecutePayment(apiContext, payerId, Session[guid] as string);
                    if (executePayment.state.ToLower() != "approved")
                    {
                        return(Redirect("/product/giohang"));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Redirect("/product/giohang"));
            }

            var            khachhang = Session["TaiKhoan"] as TaiKhoan;
            List <sanpham> dsSanPham = (List <sanpham>)Session["giohang"];

            //foreach (var item in dsSanPham)
            //{
            //    var sl = item.slsp;
            //    sanpham spduocmua = new sanpham();
            //    spduocmua = db.sanphams.SingleOrDefault(x => x.masp == item.masp);
            //    spduocmua.slsp -= sl;

            //    db.SaveChanges();
            //}

            foreach (var item in dsSanPham)
            {
                muahang spDaMua = new muahang();
                spDaMua.makhachhang  = khachhang.makh;
                spDaMua.masp         = item.masp;
                spDaMua.soluongdamua = item.slsp;
                spDaMua.gia          = item.gia;
                spDaMua.ngaymua      = DateTime.Now;
                db.muahangs.Add(spDaMua);

                var itemToRemove = db.giohangs.SingleOrDefault(x => x.masp == item.masp && x.makhachhang == khachhang.makh);
                db.giohangs.Remove(itemToRemove);

                db.SaveChanges();
            }


            return(Redirect("/product/giohang"));
        }
Exemplo n.º 12
0
 public EndPaypalService(PaypalConfig paypalConfig, IMailService mailService, IPlanService planService, ILogger logger)
     : base(paypalConfig, mailService, planService, logger)
 {
     this.Logger = logger;
 }