Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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));
            }
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
            }
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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(""));
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
        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"));
        }
Exemplo n.º 9
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(M_Capital_account_water model)
 {
     return(dal.Update(model));
 }
Exemplo n.º 10
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public int  Add(M_Capital_account_water model)
 {
     return(dal.Add(model));
 }
Exemplo n.º 11
0
        /// <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));
        }
Exemplo n.º 12
0
        /// <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
        }