/// <summary> /// 更新一条数据 /// </summary> public bool Update(M_Capital_account_water model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update hx_Capital_account_water set "); strSql.Append("membertable_registerid=@membertable_registerid,"); strSql.Append("income=@income,"); strSql.Append("expenditure=@expenditure,"); strSql.Append("time_of_occurrence=@time_of_occurrence,"); strSql.Append("account_balance=@account_balance,"); strSql.Append("types_Finance=@types_Finance,"); strSql.Append("createtime=@createtime"); strSql.Append(" where account_water_id=@account_water_id"); SqlParameter[] parameters = { new SqlParameter("@membertable_registerid", SqlDbType.Int, 4), new SqlParameter("@income", SqlDbType.Decimal, 17), new SqlParameter("@expenditure", SqlDbType.Decimal, 17), new SqlParameter("@time_of_occurrence", SqlDbType.DateTime), new SqlParameter("@account_balance", SqlDbType.Decimal, 17), new SqlParameter("@types_Finance", SqlDbType.Int, 4), new SqlParameter("@createtime", SqlDbType.DateTime), new SqlParameter("@account_water_id", SqlDbType.Int, 4) }; parameters[0].Value = model.membertable_registerid; parameters[1].Value = model.income; parameters[2].Value = model.expenditure; parameters[3].Value = model.time_of_occurrence; parameters[4].Value = model.account_balance; parameters[5].Value = model.types_Finance; parameters[6].Value = model.createtime; parameters[7].Value = model.account_water_id; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 增加一条数据 /// </summary> public int Add(M_Capital_account_water model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into hx_Capital_account_water("); strSql.Append("membertable_registerid,income,expenditure,time_of_occurrence,account_balance,types_Finance,createtime,keyid,remarks)"); strSql.Append(" values ("); strSql.Append("@membertable_registerid,@income,@expenditure,@time_of_occurrence,@account_balance,@types_Finance,@createtime,@keyid,@remarks)"); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@membertable_registerid", SqlDbType.Int, 4), new SqlParameter("@income", SqlDbType.Decimal, 17), new SqlParameter("@expenditure", SqlDbType.Decimal, 17), new SqlParameter("@time_of_occurrence", SqlDbType.DateTime), new SqlParameter("@account_balance", SqlDbType.Decimal, 17), new SqlParameter("@types_Finance", SqlDbType.Int, 4), new SqlParameter("@createtime", SqlDbType.DateTime), new SqlParameter("@keyid", SqlDbType.Int, 4), new SqlParameter("@remarks", SqlDbType.VarChar, 3000) }; parameters[0].Value = model.membertable_registerid; parameters[1].Value = model.income; parameters[2].Value = model.expenditure; parameters[3].Value = model.time_of_occurrence; parameters[4].Value = model.account_balance; parameters[5].Value = model.types_Finance; parameters[6].Value = model.createtime; parameters[7].Value = model.keyid; parameters[8].Value = model.remarks; object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToInt32(obj)); } }
/// <summary> /// 得到一个对象实体 /// </summary> public M_Capital_account_water DataRowToModel(DataRow row) { M_Capital_account_water model = new M_Capital_account_water(); if (row != null) { if (row["account_water_id"] != null && row["account_water_id"].ToString() != "") { model.account_water_id = int.Parse(row["account_water_id"].ToString()); } if (row["membertable_registerid"] != null && row["membertable_registerid"].ToString() != "") { model.membertable_registerid = int.Parse(row["membertable_registerid"].ToString()); } if (row["income"] != null && row["income"].ToString() != "") { model.income = decimal.Parse(row["income"].ToString()); } if (row["expenditure"] != null && row["expenditure"].ToString() != "") { model.expenditure = decimal.Parse(row["expenditure"].ToString()); } if (row["time_of_occurrence"] != null && row["time_of_occurrence"].ToString() != "") { model.time_of_occurrence = DateTime.Parse(row["time_of_occurrence"].ToString()); } if (row["account_balance"] != null && row["account_balance"].ToString() != "") { model.account_balance = decimal.Parse(row["account_balance"].ToString()); } if (row["types_Finance"] != null && row["types_Finance"].ToString() != "") { model.types_Finance = int.Parse(row["types_Finance"].ToString()); } if (row["createtime"] != null && row["createtime"].ToString() != "") { model.createtime = DateTime.Parse(row["createtime"].ToString()); } } return(model); }
/// <summary> /// 得到一个对象实体 /// </summary> public M_Capital_account_water GetModel(int account_water_id) { StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 account_water_id,membertable_registerid,income,expenditure,time_of_occurrence,account_balance,types_Finance,createtime from hx_Capital_account_water "); strSql.Append(" where account_water_id=@account_water_id"); SqlParameter[] parameters = { new SqlParameter("@account_water_id", SqlDbType.Int, 4) }; parameters[0].Value = account_water_id; M_Capital_account_water model = new M_Capital_account_water(); DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
public ActionResult Su_Repayment() { Utils.SetSYSDateTimeFormat(); chuangtouEntities ef = new chuangtouEntities(); string str = ""; ReRepayment Re = new ReRepayment(); Re.CmdId = DNTRequest.GetString("CmdId"); Re.RespCode = DNTRequest.GetString("RespCode"); Re.MerCustId = DNTRequest.GetString("MerCustId"); Re.ProId = DNTRequest.GetString("ProId"); Re.OrdId = DNTRequest.GetString("OrdId"); Re.OrdDate = DNTRequest.GetString("OrdDate"); Re.OutCustId = DNTRequest.GetString("OutCustId"); Re.SubOrdId = DNTRequest.GetString("SubOrdId"); Re.SubOrdDate = DNTRequest.GetString("SubOrdDate"); Re.OutAcctId = DNTRequest.GetString("OutAcctId"); Re.TransAmt = DNTRequest.GetString("TransAmt"); Re.PrincipalAmt = DNTRequest.GetString("PrincipalAmt"); Re.InterestAmt = DNTRequest.GetString("InterestAmt"); Re.Fee = DNTRequest.GetString("Fee"); Re.InCustId = DNTRequest.GetString("InCustId"); Re.InAcctId = DNTRequest.GetString("InAcctId"); Re.FeeObjFlag = DNTRequest.GetString("FeeObjFlag"); Re.DzObject = DNTRequest.GetString("DzObject"); Re.BgRetUrl = DNTRequest.GetString("BgRetUrl"); Re.MerPriv = DNTRequest.GetString("MerPriv"); Re.RespExt = DNTRequest.GetString("RespExt"); LogInfo.WriteLog("后台还款返回报文:" + FastJSON.toJOSN(Re)); string version = "20"; if (string.IsNullOrEmpty(Re.TransAmt) || Re.TransAmt == "0.00") { version = "30"; } StringBuilder builder = new StringBuilder(); builder.Append(Re.CmdId); builder.Append(Re.RespCode); builder.Append(Re.MerCustId); if (version == "30") { builder.Append(Re.ProId); } builder.Append(Re.OrdId); builder.Append(Re.OrdDate); builder.Append(Re.OutCustId); builder.Append(Re.SubOrdId); builder.Append(Re.SubOrdDate); builder.Append(Re.OutAcctId); if (version == "30") { builder.Append(Re.PrincipalAmt); builder.Append(Re.InterestAmt); } else { builder.Append(Re.TransAmt); } builder.Append(Re.Fee); builder.Append(Re.InCustId); builder.Append(Re.InAcctId); builder.Append(Re.FeeObjFlag); if (version == "30") { builder.Append(Re.DzObject); } builder.Append(HttpUtility.UrlDecode(Re.BgRetUrl)); builder.Append(Re.MerPriv); builder.Append(HttpUtility.UrlDecode(Re.RespExt)); // builder.Append(Re.ChkValue); var msg = builder.ToString(); if (version == "30") { msg = Utils.MD5(msg); } string pgPubkFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); int ret = DllInterop.VeriSignMsg(pgPubkFile, msg, msg.Length, Re.ChkValue); LogInfo.WriteLog("后台验签 ret= " + ret.ToString()); if (ret == 0) { if (Re.RespCode == "000" || Re.TransAmt == "0.00") { string cachename = "Repayment" + Re.OrdId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); B_member_table o = new B_member_table(); M_member_table p = new M_member_table(); M_member_table p2 = new M_member_table(); M_Capital_account_water baw = new M_Capital_account_water(); V_borrowing_Bid_records_income_statement item = new V_borrowing_Bid_records_income_statement(); int income_statement_id = int.Parse(Re.MerPriv); item = ef.V_borrowing_Bid_records_income_statement.AsNoTracking().Where(ps => ps.income_statement_id == income_statement_id).FirstOrDefault(); p = o.GetModel(int.Parse(item.borrower_registerid.ToString())); //借款人用户对象 baw.membertable_registerid = p.registerid; baw.income = 0.00M; baw.expenditure = decimal.Parse(Re.TransAmt); baw.time_of_occurrence = DateTime.Now; baw.account_balance = p.available_balance - baw.expenditure; //面要得么帐户余额 baw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.还款.ToString()); baw.createtime = DateTime.Now; baw.keyid = 0; baw.remarks = Re.OrdId + "," + Re.OrdDate; M_Capital_account_water iaw = new M_Capital_account_water(); //投资人流水对象 p2 = o.GetModel(int.Parse(item.investor_registerid.ToString())); //投资人用户对象 iaw.membertable_registerid = p2.registerid; iaw.income = decimal.Parse(Re.TransAmt); iaw.expenditure = 0.00M; iaw.time_of_occurrence = DateTime.Now; iaw.account_balance = p2.available_balance + iaw.income; //面要得么帐户余额 iaw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.借款人还款.ToString()); iaw.createtime = DateTime.Now; iaw.keyid = 0; iaw.remarks = Re.OrdId + "," + Re.OrdDate; int targetid = int.Parse(item.targetid.ToString()); //判断是否为最后一期还款,并进行相应状态处理 hx_repayment_plan plan = (from a in ef.hx_repayment_plan where a.targetid == targetid select a).OrderByDescending(a => a.current_period).Take(1).FirstOrDefault(); var lastcur = plan.current_period; //判断是否是最后一期,如果是对本金处理。得直接用最后一期还款金额减去本金,这样就解决多出本金问题 bool lastrepamt = false; if (item.current_investment_period.ToString() == lastcur.ToString()) { lastrepamt = true; } //需要更新投资记录表已还款金额 B_usercenter BUC = new B_usercenter(); decimal PrincipalInterest = decimal.Parse(item.Principal.ToString()) + decimal.Parse(item.interestpayment.ToString()); //本金加利息 decimal PInterest = decimal.Parse(item.interestpayment.ToString()); //利息 Re.MerPriv = DateTime.Parse(item.interest_payment_date.ToString()).ToString("yyyy-MM-dd"); //传入还款日期 int bucd = BUC.Repayment_Successfully(Re, baw, iaw, lastrepamt, PrincipalInterest, PInterest); if (bucd > 0) { // 尊敬#UserName#,您投资的第#PID#号标第#ORDER#期还款已到帐,本次已成功还款#MONEY#元.欢迎继续投资!【创利投】 #region 短信通知 //短信通知 string contxt = Utils.GetMSMEmailContext(11, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", item.username.ToString()); sbsms = sbsms.Replace("#PID#", item.targetid.ToString()); sbsms = sbsms.Replace("#ORDER#", item.current_investment_period.ToString()); sbsms = sbsms.Replace("#MONEY#", item.repayment_amount.ToString()); string mobile = item.mobile.ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.投资回款.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = int.Parse(item.investor_registerid.ToString()); psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); #endregion #region 系统消息 //系统消息 DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(item.investor_registerid.ToString()); pm.Mstate = 0; pm.MTitle = "投资回款"; // pm.MContext = "尊敬的用户" + dt.Rows[0]["username"].ToString() + ":您好!恭喜您成功投资了项目【" + dt.Rows[0]["borrowing_title"].ToString() + "】,投资金额是:" + dt.Rows[0]["investment_amount"].ToString() + "。如有问题可咨询创利投的客服!谢谢!"; pm.MContext = sbsms.ToString(); pm.PubTime = dti; pm.Mtype = 2; B_usercenter.AddMessage(pm); #endregion #region 更新标的状态为还还清 ///更新标的状态为还还清 if (item.current_investment_period.ToString() == lastcur.ToString()) { //更新标的状态为还还清 string sql = "update hx_borrowing_target set tender_state=5 where targetid=" + item.targetid.ToString() + ""; DbHelperSQL.ExecuteSql(sql); sql = "update hx_Bid_records set payment_status =1 where bid_records_id=" + item.bid_records_id.ToString(); DbHelperSQL.ExecuteSql(sql); } #endregion //Response.Write("还款验签成功!"); } else { //Response.Write("还款更新失败!" + bucd.ToString()); } } str = "RECV_ORD_ID_" + Re.OrdId; LogInfo.WriteLog(str + "后台还款成功"); } else { string cc = Utils.GetReturnCode(Int32.Parse(Re.RespCode)); if (cc.Contains("还款金额超过还款总额") || cc.Contains("重复的还款请求")) { B_member_table o = new B_member_table(); M_member_table p = new M_member_table(); M_member_table p2 = new M_member_table(); M_Capital_account_water baw = new M_Capital_account_water(); V_borrowing_Bid_records_income_statement item = new V_borrowing_Bid_records_income_statement(); int income_statement_id = int.Parse(Re.MerPriv); item = ef.V_borrowing_Bid_records_income_statement.AsNoTracking().Where(ps => ps.income_statement_id == income_statement_id).FirstOrDefault(); p = o.GetModel(int.Parse(item.borrower_registerid.ToString())); //借款人用户对象 baw.membertable_registerid = p.registerid; baw.income = 0.00M; baw.expenditure = decimal.Parse(Re.TransAmt); baw.time_of_occurrence = DateTime.Now; baw.account_balance = p.available_balance - baw.expenditure; //面要得么帐户余额 baw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.还款.ToString()); baw.createtime = DateTime.Now; baw.keyid = 0; baw.remarks = Re.OrdId + "," + Re.OrdDate; M_Capital_account_water iaw = new M_Capital_account_water(); //投资人流水对象 p2 = o.GetModel(int.Parse(item.investor_registerid.ToString())); //投资人用户对象 iaw.membertable_registerid = p2.registerid; iaw.income = decimal.Parse(Re.TransAmt); iaw.expenditure = 0.00M; iaw.time_of_occurrence = DateTime.Now; iaw.account_balance = p2.available_balance + iaw.income; //面要得么帐户余额 iaw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.借款人还款.ToString()); iaw.createtime = DateTime.Now; iaw.keyid = 0; iaw.remarks = Re.OrdId + "," + Re.OrdDate; int targetid = int.Parse(item.targetid.ToString()); //判断是否为最后一期还款,并进行相应状态处理 hx_repayment_plan plan = (from a in ef.hx_repayment_plan where a.targetid == targetid select a).OrderByDescending(a => a.current_period).Take(1).FirstOrDefault(); var lastcur = plan.current_period; //判断是否是最后一期,如果是对本金处理。得直接用最后一期还款金额减去本金,这样就解决多出本金问题 bool lastrepamt = false; if (item.current_investment_period.ToString() == lastcur.ToString()) { lastrepamt = true; } //需要更新投资记录表已还款金额 B_usercenter BUC = new B_usercenter(); decimal PrincipalInterest = decimal.Parse(item.Principal.ToString()) + decimal.Parse(item.interestpayment.ToString()); //本金加利息 decimal PInterest = decimal.Parse(item.interestpayment.ToString()); //利息 Re.MerPriv = DateTime.Parse(item.interest_payment_date.ToString()).ToString("yyyy-MM-dd"); //传入还款日期 int bucd = BUC.Repayment_Successfully(Re, baw, iaw, lastrepamt, PrincipalInterest, PInterest); if (bucd > 0) { // 尊敬#UserName#,您投资的第#PID#号标第#ORDER#期还款已到帐,本次已成功还款#MONEY#元.欢迎继续投资!【创利投】 #region 短信通知 //短信通知 string contxt = Utils.GetMSMEmailContext(11, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", item.username.ToString()); sbsms = sbsms.Replace("#PID#", item.targetid.ToString()); sbsms = sbsms.Replace("#ORDER#", item.current_investment_period.ToString()); sbsms = sbsms.Replace("#MONEY#", item.repayment_amount.ToString()); string mobile = item.mobile.ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.投资回款.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = int.Parse(item.investor_registerid.ToString()); psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); #endregion #region 系统消息 //系统消息 DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(item.investor_registerid.ToString()); pm.Mstate = 0; pm.MTitle = "投资回款"; // pm.MContext = "尊敬的用户" + dt.Rows[0]["username"].ToString() + ":您好!恭喜您成功投资了项目【" + dt.Rows[0]["borrowing_title"].ToString() + "】,投资金额是:" + dt.Rows[0]["investment_amount"].ToString() + "。如有问题可咨询创利投的客服!谢谢!"; pm.MContext = sbsms.ToString(); pm.PubTime = dti; pm.Mtype = 2; B_usercenter.AddMessage(pm); #endregion #region 更新标的状态为还还清 ///更新标的状态为还还清 if (item.current_investment_period.ToString() == lastcur.ToString()) { //更新标的状态为还还清 string sql = "update hx_borrowing_target set tender_state=5 where targetid=" + item.targetid.ToString() + ""; DbHelperSQL.ExecuteSql(sql); sql = "update hx_Bid_records set payment_status =1 where bid_records_id=" + item.bid_records_id.ToString(); DbHelperSQL.ExecuteSql(sql); } #endregion //Response.Write("还款验签成功!"); } else { //Response.Write("还款更新失败!" + bucd.ToString()); } } //Response.Write("出现错误! " + Utils.GetReturnCode(Int32.Parse(Re.RespCode))); /* * string cc = Utils.GetReturnCode(Int32.Parse(Re.RespCode)); * * * if (cc.Contains("还款金额超过还款总额") || cc.Contains("重复的还款请求")) * { * * B_member_table o = new B_member_table(); * M_member_table p = new M_member_table(); * M_member_table p2 = new M_member_table(); * M_Capital_account_water baw = new M_Capital_account_water(); * V_borrowing_Bid_records_income_statement item = new V_borrowing_Bid_records_income_statement(); * int income_statement_id = int.Parse(Re.MerPriv); * item = ef.V_borrowing_Bid_records_income_statement.AsNoTracking().Where(ps => ps.income_statement_id == income_statement_id).FirstOrDefault(); * p = o.GetModel(int.Parse(item.borrower_registerid.ToString())); //借款人用户对象 * * * int ic = ef.hx_income_statement.Where(c => c.bid_records_id == item.bid_records_id && c.targetid == item.targetid && c.orderid== Re.OrdId).Update(c => new hx_income_statement { payment_status = 1, repayment_period = DateTime.Now }); * * if (ic > 0) * { * int userid = int.Parse(item.borrower_registerid.ToString()); * UserInfoData ud = new UserInfoData(); * ReQueryBalanceBg retloan = ud.Querybalance(userid); * * if (retloan.RespCode == "000") * { * // sql = "update hx_member_table set available_balance=" + decimal.Parse(retloan.AvlBal) + " ,frozen_sum=" + decimal.Parse(retloan.FrzBal) + " where registerid=" + userid.ToString() + ""; * * //sql = "update hx_member_table set available_balance=" + decimal.Parse(retloan.AvlBal) + " where registerid=" + userid.ToString() + ""; * * //DbHelperSQL.RunSql(sql); * B_usercenter bu = new B_usercenter(); * bu.DataSync(retloan, userid.ToString()); * * * * * } * } */ } } return(Content(str)); }
public ActionResult BgLoans() { string outstr = ""; ReLoans m = new ReLoans(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = DNTRequest.GetString("RespDesc"); m.MerCustId = DNTRequest.GetString("MerCustId"); m.OrdId = DNTRequest.GetString("OrdId"); m.OrdDate = DNTRequest.GetString("OrdDate"); m.OutCustId = DNTRequest.GetString("OutCustId"); m.OutAcctId = DNTRequest.GetString("OutAcctId"); m.TransAmt = DNTRequest.GetString("TransAmt"); m.Fee = DNTRequest.GetString("Fee"); m.InCustId = DNTRequest.GetString("InCustId"); m.InAcctId = DNTRequest.GetString("InAcctId"); m.SubOrdId = DNTRequest.GetString("SubOrdId"); m.SubOrdDate = DNTRequest.GetString("SubOrdDate"); m.FeeObjFlag = DNTRequest.GetString("FeeObjFlag"); m.IsDefault = DNTRequest.GetString("IsDefault"); m.IsUnFreeze = DNTRequest.GetString("IsUnFreeze"); m.UnFreezeOrdId = DNTRequest.GetString("UnFreezeOrdId"); m.FreezeTrxId = DNTRequest.GetString("FreezeTrxId"); m.BgRetUrl = DNTRequest.GetString("BgRetUrl"); m.MerPriv = DNTRequest.GetString("MerPriv"); m.RespExt = DNTRequest.GetString("RespExt"); m.ChkValue = DNTRequest.GetString("ChkValue"); StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.OrdId); chkVal.Append(m.OrdDate); chkVal.Append(m.OutCustId); chkVal.Append(m.OutAcctId); chkVal.Append(m.TransAmt); chkVal.Append(m.Fee); chkVal.Append(m.InCustId); chkVal.Append(m.InAcctId); chkVal.Append(m.SubOrdId); chkVal.Append(m.SubOrdDate); chkVal.Append(m.FeeObjFlag); chkVal.Append(m.IsDefault); chkVal.Append(m.IsUnFreeze); chkVal.Append(m.UnFreezeOrdId); chkVal.Append(m.FreezeTrxId); chkVal.Append(m.BgRetUrl); chkVal.Append(m.MerPriv); chkVal.Append(m.RespExt); string msg = chkVal.ToString(); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); //需要指定提交字符串的长度 int len = Encoding.UTF8.GetBytes(msg).Length; StringBuilder sbChkValue = new StringBuilder(256); int ret = DllInterop.VeriSignMsg(merKeyFile, msg, msg.Length, m.ChkValue); LogInfo.WriteLog("验签:" + ret.ToString()); if (ret == 0) { if (m.RespCode == "000") { // M_borrowing_target m = new M_borrowing_target(); B_borrowing_target o = new B_borrowing_target(); B_member_table o1 = new B_member_table(); M_member_table p1 = new M_member_table(); M_member_table p2 = new M_member_table(); B_usercenter BUC = new B_usercenter(); string cachename = m.OrdId + "Loans" + m.FreezeTrxId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); M_Capital_account_water baw = new M_Capital_account_water(); //借款人流水对象 //标的id,借款人id,投资人id,投资记录bid,抵扣券金额 string strings = m.MerPriv; string[] sArray = strings.Split('_'); if (sArray.Count() == 5) { p1 = o1.GetModel(int.Parse(sArray[1])); //借款人用户对象 LogInfo.WriteLog("sArray[1].ToString():" + sArray[1].ToString()); baw.membertable_registerid = p1.registerid; baw.income = decimal.Parse(m.TransAmt); baw.expenditure = 0.00M; baw.time_of_occurrence = DateTime.Now; // decimal ff = p1.available_balance + decimal.Parse(retloan.TransAmt); baw.account_balance = p1.available_balance; //面要得么帐户余额 LogInfo.WriteLog("借款人余额:" + p1.available_balance); baw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.借款转入.ToString()); baw.createtime = DateTime.Now; baw.keyid = 0; baw.remarks = m.OrdId + "," + m.OrdDate; M_Capital_account_water iaw = new M_Capital_account_water(); //投资人流水对象 p2 = o1.GetModel(int.Parse(sArray[2].ToString())); //投款人用户对象 iaw.membertable_registerid = p2.registerid; iaw.income = 0.00M; iaw.expenditure = decimal.Parse(m.TransAmt); iaw.time_of_occurrence = DateTime.Now; // decimal df=p1.available_balance - decimal.Parse(retloan.TransAmt); iaw.account_balance = p2.available_balance; //面要得么帐户余额 LogInfo.WriteLog("投资人余额:" + p2.ToString()); iaw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.项目投资.ToString()); iaw.createtime = DateTime.Now; iaw.keyid = 0; iaw.remarks = m.OrdId + "," + m.OrdDate; LogInfo.WriteLog("放款bid_records_id:" + sArray[3].ToString()); if (BUC.Loan_Successfully(m, baw, iaw, sArray[3].ToString(), decimal.Parse(sArray[4].ToString())) > 0) { //成功 outstr = "RECV_ORD_ID_" + m.OrdId; LogInfo.WriteLog("后台主动通知操作成功:" + outstr); return(Content(outstr)); // Response.Redirect("/usercenter/index.html"); } } } } } return(Content("")); }
public ActionResult BgCashProcessing() { // Response.BufferOutput = true; // System.Threading.Thread.Sleep(1000); string str = ""; ReCashAudit m = new ReCashAudit(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc")); m.MerCustId = DNTRequest.GetString("MerCustId"); m.OrdId = DNTRequest.GetString("OrdId"); m.UsrCustId = DNTRequest.GetString("UsrCustId"); m.TransAmt = DNTRequest.GetString("TransAmt"); m.OpenAcctId = DNTRequest.GetString("OpenAcctId"); m.OpenBankId = DNTRequest.GetString("OpenBankId"); m.AuditFlag = DNTRequest.GetString("AuditFlag"); m.FeeAmt = DNTRequest.GetString("FeeAmt"); m.FeeCustId = DNTRequest.GetString("FeeCustId"); m.FeeAcctId = DNTRequest.GetString("FeeAcctId"); m.RetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("RetUrl")); m.BgRetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl")); m.MerPriv = HttpUtility.UrlDecode(DNTRequest.GetString("MerPriv")); m.ChkValue = DNTRequest.GetString("ChkValue"); LogInfo.WriteLog("后台取现审核返回参数:" + FastJSON.toJOSN(m)); StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.OrdId); chkVal.Append(m.UsrCustId); chkVal.Append(m.TransAmt); chkVal.Append(m.OpenAcctId); chkVal.Append(m.OpenBankId); chkVal.Append(m.AuditFlag); chkVal.Append(m.RetUrl); chkVal.Append(m.BgRetUrl); chkVal.Append(m.MerPriv); string msg = chkVal.ToString(); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); //需要指定提交字符串的长度 int len = Encoding.UTF8.GetBytes(msg).Length; StringBuilder sbChkValue = new StringBuilder(256); int ret = DllInterop.VeriSignMsg(merKeyFile, msg, msg.Length, m.ChkValue); LogInfo.WriteLog("后台验签返回参数:" + ret.ToString()); #region 核验签结果 if (ret == 0) { if (m.RespCode == "000" || m.RespCode == "999" || m.RespCode == "406") { System.Threading.Thread.Sleep(500); string cachename = m.OrdId + "Cash" + m.UsrCustId + m.TransAmt.ToString(); if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); //提现成功后,得多事务处理账户金额,流水等 B_usercenter BUC = new B_usercenter(); M_Capital_account_water aw = new M_Capital_account_water(); if (BUC.Su_CashProcessing(m, aw) > 0) { str = "RECV_ORD_ID_" + m.OrdId; LogInfo.WriteLog("后台取款审核成功" + str); } else { LogInfo.WriteLog("后台取款审核事误操作失败"); } } str = "RECV_ORD_ID_" + m.OrdId; } else { LogInfo.WriteLog("后台提现失败"); } } else { LogInfo.WriteLog("后台验签失败"); } #endregion return(Content(str)); }
public ActionResult CashProcessingMore(string str) { string json = ""; if (string.IsNullOrEmpty(str)) { json = @"{""ret"":0,""msg"":""参数错误""}"; } string strCount = ""; string bid = str; string[] s = bid.Split(new char[] { ',' }); string sqllist = ""; for (int i = 0; i < s.Length; i++) { sqllist = sqllist + "'" + s[i] + "',"; } if (sqllist.Contains(",")) { bid = Utils.ClearLastChar(sqllist); } int orstate = 1; sqllist = " select registerid,UserCashId,OrdId,OrdIdState,TransAmt,BankName,OpenBankId,OpenAcctId,UsrCustId,realname,Reason,Remarks,available_balance from V_UserCash_Bank "; sqllist += " where UserCashId in (" + bid + ")"; DataTable dt = DbHelperSQL.GET_DataTable_List(sqllist); int succ = 0, lost = 0; for (int i = 0; i < dt.Rows.Count; i++) { M_CashAudit mc = new M_CashAudit(); mc.Version = "10"; mc.CmdId = "CashAudit"; mc.MerCustId = Utils.GetMerCustID(); mc.OrdId = dt.Rows[i]["OrdId"].ToString(); mc.UsrCustId = dt.Rows[i]["UsrCustId"].ToString(); mc.TransAmt = dt.Rows[i]["TransAmt"].ToString(); //判定用户在审核期间内把卡号 移除或取消绑定 或 绑定 状态等于0 string bindCardSql = " SELECT * FROM hx_UsrBindCardC WHERE UsrCustId='{0}' AND OpenAcctId='{1}' "; bindCardSql = string.Format(bindCardSql, dt.Rows[i]["UsrCustId"].ToString(), dt.Rows[i]["OpenAcctId"].ToString()); DataTable bcDt = DbHelperSQL.GET_DataTable_List(bindCardSql); if (bcDt == null || bcDt.Rows.Count == 0) { orstate = 4; } if (orstate == 4) { mc.AuditFlag = "R"; } else { mc.AuditFlag = "S"; } // mc.BgRetUrl = ""; mc.BgRetUrl = Utils.GetRe_url("admin/Thirdparty/BgCashProcessing"); mc.MerPriv = "chuanglitou"; StringBuilder chkVal = new StringBuilder(); chkVal.Append(mc.Version); chkVal.Append(mc.CmdId); chkVal.Append(mc.MerCustId); chkVal.Append(mc.OrdId); chkVal.Append(mc.UsrCustId); chkVal.Append(mc.TransAmt); chkVal.Append(mc.AuditFlag); // chkVal.Append(mc.RetUrl); chkVal.Append(mc.BgRetUrl); chkVal.Append(mc.MerPriv); string chkv = chkVal.ToString(); LogInfo.WriteLog("批量取现审核chkv字符:" + chkv); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr(); //需要指定提交字符串的长度 int len = Encoding.UTF8.GetBytes(chkv).Length; StringBuilder sbChkValue = new StringBuilder(256); //加签 int strer = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue); mc.ChkValue = sbChkValue.ToString(); LogInfo.WriteLog("批量取现审核提交信息:" + FastJSON.toJOSN(mc)); using (var client = new WebClient()) { var values = new NameValueCollection(); values.Add("Version", mc.Version); values.Add("CmdId", mc.CmdId); values.Add("MerCustId", mc.MerCustId); values.Add("OrdId", mc.OrdId); values.Add("UsrCustId", mc.UsrCustId); values.Add("TransAmt", mc.TransAmt); values.Add("AuditFlag", mc.AuditFlag); values.Add("BgRetUrl", mc.BgRetUrl); values.Add("MerPriv", mc.MerPriv); values.Add("ChkValue", mc.ChkValue); string url = Utils.GetChinapnrUrl(); //同步发送form表单请求 byte[] result = client.UploadValues(url, "POST", values); var retStr = Encoding.UTF8.GetString(result); // Response.Write(retStr); // LogInfo.WriteLog("批量取现审同步form表单请求" + retStr); ReCashAudit ReCa = new ReCashAudit(); var Re = (ReCashAudit)FastJSON.ToObject(retStr, ReCa); LogInfo.WriteLog("批量取现审返回报文:" + FastJSON.toJOSN(Re)); StringBuilder builder = new StringBuilder(); builder.Append(Re.CmdId); builder.Append(Re.RespCode); builder.Append(Re.MerCustId); builder.Append(Re.OrdId); builder.Append(Re.UsrCustId); builder.Append(Re.TransAmt); builder.Append(Re.OpenAcctId); builder.Append(Re.OpenBankId); builder.Append(Re.AuditFlag); builder.Append(HttpUtility.UrlDecode(Re.BgRetUrl)); builder.Append(Re.MerPriv); var msg = builder.ToString(); LogInfo.WriteLog("批量取现审验签文明:" + msg); //验签 string pgPubkFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); int ret = DllInterop.VeriSignMsg(pgPubkFile, msg, msg.Length, Re.ChkValue); LogInfo.WriteLog("批量取现审验签 ret= " + ret.ToString()); if (ret == 0) { //更新数据库 string sql = ""; if (orstate == 1) { sql = "update hx_td_UserCash set Remarks='' where UserCashId=" + dt.Rows[i]["UserCashId"].ToString(); DbHelperSQL.RunSql(sql); } else if (orstate == 3) { sql = "update hx_td_UserCash set Remarks='',OrdIdState=3 ,OperTime='" + DateTime.Now.ToString() + "' where UserCashId=" + dt.Rows[i]["UserCashId"].ToString(); DbHelperSQL.RunSql(sql); } else if (orstate == 4) { // sql = "update hx_td_UserCash set Remarks='" + Utils.CheckSQLHtml(model.Remarks) + "', Reason='" + Utils.CheckSQLHtml(model.Reason) + "',OrdIdState=4 ,OperTime='" + DateTime.Now.ToString() + "' where UserCashId=" + UserCashId.ToString(); // sql += ";update hx_member_table set available_balance=available_balance+" + dt.Rows[0]["TransAmt"].ToString() + ",frozen_sum=frozen_sum-" + dt.Rows[0]["TransAmt"].ToString() + " where registerid=" + dt.Rows[0]["registerid"].ToString(); // DbHelperSQL.RunSql(sql); // return Content(StringAlert.Alert("取现未通过,金额已退还!", "/admin/UserCash/CashProcessing?UserCashId=" + model.UserCashId)); } if (Re.RespCode == "000" || Re.RespCode == "999" || Re.RespCode == "406") { string cachename = Re.OrdId + "Cash" + Re.UsrCustId + Re.TransAmt.ToString(); if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); //提现成功后,得多事务处理账户金额,流水等 B_usercenter BUC = new B_usercenter(); M_Capital_account_water aw = new M_Capital_account_water(); if (BUC.Su_CashProcessing(Re, aw) > 0) { strCount += Re.OrdId + " 取款审核成功<br /> "; LogInfo.WriteLog("后台取款审核成功:" + str); succ = succ + 1; } else { lost = lost + 1; strCount += Re.OrdId + " 取款审核失败<br /> "; LogInfo.WriteLog("后台取款审核事误操作失败"); } } } else { lost = lost + 1; strCount += Re.OrdId + " 取款审核失败 (" + Re.RespCode + ")<br /> "; LogInfo.WriteLog("后台提现失败" + Re.RespCode); } } else { // Response.Write(Re.UsrCustId + "取款审核验签失败 原因: " + Re.RespDesc + " <br>"); } } } json = @"{""ret"":1,""msg"":""<div style='margin: 9px;line-height:20px;'>批量复核操作成功 RR</div>"" }"; string sfd = succ.ToString() + "笔成功, " + lost.ToString() + "失败<br />" + strCount + " "; json = json.Replace("RR", sfd); return(Content(json, "text/json")); }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(M_Capital_account_water model) { return(dal.Update(model)); }
/// <summary> /// 增加一条数据 /// </summary> public int Add(M_Capital_account_water model) { return(dal.Add(model)); }
/// <summary> /// 充值汇付后台主动通知 /// </summary> /// <returns></returns> public ActionResult ReQPNetSave() { string str1 = ""; lock (this) { Settings.Instance.SetSYSDateTimeFormat(); ReQPNetSave m = new ReQPNetSave(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc")); m.MerCustId = DNTRequest.GetString("MerCustId"); m.UsrCustId = DNTRequest.GetString("UsrCustId"); m.OrdId = DNTRequest.GetString("OrdId"); m.OrdDate = DNTRequest.GetString("OrdDate"); m.TransAmt = DNTRequest.GetString("TransAmt"); m.TrxId = DNTRequest.GetString("TrxId"); m.GateBusiId = DNTRequest.GetString("GateBusiId"); m.GateBankId = DNTRequest.GetString("GateBankId"); m.FeeAmt = DNTRequest.GetString("FeeAmt"); m.FeeCustId = DNTRequest.GetString("FeeCustId"); m.FeeAcctId = DNTRequest.GetString("FeeAcctId"); m.RetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("RetUrl")); m.BgRetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl")); m.CardId = DNTRequest.GetString("CardId"); m.MerPriv = HttpUtility.UrlDecode(DNTRequest.GetString("MerPriv")); // m.MerPriv = DESEncrypt.Decrypt(DNTRequest.GetString("MerPriv"), ConfigurationManager.AppSettings["webp"].ToString()); m.ChkValue = DNTRequest.GetString("ChkValue"); StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.UsrCustId); chkVal.Append(m.OrdId); chkVal.Append(m.OrdDate); chkVal.Append(m.TransAmt); chkVal.Append(m.TrxId); chkVal.Append(m.RetUrl); chkVal.Append(m.BgRetUrl); chkVal.Append(m.MerPriv); string msg = chkVal.ToString(); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Settings.Instance.PgPubk; //需要指定提交字符串的长度 int len = Encoding.UTF8.GetBytes(msg).Length; StringBuilder sbChkValue = new StringBuilder(256); int ret = DllInterop.VeriSignMsg(merKeyFile, msg, msg.Length, m.ChkValue); // Response.Write("验签:" + ret.ToString()); LoggerHelper.Info("快充接口后台验签:ret=" + ret.ToString() + " RespCode:" + m.RespCode + m.RespDesc); LoggerHelper.Info("快充接口后台充值返回报文:" + JsonHelper.Entity2Json(m)); StringBuilder str = new StringBuilder(); string sql = ""; if (ret == 0) { if (m.RespCode == "000") { string MerPrivTemp = EncryptHelper.Decrypt(m.MerPriv, Settings.Instance.WebPass); string[] arr = Settings.Instance.SplitString(MerPrivTemp, "_"); //第一位是用户id 二是 记录id int userid = int.Parse(arr[0]); int reid = int.Parse(arr[1]); string cachename = m.OrdId + userid.ToString() + reid.ToString(); if (Settings.Instance.GeTThirdCache(cachename) == 0) { Settings.Instance.SetThirdCache(cachename); sql = "select recharge_condition from hx_Recharge_history where recharge_condition=0 and recharge_history_id=" + reid + " and order_No='" + m.OrdId + "'"; DataTable dtr = DbHelper.Query(sql).Tables[0]; if (dtr.Rows.Count > 0) { LoggerHelper.Info("快充接口后台充值数据没有写入情况下操作>>>>>>>>>>>>>>>>>>>>>>>"); M_Recharge_history rh = new M_Recharge_history(); M_Capital_account_water aw = new M_Capital_account_water(); B_member_table o = new B_member_table(); M_member_table p = new M_member_table(); p = o.GetModel(userid); rh.membertable_registerid = userid; rh.recharge_amount = decimal.Parse(m.TransAmt); rh.recharge_time = DateTime.Now; rh.account_amount = decimal.Parse(m.TransAmt); rh.order_No = m.OrdId; rh.recharge_condition = 1; //1表示充值成功 rh.recharge_bank = m.GateBankId; // 得接口返回; rh.recharge_history_id = reid; //本值提交里存的充值id aw.membertable_registerid = userid; aw.income = decimal.Parse(m.TransAmt); aw.expenditure = 0.00M; aw.time_of_occurrence = rh.recharge_time; aw.account_balance = p.available_balance + aw.income; //要得么帐户余额 aw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.充值.ToString()); aw.createtime = DateTime.Now; aw.keyid = 0; aw.remarks = m.OrdId; B_usercenter BUC = new B_usercenter(); int bucrec = BUC.rechargeTran(rh, aw); LoggerHelper.Info("后台充值事务操作返回码小于=0 操作失败:" + bucrec.ToString()); if (m.GateBusiId == "QP") { sql = "select UsrBindCardID from hx_UsrBindCardC where UsrCustId='" + m.UsrCustId + "' and OpenAcctId='" + m.CardId + "'"; DataTable dt = DbHelper.Query(sql).Tables[0]; if (dt.Rows.Count > 0) { } else { sql = "INSERT INTO hx_UsrBindCardC (UsrCustId,OpenAcctId,OpenBankId,defCard) VALUES ('" + m.UsrCustId + "','" + m.CardId + "','" + m.GateBankId + "',1)"; DbHelper.Query(sql); sql = "update hx_member_table set isbankcard=1 where registerid=" + userid.ToString(); DbHelper.Query(sql); } } } } str1 = "RECV_ORD_ID_" + m.TrxId; } } } return(Content(str1)); }
/// <summary> /// 汇付回调逻辑 /// </summary> /// <param name="m"></param> public static void RePostCashHelper(ReCashAudit m) { string str = ""; StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.OrdId); chkVal.Append(m.UsrCustId); chkVal.Append(m.TransAmt); chkVal.Append(m.OpenAcctId); chkVal.Append(m.OpenBankId); chkVal.Append(m.AuditFlag); chkVal.Append(m.RetUrl); chkVal.Append(m.BgRetUrl); chkVal.Append(m.MerPriv); string msg = chkVal.ToString(); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); //需要指定提交字符串的长度 int len = Encoding.UTF8.GetBytes(msg).Length; StringBuilder sbChkValue = new StringBuilder(256); int ret = DllInterop.VeriSignMsg(merKeyFile, msg, msg.Length, m.ChkValue); LogInfo.WriteLog("前台取现复核验签返回参数:" + ret.ToString()); #region 核验签成功 if (ret == 0) { //在406取现失败后,再次复核申请时会变成415 if (m.RespCode == "000" || m.RespCode == "999" || m.RespCode == "406") { string cachename = m.OrdId + "Cash" + m.UsrCustId + m.TransAmt.ToString(); if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); //提现成功后,得多事务处理账户金额,流水等 B_usercenter BUC = new B_usercenter(); M_Capital_account_water aw = new M_Capital_account_water(); if (BUC.Su_CashProcessing(m, aw) > 0) { str = "RECV_ORD_ID_" + m.OrdId; LogInfo.WriteLog("后台取款审核成功" + str); } else { LogInfo.WriteLog("后台取款审核事误操作失败"); } } } else { LogInfo.WriteLog("后台提现失败"); } } else { LogInfo.WriteLog("后台验签失败"); } #endregion }