Example #1
0
        public ActionResult PaymentCard(FormCollection f)
        {
            string Username = System.Web.HttpContext.Current.User.Identity.GetUserName();

            //save MAC + ComputerName
            //var MAC = GetMACAddress();

            //string ComputerName = System.Net.Dns.GetHostEntry(Request.ServerVariables["REMOTE_ADDR"]).HostName;

            //int ckOption = int.Parse(f.Get("options"));

            //neu xac thuc bang dia chi mac
            //if (ckOption == 1)
            //{
            //    var uInfo = _userInfoServices.GetUserInfobyUser(getCurrentUserId());
            //    if(uInfo.MAC != MAC)
            //    {
            //        ViewBag.RealValue = getAmount();
            //        ViewBag.TotalValue = getAmount();
            //        ViewBag.Error = "Địa chỉ MAC không đúng, hãy sử dụng máy tính của mình để mua thẻ nhé.";
            //        return View("Payment");

            //    }
            //}

            if (!ModelState.IsValid)
            {
                ViewBag.RealValue  = getAmount();
                ViewBag.TotalValue = getAmount();
                return(View("Payment"));
            }
            try
            {
                if (!this.IsCaptchaValid("Validate your captcha"))
                {
                    ViewBag.Error = "Sai captcha";
                }
                else
                {
                    int Amount = int.Parse(f["card_amount"]);

                    string UserId     = getCurrentUserId();
                    var    userInfox  = _userInfoServices.GetUserInfobyUser(UserId);
                    double AmountUser = userInfox.Amount;
                    if (AmountUser >= Amount && Amount <= 100000 && Amount >= 10000)
                    {
                        if (DateTime.Now.Hour < 8 || DateTime.Now.Hour > 19)
                        {
                            ViewBag.Error = "Thời gian mở thanh toán từ 8h - 20h hàng ngày. Bạn quay lại sau nhé ^^";
                        }
                        else
                        {
                            string card_type   = f["card_type"];
                            string ProductCode = string.Empty;
                            string nameCard    = string.Empty;
                            switch (card_type)
                            {
                            case "VTT": ProductCode = "500"; nameCard = "VIETTEL"; break;

                            case "VMS": ProductCode = "501"; nameCard = "MOBIFONE"; break;

                            case "VNP": ProductCode = "502"; nameCard = "VINAPHONE"; break;

                            case "VTC": ProductCode = "300"; nameCard = "VTC"; break;

                            case "Gate": ProductCode = "301"; nameCard = "Gate"; break;

                            case "Garena": ProductCode = "302"; nameCard = "Garena"; break;

                            case "Zing": ProductCode = "303"; nameCard = "Zing"; break;

                            case "OnCash": ProductCode = "305"; nameCard = "OnCash"; break;

                            case "Megacard": ProductCode = "306"; nameCard = "Megacard"; break;
                            }
                            //buy card
                            int productCode = int.Parse(ProductCode);

                            //cardt game
                            string input = string.Empty;
                            if (productCode < 500)
                            {
                                input = "{\"ProductCode\":\"" + ProductCode + "\",\"RefNumber\":\"" + Username + "-" + Guid.NewGuid().ToString() + "\",\"CustIP\":\"127.0.0.1\",\"CardPrice\":\"" + Amount + "\",\"CardQuantity\":\"1\"}";
                            }
                            else
                            {
                                input = "{\"ProductCode\":\"" + ProductCode + "\",\"RefNumber\":\"" + Username + "-" + Guid.NewGuid().ToString() + "\",\"Telco\":\"" + card_type + "\",\"CustMobile\":\"\",\"CustIP\":\"127.0.0.1\",\"CardPrice\":\"" + Amount + "\",\"CardQuantity\":\"1\"}";
                            }

                            var key    = "wYVRH8oEVci8ItSz5mWSJ9MT";
                            var md5key = "aJQCunMndT96lDyZUP";

                            var encData = Encrypt(key, input);

                            var fnc      = "buyPrepaidCards";
                            var ver      = "1.0";
                            var agentID  = "20170707160144";
                            var accID    = "595f4df8e4b01f4ae891c88a";
                            var checksum = MD5PHP(fnc + ver + agentID + accID + encData + md5key);

                            var obj = new
                            {
                                Fnc      = fnc,
                                Ver      = ver,
                                AgentID  = agentID,
                                AccID    = accID,
                                EncData  = encData,
                                Checksum = checksum
                            };

                            var myParameters = JsonConvert.SerializeObject(obj);

                            var content      = Post(myParameters);
                            var responseCard = JsonConvert.DeserializeObject <Result>(content);
                            if (responseCard.RespCode == "00")
                            {
                                var body = Decrypt11(key, responseCard.EncData);
                                var root = JsonConvert.DeserializeObject <RootCard>(body);
                                if (root.CardInfo.Count > 0)
                                {
                                    var user = getCurrentUsers();


                                    var userInfo = _userInfoServices.GetUserInfobyUser(UserId);
                                    userInfo.Amount = userInfo.Amount - Amount;
                                    _userInfoServices.UpdateUserInfo(userInfo);

                                    string success = "Thành công!<br/>";
                                    success += "Loại thẻ: " + nameCard + "<br/>";
                                    success += "Seri: " + root.CardInfo[0].card_serial + "<br/>";
                                    success += "Mã thẻ: " + root.CardInfo[0].card_code + "<br/>";
                                    success += "Ngày hết hạn: " + root.CardInfo[0].expiration_date + "<br/>";



                                    Payment pay = new Payment();
                                    pay.UserId       = UserId;
                                    pay.Amount       = Amount;
                                    pay.Content      = success;
                                    pay.Status       = 1; //ok
                                    pay.CreateDate   = DateTime.Now;
                                    pay.MAC          = string.Empty;
                                    pay.ComputerName = string.Empty;
                                    pay.IP           = System.Web.HttpContext.Current.Request.UserHostAddress;
                                    pay.TypePayment  = 1;
                                    _paymentServices.InserPayment(pay);

                                    ViewBag.RealValue  = AmountUser;
                                    ViewBag.TotalValue = AmountUser;

                                    //if (ckOption == 1)
                                    //{
                                    //    ViewBag.Success = success;

                                    //}
                                    //else
                                    //{
                                    //success = "Loại thẻ: " + nameCard + " - Seri: " + root.CardInfo[0].card_serial + " - Mã thẻ: " + root.CardInfo[0].card_code;
                                    //NameValueCollection values = new NameValueCollection();
                                    //values.Add("apikey", "7751d86b-8f7d-41a9-a900-b5c63b88e549");
                                    //values.Add("from", "*****@*****.**");
                                    //values.Add("fromName", "Cash4Fun Solution");
                                    //values.Add("to", user.Email);
                                    //values.Add("subject", "93658222D" + pay.Id + " - Cash4Fun thanh toán thẻ " + nameCard);
                                    //values.Add("bodyText", success);
                                    //values.Add("bodyHtml", success);
                                    ////values.Add("isTransactional", true);

                                    //string address = "https://api.elasticemail.com/v2/email/send";

                                    //SendMail(address, values);
                                    //string mail = user.Email;
                                    //mail = mail.Substring(0, 3) + "***" + mail.Substring(5);
                                    //ViewBag.Success = "Mã thẻ đã được gởi về mail " + mail;
                                    ViewBag.Success = success;
                                    //}
                                }
                                else
                                {
                                    ViewBag.Error = "Có lỗi khi mua mã thẻ.!";
                                }
                            }
                            else
                            {
                                ViewBag.Error = "Có lỗi khi mua thẻ, vui lòng liên hệ admin!";
                            }
                        }
                    }
                    else
                    {
                        ViewBag.Success = null;
                        ViewBag.Error   = "Không đủ số dư";
                    }
                }
                ViewBag.RealValue  = getAmount();
                ViewBag.TotalValue = getAmount();
                return(View("Payment"));
            }
            catch (Exception ex)
            {
                ViewBag.Success = null;
                ViewBag.Error   = "Có lỗi xảy ra, vui lòng thử lại sau!";
                return(View("Payment"));
            }
        }