/// <summary> /// 充值失败,金额返还 /// </summary> public static string FailRecharge(PhoneRecharge pr) { using (SqlConnection conn = new SqlConnection(DBHelper.connString)) { conn.Open(); SqlTransaction tran = conn.BeginTransaction(); try { int count = 0; //扣除会员账户金额 string sql = "update memberinfo set jackpot=jackpot+@ordertotalmoney where number=@number"; count += DBHelper.ExecuteNonQuery(tran, sql, new SqlParameter[2] { new SqlParameter("@ordertotalmoney", pr.AddMoney), new SqlParameter("@number", pr.Number) }, CommandType.Text); //获取账户余额 sql = "select isnull((jackpot-out-membership),0) from memberinfo where number =@number"; decimal balanceMoney = Convert.ToDecimal(DBHelper.ExecuteScalar(tran, sql, new SqlParameter[1] { new SqlParameter("@number", pr.Number) }, CommandType.Text)); //插入对账单 sql = @"insert into MemberAccount(number,happentime,happenmoney,BalanceMoney,direction,sftype, kmtype,remark) values (@number, @happentime, @happenmoney,@BalanceMoney,0,1,24, @number + '~008030~' + @phonenumber + '~008035~' + cast(@happenmoney as varchar)) "; count += DBHelper.ExecuteNonQuery(tran, sql, new SqlParameter[5] { new SqlParameter("@number", pr.Number), new SqlParameter("@happentime", pr.AddTime), new SqlParameter("@happenmoney", pr.AddMoney), new SqlParameter("@BalanceMoney", balanceMoney), new SqlParameter("@phonenumber", pr.PhoneNumber), }, CommandType.Text); //修改充值状态 sql = "update PhoneRecharge set AddState=@AddState wehre RechargeID=@RechargeID"; count += DBHelper.ExecuteNonQuery(tran, sql, new SqlParameter[2] { new SqlParameter("@AddState", pr.AddState), new SqlParameter("@RechargeID", pr.RechargeID) }, CommandType.Text); if (count > 2) { tran.Commit(); return("ok"); } else { tran.Rollback(); return("fail"); } } catch (Exception ex) { tran.Rollback(); string ee = ex.Message; return("fail"); } } return("fail"); }
/// <summary> /// 修改充值记录状态 /// </summary> public static bool EditState(PhoneRecharge pr) { string sql = "update PhoneRecharge set AddState=@AddState where RechargeID=@RechargeID"; return(DBHelper.ExecuteNonQuery(sql, new SqlParameter[2] { new SqlParameter("@AddState", pr.AddState), new SqlParameter("@RechargeID", pr.RechargeID) }, CommandType.Text) > 0); }
/// <summary> /// 根据充值ID查询充值记录 /// </summary> public static PhoneRecharge FindPhoneRechargeByID(string rechargeID) { PhoneRecharge pr = new PhoneRecharge(); DataTable dt = DBHelper.ExecuteDataTable("select * from PhoneRecharge where rechargeID=@rechargeID", new SqlParameter[1] { new SqlParameter("@rechargeID", rechargeID) }, CommandType.Text); pr.ID = Convert.ToInt32(dt.Rows[0]["ID"]); pr.RechargeID = dt.Rows[0]["RechargeID"].ToString(); pr.Number = dt.Rows[0]["Number"].ToString(); pr.PhoneNumber = dt.Rows[0]["PhoneNumber"].ToString(); pr.AddMoney = Convert.ToDecimal(dt.Rows[0]["AddMoney"]); pr.AddState = Convert.ToInt32(dt.Rows[0]["AddState"]); pr.AddTime = Convert.ToDateTime(dt.Rows[0]["AddTime"]); pr.OperateIP = dt.Rows[0]["OperateIP"].ToString(); pr.OperaterNum = dt.Rows[0]["OperaterNum"].ToString(); return(pr); }
protected void sub_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(txtPhoneNumber.Text)) { Page.ClientScript.RegisterStartupScript(GetType(), "", "<script language='javascript'>alert('" + GetTran("008029", "请输入手机号码!") + "')</script>"); hid_fangzhi.Value = "0"; return; } else if (!PhoneRechargeBLL.CheckPhoneNumber(txtPhoneNumber.Text)) { Page.ClientScript.RegisterStartupScript(GetType(), "", "<script language='javascript'>alert('" + GetTran("006545", "手机号码格式错误") + "!')</script>"); hid_fangzhi.Value = "0"; return; } if (MemberInfoDAL.CheckState(Session["Member"].ToString())) { ClientScript.RegisterStartupScript(this.GetType(), "", "<script> alert('" + GetTran("007456", "会员账户已冻结,不能完成支付!") + "'); </script>"); hid_fangzhi.Value = "0"; return; } PhoneRecharge pr = new PhoneRecharge(); pr.RechargeID = new PhoneRechargeBLL().GetRechargeID(); pr.Number = Session["Member"].ToString(); pr.AddMoney = Convert.ToDecimal(ddlMoney.SelectedValue); pr.AddState = 1; pr.PhoneNumber = txtPhoneNumber.Text; pr.AddTime = DateTime.Now.ToUniversalTime(); pr.OperateIP = Request.UserHostAddress; pr.OperaterNum = Session["Member"].ToString(); string result = PhoneRechargeBLL.AddRecharge(pr); if (String.Equals(result, "1")) { ClientScript.RegisterStartupScript(this.GetType(), "", "<script> alert('" + GetTran("007514", "支付失败,账户可用余额不足") + "!'); </script>"); hid_fangzhi.Value = "0"; return; } else if (String.Equals(result, "fail")) { ClientScript.RegisterStartupScript(this.GetType(), "", "<script> alert('" + GetTran("008031", "手机充值失败,请重新操作!") + "'); </script>"); hid_fangzhi.Value = "0"; return; } else if (String.Equals(result, "ok")) { string url = Request.Url.ToString().ToLower().Replace("/member/phonerecharge.aspx", "/phonerecharge/chongzhi.aspx"); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/ag-plugin, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*"; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"; request.Method = "post"; request.KeepAlive = true; request.Headers.Add("Accept-Language", "zh-cn,zh;q=0.5"); request.Headers.Add("Accept-Charset", "GB2312,utf-8;q=0.7,*;q=0.7"); request.ContentType = "application/x-www-form-urlencoded"; Encoding ec = Encoding.GetEncoding("gb2312"); Byte[] bt = ec.GetBytes("txtPhoneNumber=" + pr.PhoneNumber + "&ddlMoney=" + pr.AddMoney.ToString() + "&RechargeID=" + pr.RechargeID); request.ContentLength = bt.Length; Stream streamrequest = request.GetRequestStream(); streamrequest.Write(bt, 0, bt.Length); ClientScript.RegisterStartupScript(this.GetType(), "", "<script> alert('" + GetTran("008032", "手机充值操作完成,请等候5~10分钟话费将会充值到您的手机!") + "'); </script>"); Response.Redirect(Request.Url.ToString().ToLower().Replace("/phonerecharge.aspx", "/findrecharge.aspx")); } }
/// <summary> /// 增加话费充值记录 /// </summary> public static string AddRecharge(PhoneRecharge pr) { using (SqlConnection conn = new SqlConnection(DBHelper.connString)) { conn.Open(); SqlTransaction tran = conn.BeginTransaction(); try { int count = 0; //验证账户余额 string sql = "select isnull((jackpot-out-membership),0) from memberinfo where number =@number"; decimal balanceMoney = Convert.ToDecimal(DBHelper.ExecuteScalar(tran, sql, new SqlParameter[1] { new SqlParameter("@number", pr.Number) }, CommandType.Text)); if (balanceMoney < pr.AddMoney) { tran.Rollback(); return("1");//账户余额不足 } //扣除会员账户金额 sql = "update memberinfo set out=out+@ordertotalmoney where number=@number"; count += DBHelper.ExecuteNonQuery(tran, sql, new SqlParameter[2] { new SqlParameter("@ordertotalmoney", pr.AddMoney), new SqlParameter("@number", pr.Number) }, CommandType.Text); //插入对账单 sql = @"insert into MemberAccount(number,happentime,happenmoney,BalanceMoney,direction,sftype, kmtype,remark) values (@number, @happentime, @happenmoney,@BalanceMoney,1,1,23, @number + '~008030~' + @phonenumber + '~008028~' + cast(@happenmoney as varchar)) "; count += DBHelper.ExecuteNonQuery(tran, sql, new SqlParameter[5] { new SqlParameter("@number", pr.Number), new SqlParameter("@happentime", pr.AddTime), new SqlParameter("@happenmoney", pr.AddMoney), new SqlParameter("@BalanceMoney", (balanceMoney - pr.AddMoney)), new SqlParameter("@phonenumber", pr.PhoneNumber), }, CommandType.Text); //插入充值记录 sql = "insert into PhoneRecharge(Number,PhoneNumber,AddMoney,AddState,AddTime,OperateIP,OperaterNum,RechargeID) values(@Number,@PhoneNumber,@AddMoney,@AddState,@AddTime,@OperateIP,@OperaterNum,@RechargeID) "; SqlParameter[] paras = new SqlParameter[8]; paras[0] = new SqlParameter("@Number", pr.Number); paras[1] = new SqlParameter("@PhoneNumber", pr.PhoneNumber); paras[2] = new SqlParameter("@AddMoney", pr.AddMoney); paras[3] = new SqlParameter("@AddState", pr.AddState); paras[4] = new SqlParameter("@AddTime", pr.AddTime); paras[5] = new SqlParameter("@OperateIP", pr.OperateIP); paras[6] = new SqlParameter("@OperaterNum", pr.OperaterNum); paras[7] = new SqlParameter("@RechargeID", pr.RechargeID); count += DBHelper.ExecuteNonQuery(tran, sql, paras, CommandType.Text); if (count > 2) { tran.Commit(); return("ok"); } else { tran.Rollback(); return("fail"); } } catch (Exception ex) { tran.Rollback(); string ee = ex.Message; return("fail"); } } return("fail"); }