/// <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)); }
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);", "购物车发生变化!")); } } }