Beispiel #1
0
        /// <summary>
        /// 获取验证码
        /// </summary>
        /// <param name="shouji">发送的手机号</param>
        /// <param name="type">发送类型[1=注册验证码 2=验证码]</param>
        /// <param name="return">success:本次发送短信编号,如果发送失败,则返回:error:错误描述</param>
        /// <param name="逻辑说明"></param>
        /// <param>修改备注</param>
        /// 2014-5-20 林建生
        ///
        public object GetICode(string account, int type)
        {
            int    result = 300;
            string data   = "";

            if (account.Length == 11 && account.Substring(0, 1) == "1")
            {
                using (EFDB db = new EFDB())
                {
                    //获取短信的时候先判断是否已经被注册
                    var m = db.Member.Where(l => l.Account == account).FirstOrDefault();
                    if ((m == null && type == 1) || (m != null && type == 2))
                    {
                        string Content = RandStr.CreateValidateNumber(4);
                        var    time    = db.SMS.Where(l => l.PhoneNumber == account && l.Type == 1).OrderByDescending(l => l.AddTime).FirstOrDefault();
                        if (time != null)
                        {
                            //判断是否十分钟内重发
                            TimeSpan ts = DateTime.Now - time.AddTime;
                            if (ts.TotalMinutes <= 10)
                            {
                                Content = time.Content;
                            }
                        }
                        SMS.SMS sms            = new SMS.SMS();
                        string  ReceiptContent = sms.SendSMS(account, "240053", Content);
                        Helper.SMSAdd(account, Content, 1, type, ReceiptContent);
                        JObject paramJson = JsonConvert.DeserializeObject(ReceiptContent) as JObject;
                        if (paramJson["resp"]["respCode"].ToString() == "000000")
                        {
                            result = 200;
                            data   = "已发送,有效期十分钟!";
                        }
                        else
                        {
                            data = "短信接口异常";
                        }
                    }
                    else
                    {
                        if (type == 2)
                        {
                            data = "手机号未注册";
                        }
                        else
                        {
                            data = "手机号已注册";
                        }
                    }
                }
            }
            else
            {
                data = "手机号码错误";
            }
            return(new AjaxResult(result, data));
        }
Beispiel #2
0
        /// <summary>
        /// 通过城市名称读取天气预报ID
        /// </summary>
        /// <param name="strCity">城市名称</param>
        /// <returns>城市ID</returns>
        private string ReadWeatherID(string strCity)
        {
            string strResult    = null;
            string strWeatherID = null;
            string resultString = null;

            RandStr rndNum     = new RandStr(true, false, false, false);
            string  strRequest = "http://toy.weather.com.cn/SearchBox/searchBox?callback=jsonp" + rndNum.GetRandStr(13) + "&_=" + rndNum.GetRandStr(13) + "&language=zh&keyword=" + strCity + "";

            HTTPproc.Encoding = System.Text.Encoding.UTF8;
            strResult         = HTTPproc.OpenRead(strRequest);
            try
            {
                resultString = Regex.Replace(strResult, @"jsonp\d{0,13}\(", "").Replace(");", "");
                JObject o         = JObject.Parse(resultString);
                JArray  WeatherID = (JArray)o["i"];
                strWeatherID = (string)WeatherID[0]["i"];
            }
            catch (ArgumentException ex)
            {
                strWeatherID = "101120201";
            }
            return(strWeatherID);
        }
Beispiel #3
0
        public ActionResult PayShop()
        {
            string RealName      = Request.Form["RealName"];
            string ContactNumber = Request.Form["ContactNumber"];
            string Address       = Request.Form["Addr"];
            string Remarks       = Request.Form["Remarks"];
            int    PayType       = int.Parse(Request.Form["PayType"]);
            //订单类型 Type=0 非借用订单
            int     ReturnType = int.Parse(Request.Form["ReturnType"]);
            string  OrderNo    = RandStr.CreateOrderNO();
            decimal RMB        = 0;//全部订单金额

            using (EFDB db = new EFDB())
            {
                Guid MGid = LCookie.GetMemberGid();
                //如果是积分支付先验证支付密码
                var m = db.Member.Where(l => l.Gid == MGid).FirstOrDefault();
                //待发货利润
                decimal DFHProfit = 0;
                //待发货等级比例
                decimal DFHLV = db.Level.Where(l => l.LV == m.CLLevel).FirstOrDefault().EquityProfit;
                if (PayType == 5)
                {
                    if (m.PayPWD != MD5.GetMD5ljsheng(Request.Form["PayPWD"]))
                    {
                        return(Helper.Redirect("失败", "history.go(-1);", "支付密码错误!"));
                    }
                }
                //购物车转化成订单
                var c = db.Cart.Where(l => l.MemberGid == MGid && l.State == 1).ToList();
                if (c != null)
                {
                    foreach (var dr in c)
                    {
                        //借用订单的产品Gid
                        string  pg    = "";
                        decimal Price = 0;//订单金额
                        //扣除库存
                        var od = db.OrderDetails.Where(l => l.OrderGid == dr.Gid).ToList();
                        foreach (var d in od)
                        {
                            var p = db.ShopProduct.Where(l => l.Gid == d.ProductGid).FirstOrDefault();
                            pg = p.Gid.ToString();
                            if (p.DFH == 3)
                            {
                                DFHProfit += p.Price * DFHLV;
                            }
                            if (ReturnType == 0 || (ReturnType != 0 && p.Borrow == 1 && db.ShopOrder.Where(l => l.Product == pg && l.PayStatus == 1).Count() == 0))
                            {
                                if (p.Stock >= d.Number)
                                {
                                    //扣除库存
                                    p.Stock = p.Stock - d.Number;
                                    if (db.SaveChanges() == 1)
                                    {
                                        //库存扣除状态
                                        if (db.OrderDetails.Where(l => l.Gid == d.Gid).Update(l => new OrderDetails {
                                            State = 1
                                        }) == 1)
                                        {
                                            RMB   += d.Number * p.Price;
                                            Price += d.Number * p.Price;
                                        }
                                        else
                                        {
                                            LogManager.WriteLog("库存扣除成功更新OD失败", "Gid=" + d.Gid);
                                        }
                                    }
                                }
                                else
                                {
                                    //库存不足的直接删除
                                    db.OrderDetails.Where(l => l.Gid == d.Gid).Delete();
                                }
                            }
                            else
                            {
                                return(Helper.Redirect("你下手慢了", "history.go(-1);", "你下手慢了,已被借用"));
                            }
                        }
                        //生成订单
                        var b = new ShopOrder();
                        b.Gid             = dr.Gid;
                        b.AddTime         = DateTime.Now;
                        b.MemberGid       = MGid;
                        b.ShopGid         = dr.ShopGid;
                        b.OrderNo         = OrderNo;
                        b.PayStatus       = 2;
                        b.PayType         = PayType;
                        b.RMB             = 0;
                        b.TotalPrice      = Price;
                        b.Price           = Price;
                        b.CouponPrice     = 0;
                        b.PayPrice        = 0;
                        b.Profit          = 0;
                        b.ConsumptionCode = RandStr.CreateValidateNumber(8);
                        b.ReturnType      = ReturnType;
                        if (ReturnType != 0)
                        {
                            b.BorrowTime = b.AddTime.AddMonths(3);
                            b.Product    = pg;
                        }
                        b.Status        = 1;
                        b.ExpressStatus = 1;
                        b.Remarks       = Remarks;
                        b.Address       = Address;
                        b.ContactNumber = ContactNumber;
                        b.RealName      = RealName;
                        //待发货
                        b.DFHProfit = DFHProfit;
                        b.DFHLV     = DFHLV;
                        b.DFHState  = 1;
                        b.DFH       = 1;
                        db.ShopOrder.Add(b);
                        if (db.SaveChanges() == 1)
                        {
                            if (ReturnType != 0 && pg != "")
                            {
                                Guid PGid = Guid.Parse(pg);
                                if (db.ShopProduct.Where(l => l.Gid == PGid).Update(l => new ShopProduct {
                                    Borrow = 2
                                }) != 1)
                                {
                                    LogManager.WriteLog("借用订单状态失败", "产品Gid=" + pg + ",订单号=" + b.Gid);
                                }
                            }
                            if (db.Cart.Where(l => l.Gid == dr.Gid).Delete() != 1)
                            {
                                LogManager.WriteLog("删除购物车订单失败", "Gid=" + dr.Gid);
                            }
                        }
                        else
                        {
                            LogManager.WriteLog("购物车转订单失败", "Gid=" + dr.Gid);
                            return(Helper.Redirect("失败", "history.go(-1);", "购物车转订单失败"));
                        }
                    }
                    if (RMB > 0)
                    {
                        switch (PayType)
                        {
                        case 1:
                            return(Alipay(OrderNo, "商城订单支付", RMB.ToString(), 2, Request.Form["ReturnType"]));                                                                                    //return MPay(paramJson["OrderNo"].ToString(), paramJson["body"].ToString(), paramJson["TotalPrice"].ToString(), Guid.Parse(paramJson["OrderGid"].ToString()));

                        case 5:
                            return(MShopPay(OrderNo, "商城订单支付", RMB, m.Integral, Request.Form["ReturnType"]));

                        case 3:
                            db.ShopOrder.Where(l => l.OrderNo == OrderNo && l.PayType == 3).Update(l => new ShopOrder {
                                RMB = RMB
                            });
                            return(new RedirectResult("/Home/Bank?Type=2&OrderNo=" + OrderNo + "&Money=" + RMB.ToString()));

                        case 2:
                            if (!string.IsNullOrEmpty(LCookie.GetCookie("openid")))
                            {
                                string beizhu = "shop";    //备注
                                //开始微信统一下单
                                JObject j = WX.WXPay.Get_RequestHtml(LCookie.GetCookie("openid"), OrderNo, "彩链商城订单", beizhu, RMB.ToString());
                                return(Json(new AjaxResult(new
                                {
                                    OrderNo,
                                    appId = j["appId"].ToString(),
                                    timeStamp = j["timeStamp"].ToString(),
                                    nonceStr = j["nonceStr"].ToString(),
                                    package = j["package"].ToString(),
                                    paySign = j["paySign"].ToString(),
                                    signType = j["signType"].ToString()
                                })));
                            }
                            else
                            {
                                return(Json(new AjaxResult(301, "微信支付,请在微信里打开重新登录进行支付")));
                            }

                        default:
                            return(Helper.Redirect("失败", "history.go(-1);", "非法支付"));
                        }
                    }
                    else
                    {
                        return(Helper.Redirect("失败", "history.go(-1);", "提交订单失败!"));
                    }
                }
                else
                {
                    return(Helper.Redirect("失败", "history.go(-1);", "购物车发生变化!"));
                }
            }
        }
Beispiel #4
0
 /// <summary>
 /// 下订单返回支付参数
 /// </summary>
 /// <param>修改备注</param>
 /// 2014-5-20 林建生
 public object order(HttpContext context)
 {
     try
     {
         string json = "";
         using (StreamReader sr = new StreamReader(context.Request.InputStream))
         {
             json = HttpUtility.UrlDecode(sr.ReadLine()); //Server.UrlDecode
         }
         //解析参数
         JObject paramJson = JsonConvert.DeserializeObject(json) as JObject;
         //商品列表
         string product = paramJson["product"].ToString();
         //购买类型[1=真柏 2=视频 3=课程]
         int type = int.Parse(paramJson["type"].ToString());
         //会员的gid
         Guid member_gid = Guid.Parse(paramJson["member_gid"].ToString());
         //会员的登录标识
         string login_identifier = paramJson["login_identifier"].ToString();
         //收货地址
         string contact_number = paramJson["contact_number"].ToString();
         string consignee      = paramJson["consignee"].ToString();
         string address        = paramJson["address"].ToString();
         string remarks        = paramJson["remarks"].ToString();
         using (EFDB db = new EFDB())
         {
             var member = db.member.Where(l => l.gid == member_gid).FirstOrDefault();
             if (member.login_identifier == login_identifier)
             {
                 string order_no    = RandStr.CreateOrderNO();
                 string _package    = Helper.wxpay(order_no, product, member_gid, member.openid, type, remarks, address, consignee, contact_number);
                 string APPID       = Help.appid;
                 string PARTNER_KEY = Help.api_key;
                 SortedDictionary <string, string> pay_dic = new SortedDictionary <string, string>();
                 string wx_timeStamp = WXPay.getTimestamp();
                 string wx_nonceStr  = WXPay.getNoncestr();
                 pay_dic.Add("appId", APPID);
                 pay_dic.Add("timeStamp", wx_timeStamp);
                 pay_dic.Add("nonceStr", wx_nonceStr);
                 pay_dic.Add("package", _package);
                 pay_dic.Add("signType", "MD5");
                 string paySign = WXPay.BuildRequest(pay_dic, PARTNER_KEY);
                 return(new AjaxResult(new
                 {
                     timeStamp = wx_timeStamp,
                     nonceStr = wx_nonceStr,
                     signType = "MD5",
                     paySign = paySign,
                     package = _package,
                     order_no = order_no
                 }));
             }
             else
             {
                 return(new AjaxResult(300, "请重新登录!"));
             }
         }
     }
     catch (Exception err)
     {
         return(new AjaxResult(300, new { Message = err.Message, Source = err.Source, StackTrace = err.StackTrace }));
     }
 }