Exemplo n.º 1
0
        public ActionResult PostGENERALAmt()
        {
            //显示于页面给汇付
            string str = string.Empty;
            //日志变量
            string log = string.Empty;
            //响应通知加签的状态码
            int ret = -1;
            //业务的sql语句变量
            string sql = string.Empty;
            ReCash m   = ChinapnrFacade.CashCallBack(out ret);

            if (m != null)
            {
                //提现成功后,得多事务处理账户金额,流水及冻结金额等
                if (m.RespCode == "000")
                {
                    string cachename = m.OrdId + "Cash" + m.UsrCustId;
                    if (Utils.GeTThirdCache(cachename) == 0)
                    {
                        Utils.SetThirdCache(cachename);
                        B_usercenter BUC    = new B_usercenter();
                        M_ReqExt     mre    = JsonConvert.DeserializeObject <M_ReqExt>(m.RespExt.Replace("[", "").Replace("]", ""));
                        int          CashOp = BUC.CashTran(m.OpenAcctId, m.OpenBankId, m.OrdId, m.RealTransAmt, m.UsrCustId, m.FeeAmt, mre.FeeObjFlag, mre.CashChl);
                        if (CashOp > 0)
                        {
                            sql = "select registerid,username,mobile,UsrCustId,available_balance from hx_member_table where UsrCustId='" + m.UsrCustId + "'";
                            LogInfo.WriteLog("审请取现成功短信sql:" + sql);
                            DataTable dt = DbHelperSQL.GET_DataTable_List(sql);
                            if (dt.Rows.Count > 0)
                            {
                                //短信通知
                                //尊敬的#USERANEM#,您已成功提现#MONEY#元,账户余额#MONEY1#.请注意查收!【创利投】
                                string        contxt = Utils.GetMSMEmailContext(12, 1); // 获取注册成功邮件内容
                                StringBuilder sbsms  = new StringBuilder(contxt);
                                sbsms = sbsms.Replace("#USERANEM#", dt.Rows[0]["username"].ToString());
                                sbsms = sbsms.Replace("#MONEY#", m.TransAmt);
                                decimal amt = decimal.Parse(dt.Rows[0]["available_balance"].ToString()) - decimal.Parse(m.TransAmt);
                                sbsms = sbsms.Replace("#MONEY1#", amt.ToString());
                                string          mobile  = dt.Rows[0]["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(dt.Rows[0]["registerid"].ToString());
                                psms.smstype      = smstype;
                                psms.smscontext   = sbsms.ToString();
                                psms.orderid      = SendSMS.Send_SMS(mobile, sbsms.ToString());
                                psms.vcode        = "";
                                osms.Add(psms);
                                DateTime            dti = DateTime.Now;
                                M_td_System_message pm  = new M_td_System_message();
                                pm.MReg     = int.Parse(dt.Rows[0]["registerid"].ToString());
                                pm.Mstate   = 0;
                                pm.MTitle   = "提现";
                                pm.MContext = sbsms.ToString();
                                pm.PubTime  = dti;
                                pm.Mtype    = 3;
                                B_usercenter.AddMessage(pm);
                            }
                            string cashChl = Enum.GetName(typeof(EnumCommon.E_hx_td_UserCash.EnumCashChl), (int)EnumCommon.E_hx_td_UserCash.EnumCashChl.IMMEDIATE);

                            if (mre.CashChl == cashChl && decimal.Parse(m.TransAmt) <= 200000M)
                            {
                                string retUrl   = Utils.GetRe_url("admin/UserCash/RePostCashProcessing");
                                string bgRetUrl = Utils.GetRe_url("admin/Thirdparty/BgCashProcessing");
                                BusinessLogicHelper.AutoCheckCash(m.UsrCustId, retUrl, bgRetUrl);
                            }
                        }
                    }
                }
            }
            return(View(m));
        }
Exemplo n.º 2
0
        public ActionResult CashIMMEDIATE()
        {
            int     userid        = Utils.checkloginsession();
            string  url           = Utils.GetChinapnrUrl();
            decimal Amt           = decimal.Parse(DNTRequest.GetString("TransAmt"));
            int     UsrBindCardID = DNTRequest.GetInt("UsrBindCardID", 0);
            //string vcode = DNTRequest.GetString("vcode");
            string strIdentify = "CashValidateCode"; //随机字串存储键值,以便存储到Session中

            LogInfo.WriteLog("即时取现:userid=" + userid + ";url=" + url + ";Amt=" + Amt + ";UsrBindCardID=" + UsrBindCardID + ";strIdentify=" + strIdentify);

            decimal ServFee = 0.00M;
            //if (Session[strIdentify] != null)
            //{
            //    if (Session[strIdentify].ToString() != vcode)
            //    {
            //        return Content(StringAlert.Alert("验证码不对!"), "text/html");
            //    }
            //}
            //else
            //{
            //    return Content(StringAlert.Alert("验证码已过期!"), "text/html");
            //}
            decimal servf = ServFee;

            ViewBag.errCode = "0";
            B_member_table b = new B_member_table();
            M_member_table p = new M_member_table();

            p = b.GetModel(userid);
            if (p.available_balance < Amt)
            {
                ViewBag.errCode = "-1";
                return(View(new M_Cash()));
            }
            if (Amt <= ServFee)
            {
                return(Content(StringAlert.Alert("取现金额小于或等于手续费,不能提现!"), "text/html"));
            }
            else if (p.available_balance < Amt + ServFee)
            {
                Amt = Amt - ServFee;
            }
            hx_UsrBindCardC ubc = ef.hx_UsrBindCardC.Where(g => g.UsrBindCardID == UsrBindCardID).FirstOrDefault();

            if (ubc == null)
            {
                ViewBag.errCode = "-2";
                return(View(new M_Cash()));
            }
            ViewBag.url = url;
            string FeeObjFlag = "M";//"U";

            string cashChl = Enum.GetName(typeof(EnumCommon.E_hx_td_UserCash.EnumCashChl), (int)EnumCommon.E_hx_td_UserCash.EnumCashChl.IMMEDIATE);
            M_Cash mc      = ChinapnrFacade.Cash(p.UsrCustId, Amt.ToString("0.00"), ubc.OpenAcctId, cashChl, ServFee.ToString("0.00"), FeeObjFlag);

            if (mc != null)
            {
                M_td_UserCash mu = new M_td_UserCash();
                B_td_UserCash mo = new B_td_UserCash();
                mu.registerid = p.registerid;
                mu.UsrCustId  = p.UsrCustId;
                mu.TransAmt   = decimal.Parse(mc.TransAmt);
                mu.FeeAmt     = ChinapnrFacade.CalcCashFee(Amt.ToString("0.00"), cashChl, FeeObjFlag) + servf;
                mu.OrdId      = mc.OrdId;
                mu.OrdIdTime  = DateTime.Now;
                mu.OrdIdState = 0;
                mu.FeeObjFlag = FeeObjFlag;
                mu.CashChl    = cashChl;
                mo.Add(mu);
            }
            return(View("CashQm", mc));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 提现提交处理方法---快速提现
        /// </summary>
        /// <returns></returns>
        public ActionResult CashGENERAL()
        {
            int     userid        = CurrentUserId;
            string  url           = Utils.GetChinapnrUrl();
            decimal Amt           = decimal.Parse(DNTRequest.GetString("amt"));
            int     UsrBindCardID = DNTRequest.GetInt("UsrBindCardID", 0);
            int     UsrCashType   = DNTRequest.GetInt("UsrCashType", 1);

            /*
             * string vcode = DNTRequest.GetString("vcode");
             * string strIdentify = "CashValidateCode"; //随机字串存储键值,以便存储到Session中
             * if (Session[strIdentify] != null)
             * {
             *  if (Session[strIdentify].ToString() != vcode)
             *  {
             *      return Content(StringAlert.Alert("验证码不对!"), "text/html");
             *  }
             * }
             * else
             * {
             *  return Content(StringAlert.Alert("验证码已过期!"), "text/html");
             * }*/
            ViewBag.errCode = "0";
            B_member_table b = new B_member_table();
            M_member_table p = new M_member_table();

            p = b.GetModel(userid);
            if (p.available_balance < Amt)
            {
                ViewBag.errCode = "-1";
                return(View(new M_Cash()));
            }
            hx_UsrBindCardC ubc = ef.hx_UsrBindCardC.Where(g => g.UsrBindCardID == UsrBindCardID).FirstOrDefault();

            if (ubc == null)
            {
                ViewBag.errCode = "-2";
                return(View(new M_Cash()));
            }
            ViewBag.url = url;
            decimal servf   = 0.00M;
            string  cashChl = Enum.GetName(typeof(EnumCommon.E_hx_td_UserCash.EnumCashChl), (int)EnumCommon.E_hx_td_UserCash.EnumCashChl.GENERAL);
            //string cashType = "FAST";
            string FeeObjFlag = "M";

            if (UsrCashType == 2)
            {
                cashChl = Enum.GetName(typeof(EnumCommon.E_hx_td_UserCash.EnumCashChl), (int)EnumCommon.E_hx_td_UserCash.EnumCashChl.IMMEDIATE);
                //FeeObjFlag = "U";
            }
            //bug 修复,应该为快速提现。此前为普通提现 by fangjianmin
            M_Cash mc = ChinapnrFacade.Cash(p.UsrCustId, Amt.ToString("0.00"), ubc.OpenAcctId, cashChl, servf.ToString("0.00"), FeeObjFlag);

            if (mc != null)
            {
                M_td_UserCash mu = new M_td_UserCash();
                B_td_UserCash mo = new B_td_UserCash();
                mu.registerid = p.registerid;
                mu.UsrCustId  = p.UsrCustId;
                mu.TransAmt   = decimal.Parse(mc.TransAmt);
                mu.FeeAmt     = servf;
                mu.OrdId      = mc.OrdId;
                mu.OrdIdTime  = DateTime.Now;
                mu.OrdIdState = 0;
                mu.FeeObjFlag = FeeObjFlag;
                mu.CashChl    = cashChl;
                mo.Add(mu);
            }
            return(View(mc));
        }