Ejemplo n.º 1
0
        public ActionResult Deposit(Viprecord viprecord)
        {
            Vipdetail data     = vipdetailService.Get().Where(a => a.Money == viprecord.Money).FirstOrDefault();
            Guid      Memberid = Guid.Parse((Session["Memberid"]).ToString());

            if (TryUpdateModel(viprecord, new string[] { "Money", "Payway" }) && ModelState.IsValid)
            {
                viprecord.Viprecordid   = Guid.NewGuid();
                viprecord.Memberid      = Memberid;
                viprecord.Depositnumber = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                viprecord.Day           = data.Day;
                viprecord.Enddate       = DateTime.Now;                 // VIP截止日期,因客戶還沒進行繳費,所以將日期寫現在
                viprecord.Buydate       = DateTime.Now;                 // 購買日期
                viprecord.Createdate    = DateTime.Now;                 // 建立時間
                viprecord.Updatedate    = DateTime.Now;                 // 更新時間
                viprecordService.Create(viprecord);
                viprecordService.SaveChanges();
            }

            string CustomerURL = "http://heohelp.com/DepositMs/DepositSuccess";
            string NotifyURL   = "http://heohelp.com/DepositMs/DepositReceive";

            int TimeStamp = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;       // 總秒數

            Newebpay.set_paramer(viprecord, CustomerURL, NotifyURL, TimeStamp);
            return(RedirectToAction("DepositForm"));
        }
Ejemplo n.º 2
0
        public static void set_paramer(Viprecord viprecord, string CustomerURL, string NotifyURL, int TimeStamp)
        {
            if (viprecord != null)
            {
                int    Payway        = viprecord.Payway;
                string Depositnumber = viprecord.Depositnumber;
                string Amt           = viprecord.Money.ToString();
                string ItemDesc      = "HeO";
                string type;            // 付款方式
                switch (Payway)
                {
                case 0:
                    type = "&CVS=1";
                    break;

                case 1:
                    type = "&VACC=1";
                    break;

                case 2:
                    type = "&CREDIT=1";
                    break;

                default:
                    type = "Error";
                    break;
                }
                new_data = "MerchantID=" + MerchantID + "&TimeStamp=" + TimeStamp + "&Version=" + Verison + "&MerchantOrderNo=" + Depositnumber + "&Amt=" + Amt + "&ItemDesc=" + ItemDesc + "&CustomerURL=" + CustomerURL + "&NotifyURL=" + NotifyURL + type;
            }
        }
Ejemplo n.º 3
0
        public ActionResult DeleteViprecord(Guid Viprecordid)
        {
            Viprecord viprecord = viprecordService.GetByID(Viprecordid);

            viprecordService.Delete(viprecord);
            viprecordService.SaveChanges();
            return(RedirectToAction("Viprecord"));
        }
Ejemplo n.º 4
0
        public ActionResult EditViprecord(Guid Viprecordid, int p)
        {
            MembersDropDownList();
            IEnumerable <Vipdetail> vipdetail = vipdetailService.Get().OrderByDescending(o => o.Day);
            Viprecord  viprecord     = viprecordService.GetByID(Viprecordid);
            var        selectday     = vipdetailService.Get().FirstOrDefault(a => a.Day == viprecord.Day);
            SelectList VipdetailList = new SelectList(vipdetail, "Vipdetailid", "Day", selectday.Vipdetailid);

            ViewBag.VipdetailList = VipdetailList;
            ViewBag.pageNumber    = p;
            return(View(viprecord));
        }
Ejemplo n.º 5
0
        public ActionResult AddViprecord(Viprecord viprecord, Guid Vipdetailid)
        {
            Vipdetail vipdetail  = vipdetailService.GetByID(Vipdetailid);
            Viprecord old_record = viprecordService.Get().Where(a => a.Status == 2).OrderByDescending(o => o.Enddate).FirstOrDefault(a => a.Memberid == viprecord.Memberid);
            DateTime  now        = DateTime.Now;

            if (TryUpdateModel(viprecord, new string[] { "Payway", "Status" }) && ModelState.IsValid)
            {
                viprecord.Viprecordid   = Guid.NewGuid();
                viprecord.Createdate    = DateTime.Now;
                viprecord.Updatedate    = DateTime.Now;
                viprecord.Enddate       = DateTime.Now;
                viprecord.Day           = vipdetail.Day;
                viprecord.Money         = vipdetail.Money;
                viprecord.Depositnumber = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                double day = Convert.ToDouble(viprecord.Day);

                /*** 如果有完成付款,就將開始日期填入今天,填寫付款方式,並且將該會員之層級提升至VIP ***/
                if (viprecord.Status == 2)
                {
                    /** 假設沒有舊資料,就直接新增進去 **/
                    if (old_record != null)
                    {
                        if (old_record.Enddate > now)
                        {
                            viprecord.Enddate   = old_record.Enddate.AddDays(day);
                            viprecord.Startdate = old_record.Enddate;
                        }
                        else
                        {
                            viprecord.Enddate   = DateTime.Now.AddDays(day);
                            viprecord.Startdate = DateTime.Now;
                        }
                    }
                    else
                    {
                        viprecord.Enddate   = DateTime.Now.AddDays(day);
                        viprecord.Startdate = DateTime.Now;
                    }

                    Members     Member      = membersService.GetByID(viprecord.Memberid);
                    Memberlevel Memberlevel = memberlevelService.Get().Where(a => a.Levelname == "VIP").FirstOrDefault();
                    Member.Levelid = Memberlevel.Levelid;
                    membersService.SpecificUpdate(Member, new string[] { "Levelid" });
                    membersService.SaveChanges();
                }
                viprecordService.Create(viprecord);
                viprecordService.SaveChanges();
            }

            return(RedirectToAction("Viprecord"));
        }
Ejemplo n.º 6
0
        protected override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            if (Session["Memberid"] != null)
            {
                int       Now       = (int)(DateTime.Now - new DateTime(1970, 1, 1)).TotalSeconds - 28800;               // 目前時間總秒數
                Guid      Memberid  = Guid.Parse((Session["Memberid"]).ToString());
                Guid      Normalid  = memberlevelService.Get().Where(a => a.Levelname == "一般").FirstOrDefault().Levelid; // 一般會員的ID
                Members   member    = membersService.GetByID(Memberid);                                                  // 該會員的詳細資料
                Viprecord viprecord = viprecordService.Get().Where(a => a.Memberid == Memberid).Where(x => x.Status == 2).OrderByDescending(o => o.Enddate).FirstOrDefault();
                /*** 判斷該會員剩餘VIP天數 ***/
                if (viprecord != null)
                {
                    Double Day = (viprecord.Enddate - DateTime.Now).TotalDays;
                    if (Day > 0)
                    {
                        ViewBag.Remainday = Convert.ToInt16(Math.Ceiling(Day));
                    }
                    else
                    {
                        ViewBag.Remainday = 0;
                        if (member.Levelid != Normalid)
                        {
                            member.Levelid = Normalid;
                            membersService.SpecificUpdate(member, new string[] { "Levelid" });
                            membersService.SaveChanges();
                        }
                    }
                }

                member.Logindate = Now + 1200;                                                      // 登入時間為目前時間+20分鐘
                membersService.SpecificUpdate(member, new string[] { "Logindate" });
                membersService.SaveChanges();
                /*** 判斷該會員是否有買過VIP ***/
                ViewBag.Checkvip = viprecordService.Get().Where(a => a.Memberid == Memberid).Where(x => x.Status == 2).Count();
            }
            ViewBag.BlobUrl      = url + "/" + container + "/";
            ViewBag.WebsiteTitle = websitetitle;
            ViewBag.AddActive    = (ViewBag.CartItems > 0) ? "add-active" : "";

            base.OnActionExecuted(filterContext);
        }
Ejemplo n.º 7
0
        public void DepositReceive(string TradeInfo)
        {
            string       Receive        = Newebpay.DecryptAES256(TradeInfo);
            var          NewebpayRecive = JsonConvert.DeserializeObject <dynamic>(Receive); // 將Newebpay回傳的json格式轉成物件
            string       DepositNumber  = NewebpayRecive.Result.MerchantOrderNo;            // 取得儲值編號
            Viprecord    viprecord      = viprecordService.Get().Where(a => a.Depositnumber == DepositNumber).FirstOrDefault();
            Returnstatus returnstatus   = new Returnstatus();

            returnstatus.Text       = Receive;
            returnstatus.Createdate = DateTime.Now;
            returnstatusService.Create(returnstatus);
            returnstatusService.SaveChanges();
            if (NewebpayRecive.Result.PaymentType == "VACC")
            {
                /*** 將付款方式、Newebpay交易編號、開始時間、截止時間 ***/
                Viprecord old_data = viprecordService.Get().Where(a => a.Memberid == viprecord.Memberid).OrderByDescending(x => x.Enddate).FirstOrDefault();
                viprecord.Paymenttype = NewebpayRecive.Result.PaymentType;
                viprecord.Status      = 2;
                if (old_data != null)
                {
                    if (old_data.Enddate < DateTime.Now)
                    {
                        viprecord.Startdate = DateTime.Now;
                        viprecord.Enddate   = DateTime.Now.AddDays(Convert.ToDouble(viprecord.Day));
                    }
                    else
                    {
                        viprecord.Startdate = old_data.Enddate;
                        viprecord.Enddate   = old_data.Enddate.AddDays(Convert.ToDouble(viprecord.Day));
                    }
                }
                else
                {
                    viprecord.Startdate = DateTime.Now;
                    viprecord.Enddate   = DateTime.Now.AddDays(Convert.ToDouble(viprecord.Day));
                }
                viprecordService.SpecificUpdate(viprecord, new string[] { "Paymenttype", "Startdate", "Enddate", "Status" });
                viprecordService.SaveChanges();

                /*** 更新會員層級狀態 ***/
                Members     member      = membersService.GetByID(viprecord.Memberid);
                Memberlevel memberlevel = memberlevelService.Get().Where(a => a.Levelname == "VIP").FirstOrDefault();
                member.Levelid = memberlevel.Levelid;
                membersService.SpecificUpdate(member, new string[] { "Levelid" });
                membersService.SaveChanges();
            }
            else if (NewebpayRecive.Result.PaymentType == "CVS")
            {
                /*** 將付款方式、Newebpay交易編號、開始時間、截止時間 ***/
                Viprecord old_data = viprecordService.Get().Where(a => a.Memberid == viprecord.Memberid).OrderByDescending(x => x.Enddate).FirstOrDefault();
                viprecord.Paymenttype = NewebpayRecive.Result.PaymentType;
                viprecord.Status      = 2;
                if (old_data != null)
                {
                    if (old_data.Enddate < DateTime.Now)
                    {
                        viprecord.Startdate = DateTime.Now;
                        viprecord.Enddate   = DateTime.Now.AddDays(Convert.ToDouble(viprecord.Day));
                    }
                    else
                    {
                        viprecord.Startdate = old_data.Enddate;
                        viprecord.Enddate   = old_data.Enddate.AddDays(Convert.ToDouble(viprecord.Day));
                    }
                }
                else
                {
                    viprecord.Startdate = DateTime.Now;
                    viprecord.Enddate   = DateTime.Now.AddDays(Convert.ToDouble(viprecord.Day));
                }
                viprecordService.SpecificUpdate(viprecord, new string[] { "Paymenttype", "Startdate", "Enddate", "Status" });
                viprecordService.SaveChanges();

                /*** 更新會員層級狀態 ***/
                Members     member      = membersService.GetByID(viprecord.Memberid);
                Memberlevel memberlevel = memberlevelService.Get().Where(a => a.Levelname == "VIP").FirstOrDefault();
                member.Levelid = memberlevel.Levelid;
                membersService.SpecificUpdate(member, new string[] { "Levelid" });
                membersService.SaveChanges();
            }
        }
Ejemplo n.º 8
0
        public ActionResult DepositSuccess(string TradeInfo)
        {
            string Receive        = Newebpay.DecryptAES256(TradeInfo);
            var    NewebpayRecive = JsonConvert.DeserializeObject <dynamic>(Receive); // 將Newebpay回傳的json格式轉成物件

            if (NewebpayRecive.Result.PaymentType == "CVS")
            {
                string    DepositNumber = NewebpayRecive.Result.MerchantOrderNo;           // 取得儲值編號
                Viprecord viprecord     = viprecordService.Get().Where(a => a.Depositnumber == DepositNumber).FirstOrDefault();
                ViewBag.Payway  = viprecord.Payway;                                        // 付款方式
                ViewBag.Amt     = NewebpayRecive.Result.Amt;                               // 付款金額
                ViewBag.Day     = viprecord.Day;                                           // 購買天數
                ViewBag.CodeNo  = NewebpayRecive.Result.CodeNo;                            // 超商編號
                ViewBag.DueDate = DateTime.Now.AddDays(7).ToString("yyyy/MM/dd HH:mm:ss"); // 付款期限


                /*** 將Newebpay編號、付款方式、超商編號、繳費期限寫入資料庫 ***/
                viprecord.Tradenumber   = NewebpayRecive.Result.TradeNo;
                viprecord.Paymenttype   = NewebpayRecive.Result.PaymentType;
                viprecord.Paymentnumber = NewebpayRecive.Result.CodeNo;
                viprecord.Duedate       = DateTime.Now.AddDays(7);
                viprecordService.SpecificUpdate(viprecord, new string[] { "Tradenumber", "Paymenttype", "Paymentnumber", "Duedate" });
                viprecordService.SaveChanges();
            }
            else if (NewebpayRecive.Result.PaymentType == "VACC")
            {
                string    DepositNumber = NewebpayRecive.Result.MerchantOrderNo;            // 取得儲值編號
                Viprecord viprecord     = viprecordService.Get().Where(a => a.Depositnumber == DepositNumber).FirstOrDefault();
                ViewBag.Payway   = viprecord.Payway;                                        // 付款方式
                ViewBag.Amt      = NewebpayRecive.Result.Amt;                               // 付款金額
                ViewBag.Day      = viprecord.Day;                                           // 購買天數
                ViewBag.CodeNo   = NewebpayRecive.Result.CodeNo;                            // 金融繳費代碼
                ViewBag.BankCode = NewebpayRecive.Result.BankCode;                          // 銀行數字代碼
                ViewBag.DueDate  = DateTime.Now.AddDays(7).ToString("yyyy/MM/dd HH:mm:ss"); //繳費期限

                /*** 將Newebpay編號、付款方式、金融機構代碼、金融繳費代碼、繳費期限寫入資料庫 ****/
                viprecord.Tradenumber    = NewebpayRecive.Result.TradeNo;
                viprecord.Paymenttype    = NewebpayRecive.Result.PaymentType;
                viprecord.Bankcode       = NewebpayRecive.Result.Bankcode;
                viprecord.Virtualaccount = NewebpayRecive.Result.CodeNo;
                viprecord.Duedate        = DateTime.Now.AddDays(7);
                viprecordService.SpecificUpdate(viprecord, new string[] { "Tradenumber", "Paymenttype", "Bankcode", "Virtualaccount", "Duedate" });
                viprecordService.SaveChanges();
            }
            else if (NewebpayRecive.Result.PaymentType == "CREDIT")
            {
                string    DepositNumber = NewebpayRecive.Result.MerchantOrderNo;       // 取得儲值編號
                Viprecord viprecord     = viprecordService.Get().Where(a => a.Depositnumber == DepositNumber).FirstOrDefault();
                ViewBag.Payway    = viprecord.Payway;                                  // 付款方式
                ViewBag.Status    = NewebpayRecive.Message;                            // 付款狀態
                ViewBag.Amt       = NewebpayRecive.Result.Amt;                         // 付款金額
                ViewBag.Day       = viprecord.Day;                                     // 購買天數
                ViewBag.OrderDate = NewebpayRecive.Result.PayTime;                     // 付款日期
                /*** 判斷是否授權成功 ***/
                if (NewebpayRecive.Message == "授權成功")
                {
                    /*** 將付款方式、Newebpay交易編號、開始時間、截止時間 ***/
                    Guid      Memberid = Guid.Parse((Session["Memberid"]).ToString());
                    Viprecord old_data = viprecordService.Get().Where(a => a.Memberid == Memberid).OrderByDescending(x => x.Enddate).FirstOrDefault();
                    viprecord.Tradenumber = NewebpayRecive.Result.TradNo;
                    viprecord.Paymenttype = NewebpayRecive.Result.PaymentType;
                    viprecord.Status      = 2;
                    if (old_data != null)
                    {
                        if (old_data.Enddate < DateTime.Now)
                        {
                            viprecord.Startdate = DateTime.Now;
                            viprecord.Enddate   = DateTime.Now.AddDays(Convert.ToDouble(viprecord.Day));
                        }
                        else
                        {
                            viprecord.Startdate = old_data.Enddate;
                            viprecord.Enddate   = old_data.Enddate.AddDays(Convert.ToDouble(viprecord.Day));
                        }
                    }
                    else
                    {
                        viprecord.Startdate = DateTime.Now;
                        viprecord.Enddate   = DateTime.Now.AddDays(Convert.ToDouble(viprecord.Day));
                    }
                    viprecordService.SpecificUpdate(viprecord, new string[] { "Tradenumber", "Paymenttype", "Startdate", "Enddate", "Status" });
                    viprecordService.SaveChanges();

                    /*** 更新會員層級狀態 ***/
                    Members     member      = membersService.GetByID(Memberid);
                    Memberlevel memberlevel = memberlevelService.Get().Where(a => a.Levelname == "VIP").FirstOrDefault();
                    member.Levelid = memberlevel.Levelid;
                    membersService.SpecificUpdate(member, new string[] { "Levelid" });
                    membersService.SaveChanges();
                }
            }
            return(View());
        }