/// <summary> /// 获得数据列表 /// </summary> public List <System.Model.order_info> DataTableToList(DataTable dt) { List <System.Model.order_info> modelList = new List <System.Model.order_info>(); int rowsCount = dt.Rows.Count; if (rowsCount > 0) { System.Model.order_info model; for (int n = 0; n < rowsCount; n++) { model = new System.Model.order_info(); if (dt.Rows[n]["id"].ToString() != "") { model.id = int.Parse(dt.Rows[n]["id"].ToString()); } model.serialNumber = dt.Rows[n]["serialNumber"].ToString(); if (dt.Rows[n]["facility"].ToString() != "") { model.facility = int.Parse(dt.Rows[n]["facility"].ToString()); } if (dt.Rows[n]["port"].ToString() != "") { model.port = int.Parse(dt.Rows[n]["port"].ToString()); } if (dt.Rows[n]["price"].ToString() != "") { model.price = decimal.Parse(dt.Rows[n]["price"].ToString()); } if (dt.Rows[n]["discount"].ToString() != "") { model.discount = decimal.Parse(dt.Rows[n]["discount"].ToString()); } model.customid = dt.Rows[n]["customid"].ToString(); if (dt.Rows[n]["pudate"].ToString() != "") { model.pudate = DateTime.Parse(dt.Rows[n]["pudate"].ToString()); } if (dt.Rows[n]["statuses"].ToString() != "") { model.statuses = int.Parse(dt.Rows[n]["statuses"].ToString()); } if (dt.Rows[n]["duration"].ToString() != "") { model.duration = int.Parse(dt.Rows[n]["duration"].ToString()); } if (dt.Rows[n]["types"].ToString() != "") { model.types = int.Parse(dt.Rows[n]["types"].ToString()); } if (dt.Rows[n]["stippleid"].ToString() != "") { model.stippleid = int.Parse(dt.Rows[n]["stippleid"].ToString()); } modelList.Add(model); } } return(modelList); }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(System.Model.order_info model) { StringBuilder strSql=new StringBuilder(); strSql.Append("update order_info set "); strSql.Append(" serialNumber = @serialNumber , "); strSql.Append(" facility = @facility , "); strSql.Append(" port = @port , "); strSql.Append(" price = @price , "); strSql.Append(" discount = @discount , "); strSql.Append(" customid = @customid , "); strSql.Append(" pudate = @pudate , "); strSql.Append(" statuses = @statuses , "); strSql.Append(" duration = @duration , "); strSql.Append(" types = @types , "); strSql.Append(" stippleid = @stippleid "); strSql.Append(" where id=@id "); SqlParameter[] parameters = { new SqlParameter("@id", SqlDbType.Int,4) , new SqlParameter("@serialNumber", SqlDbType.NVarChar,200) , new SqlParameter("@facility", SqlDbType.Int,4) , new SqlParameter("@port", SqlDbType.Int,4) , new SqlParameter("@price", SqlDbType.Money,8) , new SqlParameter("@discount", SqlDbType.Float,8) , new SqlParameter("@customid", SqlDbType.NVarChar,50) , new SqlParameter("@pudate", SqlDbType.DateTime) , new SqlParameter("@statuses", SqlDbType.Int,4) , new SqlParameter("@duration", SqlDbType.Int,4) , new SqlParameter("@types", SqlDbType.Int,4) , new SqlParameter("@stippleid", SqlDbType.Int,4) }; parameters[0].Value = model.id; parameters[1].Value = model.serialNumber; parameters[2].Value = model.facility; parameters[3].Value = model.port; parameters[4].Value = model.price; parameters[5].Value = model.discount; parameters[6].Value = model.customid; parameters[7].Value = model.pudate; parameters[8].Value = model.statuses; parameters[9].Value = model.duration; parameters[10].Value = model.types; parameters[11].Value = model.stippleid; int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters); if (rows > 0) { return true; } else { return false; } }
/// <summary> /// 增加一条数据 /// </summary> public int Add(System.Model.order_info model) { StringBuilder strSql=new StringBuilder(); strSql.Append("insert into order_info("); strSql.Append("serialNumber,facility,port,price,discount,customid,pudate,statuses,duration,types,stippleid"); strSql.Append(") values ("); strSql.Append("@serialNumber,@facility,@port,@price,@discount,@customid,@pudate,@statuses,@duration,@types,@stippleid"); strSql.Append(") "); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@serialNumber", SqlDbType.NVarChar,200) , new SqlParameter("@facility", SqlDbType.Int,4) , new SqlParameter("@port", SqlDbType.Int,4) , new SqlParameter("@price", SqlDbType.Money,8) , new SqlParameter("@discount", SqlDbType.Float,8) , new SqlParameter("@customid", SqlDbType.NVarChar,50) , new SqlParameter("@pudate", SqlDbType.DateTime) , new SqlParameter("@statuses", SqlDbType.Int,4) , new SqlParameter("@duration", SqlDbType.Int,4) , new SqlParameter("@types", SqlDbType.Int,4) , new SqlParameter("@stippleid", SqlDbType.Int,4) }; parameters[0].Value = model.serialNumber; parameters[1].Value = model.facility; parameters[2].Value = model.port; parameters[3].Value = model.price; parameters[4].Value = model.discount; parameters[5].Value = model.customid; parameters[6].Value = model.pudate; parameters[7].Value = model.statuses; parameters[8].Value = model.duration; parameters[9].Value = model.types; parameters[10].Value = model.stippleid; object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters); if (obj == null) { return 0; } else { return Convert.ToInt32(obj); } }
protected void Page_Load(object sender, EventArgs e) { string res = ""; try { System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(this.Request.InputStream); System.Xml.XmlNodeList nodelist = doc.SelectNodes("//xml");//匹配所有xml节点 //errordetail = doc.InnerXml; if (nodelist.Count > 0) { System.Xml.XmlNode msgNode = nodelist[0]; if (msgNode != null) { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //交易状态 string result = msgNode.SelectSingleNode("return_code").InnerText; if (result == "SUCCESS") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //商户订单号 string out_trade_no = msgNode.SelectSingleNode("out_trade_no").InnerText; //微信交易号 string trade_no = msgNode.SelectSingleNode("transaction_id").InnerText; lock (lockWechatPayObj) { //查询支付订单是否支付 string strwhere = " serialNumber='" + out_trade_no + "' and paystatus=1 "; List <System.Model.Member_Charge_Withdraw> mcwlist = _bll.mcwbll.GetModelList(strwhere); if (mcwlist.Count == 1) { System.Model.Member_Charge_Withdraw mcw = mcwlist[0]; mcw.paydate = System.DateTime.Now.ToString(); mcw.paystatus = 2; mcw.paytype = 2;//微信 mcw.statusname = "已支付"; mcw.typename = "微信"; mcw.tpSerialNumber = trade_no; _bll.mcwbll.Update(mcw); //订单付款 if (mcw.types == 1) { strwhere = " serialNumber='" + out_trade_no + "' "; List <System.Model.order_info> oilist = _bll.oibll.GetModelList(strwhere); if (oilist.Count == 1) { System.Model.order_info oi = oilist[0]; oi.statuses = 2; _bll.oibll.Update(oi); //锁定设备 System.Model.facility_port ports = _bll.fpbll.GetModel(oi.port); ports.isEmploy = 1; _bll.fpbll.Update(ports); //通知设备开始充电 System.Model.facility fa = _bll.fbll.GetModel(oi.facility); open.opens(fa.identitycode, ports.identitycode, oi.customid, out_trade_no); } else { } } //充值 // } else { //订单未找到或者已支付 } } } else { } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— ///////////////////////////////////////////////////////////////////////////////////////////////////////////// } else//验证失败 { } } else { } } catch (Exception ex) { } Response.Write(res); }
/// <summary> /// 返回结果 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string res = ""; JsonData jsonResult = new JsonData(); try { //结果类型 string resulttype = Request["resulttype"] != null?Utility.Helper.Checkstr(Request["resulttype"]) : ""; //结果 string result = Request["result"] != null?Utility.Helper.Checkstr(Request["result"]) : ""; //标识 string identify = Request["identify"] != null?Utility.Helper.Checkstr(Request["identify"]) : ""; //接口标识 string requestCode = Request["requetCode"] != null?Utility.Helper.Checkstr(Request["requetCode"]) : ""; //requestCode = Request.Form.ToString(); // //log.setlog("地址", Request.Url.ToString()); //log.setlog("地址", Request.RawUrl); #region 提供服务回调 if (!string.IsNullOrEmpty(resulttype) && !string.IsNullOrEmpty(result) && !string.IsNullOrEmpty(identify)) { log.setlog("服务回调", "resulttype:" + resulttype + " result:" + result + " identify:" + identify + " requestCode:" + requestCode); //标识 string resultNO = result; List <checkStatus> sd = publicData.orderlist; log.setlog("静态变量数据量", sd.Count.ToString()); try { if (sd.Count > 0) { sd = (from s in sd where s.identifying == requestCode select s).ToList(); if (sd.Count > 0) { checkStatus sd_0 = sd[0]; if (sd_0.types == 0) { #region 自检结果 string customId = sd_0.customId; System.Model.facility_port fp = _bll.fpbll.GetModel(sd_0.portid); System.Model.facility_stipple fs = new System.Model.facility_stipple(); System.Model.facility fa = new System.Model.facility(); if (resultNO == "2") //if (resultNO == "0") //if (true) { fa = _bll.fbll.GetModel(sd[0].facilityid); //查询网点 fs = _bll.fsbll.GetModel(fa.fid); //查询设备 折扣 System.Model.facility_type ftype = _bll.ftbll.GetModel(fa.types); //生成订单 string serialNumber = System.DateTime.Now.ToString("yyyyMMddHHmmss") + Utility.Helper.rnds(8); //折后价 decimal prices = ftype.price * ftype.discount; System.Model.order_info oi = new System.Model.order_info(); oi.customid = customId; oi.serialNumber = serialNumber; oi.discount = ftype.discount; oi.price = prices; oi.port = fp.id; oi.pudate = System.DateTime.Now; oi.statuses = 1; oi.facility = Utility.Helper.gerInt(fa.id); oi.duration = ftype.time; oi.stippleid = fs.id; oi.types = 1;//1快充 if (_bll.oibll.Add(oi) > 0) { //生成支付信息 System.Model.Member_Charge_Withdraw mcw = new System.Model.Member_Charge_Withdraw(); mcw.memberid = customId; mcw.moneyes = prices; mcw.serialNumber = serialNumber; mcw.paystatus = 1; mcw.statusname = "未支付"; //mcw.paytype = "";//支付方式 支付宝 微信 钱包 //paystatus 1 未支付 2已支付 //types 1订单 2充值 3...... mcw.types = 1; mcw.pudate = System.DateTime.Now; if (_bll.mcwbll.Add(mcw) > 0) { for (int i = 0; i < publicData.orderlist.Count; i++) { if (publicData.orderlist[i].identifying == requestCode) { publicData.orderlist[i].orderid = serialNumber; log.setlog("订单产生成功", publicData.orderlist[i].orderid); } } //jsonResult["res"] = (int)MyEnum.ResultEnum.成功; //jsonResult["msg"] = "下单成功"; //jsonResult["code"] = ""; // //jsonResult["stipplename"] = fs.name; //jsonResult["servertype"] = "快充"; //jsonResult["price"] = Math.Round(prices, 2).ToString(); //jsonResult["serialnumber"] = serialNumber;//订单号 } else { //jsonResult["res"] = (int)MyEnum.ResultEnum.失败; //jsonResult["msg"] = "错误"; //jsonResult["code"] = "下单失败"; } } else { //jsonResult["res"] = (int)MyEnum.ResultEnum.失败; //jsonResult["msg"] = "错误"; //jsonResult["code"] = "下单失败"; } } else { //错误 //添加自检错误记录 // System.Model.self_test st = new System.Model.self_test(); string name = ""; string typeno; switch (resultNO) { case "0": name = "正常"; typeno = "0"; break; case "2": name = "充电桩和充电枪运行正常"; typeno = "2"; break; case "3": name = "充电桩运行异常"; typeno = "3"; break; case "4": name = "充电枪运行异常"; typeno = "4"; break; case "5": name = "外网电压工作异常"; typeno = "5"; break; case "6": name = "电池工作不正常"; typeno = "6"; break; case "7": name = "充电枪与电池接触良"; typeno = "7"; break; default: name = "系统未知错误"; typeno = "xxxx"; break; } st.facility = Utility.Helper.gerInt(fa.id); st.isdispose = 0; st.port = Utility.Helper.gerInt(fp.fid); st.errortype = "1"; st.stipple = Utility.Helper.gerInt(fs.id); st.pudate = System.DateTime.Now; _bll.stbll.Add(st); //jsonResult["res"] = (int)MyEnum.ResultEnum.失败; //jsonResult["msg"] = "设备故障"; //jsonResult["code"] = "设备故障"; } #endregion } else if (sd_0.types == 1) { #region 充电是否开始 if (!string.IsNullOrEmpty(sd_0.orderid)) { //修改订单充电状态 //开始充电 string strwhere = " serialNumber='" + sd_0.orderid + "' "; List <System.Model.order_info> oilist = _bll.oibll.GetModelList(strwhere); if (oilist.Count == 1) { System.Model.order_info oi = oilist[0]; oi.statuses = 2;//充电中 _bll.oibll.Update(oi); } else { } } #endregion } else if (sd_0.types == 2) { #region 充电是否结束 if (!string.IsNullOrEmpty(sd_0.orderid)) { //修改订单充电状态 //结束充电 string strwhere = " serialNumber='" + sd_0.orderid + "' "; List <System.Model.order_info> oilist = _bll.oibll.GetModelList(strwhere); if (oilist.Count == 1) { System.Model.order_info oi = oilist[0]; oi.statuses = 3;//已完成充电 _bll.oibll.Update(oi); } else { } } #endregion } else if (sd_0.types == 3) { #region 系统故障类型 #endregion } else if (sd_0.types == 4) { #region 充电数据 #endregion } } } } catch (Exception ex) { log.setlog("错误", ex.Message); } jsonResult["res"] = (int)MyEnum.ResultEnum.成功; jsonResult["msg"] = ""; jsonResult["code"] = ""; } else { jsonResult["res"] = (int)MyEnum.ResultEnum.失败; jsonResult["msg"] = ""; jsonResult["code"] = "参数缺失"; } #endregion } catch (Exception ex) { jsonResult["result"] = (int)MyEnum.ResultEnum.系统错误; jsonResult["msg"] = "服务器繁忙,请稍后再试"; jsonResult["code"] = ex.Message; log.setlog("错误", ex.Message); } res = JsonMapper.ToJson(jsonResult); res = MyString.UnicodeToString(res); Response.Write(res); } }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(System.Model.order_info model) { return(dal.Update(model)); }
/// <summary> /// 增加一条数据 /// </summary> public int Add(System.Model.order_info model) { return(dal.Add(model)); }
protected void Page_Load(object sender, EventArgs e) { //log.setlog("", "回调成功"); try { SortedDictionary <string, string> sPara = GetRequestPost(); if (sPara.Count > 0)//判断是否有带返回参数 { Notify aliNotify = new Notify(); //bool verifyResult = aliNotify.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"]); bool verifyResult = AlipaySignature.RSACheckV1(sPara, Com.Alipay.Config.Public_key, "UTF-8", Config.Sign_type, false); //log.setlog("是否回调成功", verifyResult.ToString()); if (verifyResult)//验证成功 { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 //商户订单号 string out_trade_no = Request.Form["out_trade_no"]; //支付宝交易号 string trade_no = Request.Form["trade_no"]; //支付的金额 string price = Request.Form["price"]; //交易状态 string trade_status = Request.Form["trade_status"]; //log.setlog("支付信息", trade_no + "---" + price + "---" + out_trade_no + "---" + trade_status); lock (lockAlipayObj) { if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS") { //查询支付订单是否支付 string strwhere = " serialNumber='" + out_trade_no + "' and paystatus=1 "; List <System.Model.Member_Charge_Withdraw> mcwlist = _bll.mcwbll.GetModelList(strwhere); if (mcwlist.Count == 1) { System.Model.Member_Charge_Withdraw mcw = mcwlist[0]; mcw.paydate = System.DateTime.Now.ToString(); mcw.paystatus = 2; mcw.paytype = 1; mcw.statusname = "已支付"; mcw.typename = "支付宝"; mcw.tpSerialNumber = trade_no; _bll.mcwbll.Update(mcw); //订单付款 if (mcw.types == 1) { strwhere = " serialNumber='" + out_trade_no + "' "; List <System.Model.order_info> oilist = _bll.oibll.GetModelList(strwhere); if (oilist.Count == 1) { System.Model.order_info oi = oilist[0]; oi.statuses = 2; _bll.oibll.Update(oi); //锁定设备 System.Model.facility_port ports = _bll.fpbll.GetModel(oi.port); ports.isEmploy = 1; _bll.fpbll.Update(ports); //通知设备开始充电 System.Model.facility fa = _bll.fbll.GetModel(oi.facility); open.opens(fa.identitycode, ports.identitycode, oi.customid, out_trade_no); } else { } } //充值 // } else { //订单未找到或者已支付 } //查询是否支付 //查询 订单是否支付 //修改订单状态 //业务逻辑 //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //该种交易状态只在两种情况下出现 //1、开通了普通即时到账,买家付款成功后。 //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。 } else if (Request.Form["trade_status"] == "TRADE_SUCCESS") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。 //log.setlog("B", ""); } else { //log.setlog("C", ""); } } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— Response.Write("success"); //请不要修改或删除 //ms.Dispose(); ///////////////////////////////////////////////////////////////////////////////////////////////////////////// } else//验证失败 { Response.Write("fail"); } } else { Response.Write("无通知参数"); } } catch (Exception ex) { } }
/// <summary> /// 得到一个对象实体 /// </summary> public System.Model.order_info GetModel(int id) { StringBuilder strSql=new StringBuilder(); strSql.Append("select id, serialNumber, facility, port, price, discount, customid, pudate, statuses, duration, types, stippleid "); strSql.Append(" from order_info "); strSql.Append(" where id=@id"); SqlParameter[] parameters = { new SqlParameter("@id", SqlDbType.Int,4) }; parameters[0].Value = id; System.Model.order_info model=new System.Model.order_info(); DataSet ds=DbHelperSQL.Query(strSql.ToString(),parameters); if(ds.Tables[0].Rows.Count>0) { if(ds.Tables[0].Rows[0]["id"].ToString()!="") { model.id=int.Parse(ds.Tables[0].Rows[0]["id"].ToString()); } model.serialNumber= ds.Tables[0].Rows[0]["serialNumber"].ToString(); if(ds.Tables[0].Rows[0]["facility"].ToString()!="") { model.facility=int.Parse(ds.Tables[0].Rows[0]["facility"].ToString()); } if(ds.Tables[0].Rows[0]["port"].ToString()!="") { model.port=int.Parse(ds.Tables[0].Rows[0]["port"].ToString()); } if(ds.Tables[0].Rows[0]["price"].ToString()!="") { model.price=decimal.Parse(ds.Tables[0].Rows[0]["price"].ToString()); } if(ds.Tables[0].Rows[0]["discount"].ToString()!="") { model.discount=decimal.Parse(ds.Tables[0].Rows[0]["discount"].ToString()); } model.customid= ds.Tables[0].Rows[0]["customid"].ToString(); if(ds.Tables[0].Rows[0]["pudate"].ToString()!="") { model.pudate=DateTime.Parse(ds.Tables[0].Rows[0]["pudate"].ToString()); } if(ds.Tables[0].Rows[0]["statuses"].ToString()!="") { model.statuses=int.Parse(ds.Tables[0].Rows[0]["statuses"].ToString()); } if(ds.Tables[0].Rows[0]["duration"].ToString()!="") { model.duration=int.Parse(ds.Tables[0].Rows[0]["duration"].ToString()); } if(ds.Tables[0].Rows[0]["types"].ToString()!="") { model.types=int.Parse(ds.Tables[0].Rows[0]["types"].ToString()); } if(ds.Tables[0].Rows[0]["stippleid"].ToString()!="") { model.stippleid=int.Parse(ds.Tables[0].Rows[0]["stippleid"].ToString()); } return model; } else { return null; } }