Ejemplo n.º 1
0
        /// <summary>
        /// 绑卡回调
        /// </summary>
        /// <param name="ret">out 返回状态值</param>
        /// <param name="isFront">是否是前台form形式调用</param>
        /// <returns></returns>
        public static ReUserBindCard UserBindCardCallBack(out int ret, bool isFront = true)
        {
            ReUserBindCard m = new ReUserBindCard();

            m.CmdId      = DNTRequest.GetString("CmdId");
            m.RespCode   = DNTRequest.GetString("RespCode");
            m.RespDesc   = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc"));
            m.MerCustId  = DNTRequest.GetString("MerCustId");
            m.OpenAcctId = DNTRequest.GetString("OpenAcctId");
            m.OpenBankId = DNTRequest.GetString("OpenBankId");
            m.UsrCustId  = DNTRequest.GetString("UsrCustId");
            m.TrxId      = DNTRequest.GetString("TrxId");
            m.BgRetUrl   = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl"));
            m.MerPriv    = HttpUtility.UrlDecode(DNTRequest.GetString("MerPriv"));
            m.ChkValue   = DNTRequest.GetString("ChkValue");
            string chkv = CFormHelper.GetChkValue <ReUserBindCard>(m);

            LogInfo.WriteLog(chkv);
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();

            ret = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue);
            LogInfo.WriteLog("绑卡" + (isFront ? "前台" : "后台" + "返回报文:") + FastJSON.toJOSN(m));
            LogInfo.WriteLog("绑卡---1台验签:" + ret.ToString());
            if (ret == 0)
            {
                return(m);
            }
            return(null);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 平台向用户转账 回调
        /// </summary>
        /// <param name="ret">out 返回状态值</param>
        /// <param name="isFront">是否是前台form形式调用</param>
        /// <returns></returns>
        public static ReTransfer TransferCallBack(out int ret, bool isFront = true)
        {
            ReTransfer m = new ReTransfer();

            m.CmdId     = DNTRequest.GetString("CmdId");
            m.RespCode  = DNTRequest.GetString("RespCode");
            m.RespDesc  = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc"));
            m.OrdId     = DNTRequest.GetString("OrdId");
            m.OutCustId = DNTRequest.GetString("OutCustId");
            m.OutAcctId = DNTRequest.GetString("OutAcctId");
            m.TransAmt  = DNTRequest.GetString("TransAmt");
            m.InCustId  = DNTRequest.GetString("InCustId");
            m.InAcctId  = DNTRequest.GetString("InAcctId");
            m.RetUrl    = HttpUtility.UrlDecode(DNTRequest.GetString("RetUrl"));
            m.BgRetUrl  = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl"));

            m.MerPriv  = DNTRequest.GetString("MerPriv");
            m.ChkValue = DNTRequest.GetString("ChkValue");

            string chkv = CFormHelper.GetChkValue <ReTransfer>(m);

            LogInfo.WriteLog(chkv);

            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();

            ret = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue);
            LogInfo.WriteLog("平台向用户转账" + (isFront ? "前台" : "后台" + "返回报文:") + FastJSON.toJOSN(m));
            LogInfo.WriteLog("平台向用户活动转账后---1台验签:" + ret.ToString());
            if (ret == 0)
            {
                return(m);
            }
            return(null);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 用户资金解冻
        /// </summary>
        /// <param name="ordDate">冻结单</param>
        /// <param name="freezeTrxId">冻结号</param>
        /// <returns></returns>
        public static M_UsrUnFreeze UsrUnFreeze(string ordDate, string freezeTrxId)
        {
            M_UsrUnFreeze m = new M_UsrUnFreeze();

            m.Version   = "10";
            m.CmdId     = "UsrUnFreeze";
            m.MerCustId = Utils.GetMerCustID();
            m.OrdId     = Utils.Createcode();
            m.OrdDate   = ordDate;
            m.TrxId     = freezeTrxId;
            m.RetUrl    = "";
            m.BgRetUrl  = Utils.GetRe_url("Thirdparty/BG_UsrUnFreeze");
            m.MerPriv   = Utils.Base64Encoder("chuanglitou");
            string chkv = CFormHelper.GetChkValue <M_UsrUnFreeze>(m);

            LogInfo.WriteLog("解冻加签chkv字符:" + chkv);
            string        merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr();
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            int           ret        = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue);

            m.ChkValue = sbChkValue.ToString();
            LogInfo.WriteLog("解冻提交信息:" + FastJSON.toJOSN(m));
            LogInfo.WriteLog("解冻ChkValue:" + m.ChkValue);
            if (ret == 0)
            {
                return(m);
            }
            return(null);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 构造用户开户对象及签名
        /// </summary>
        /// <param name="mobile">用户手机号</param>
        /// <param name="userName">用户名(当前同为手机号)</param>
        /// <returns></returns>
        public static M_UserRegister UserRegister(string mobile, string userName)
        {
            M_UserRegister m = new M_UserRegister();

            m.MerId     = Utils.GetMerId();
            m.Version   = "10";
            m.CmdId     = "UserRegister";
            m.MerCustId = Utils.GetMerCustID();
            m.BgRetUrl  = Utils.GetRe_url("Thirdparty/Bg_Succ_Registered");
            m.RetUrl    = Utils.GetRe_url("Register/Succ_Registered");
            m.UsrMp     = mobile;
            m.UsrId     = userName;

            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.Version);
            chkVal.Append(m.CmdId);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.UsrId);
            chkVal.Append(m.UsrMp);
            string chkv = chkVal.ToString();
            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr();
            //需要指定提交字符串的长度
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            //加签
            int str = DllInterop.SignMsg(m.MerId, merKeyFile, chkv, len, sbChkValue);

            m.ChkValue = sbChkValue.ToString();
            LogInfo.WriteLog("注册开户请求报文:" + FastJSON.toJOSN(m));
            return(m);
        }
Ejemplo n.º 5
0
        public static ReUsrFreezeBg UsrUnFreezeCallBack(out int ret)
        {
            ReUsrFreezeBg m = new ReUsrFreezeBg();

            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.OrdDate   = DNTRequest.GetString("OrdDate");
            m.TrxId     = DNTRequest.GetString("TrxId");
            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");
            //m.UsrCustId = DNTRequest.GetString("UsrCustId");

            string chkv = CFormHelper.GetChkValue <ReUsrFreezeBg>(m);

            LogInfo.WriteLog("解冻加签chkv字符:" + chkv);
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();

            ret = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue);
            LogInfo.WriteLog("后台解冻加签信息---1台验签:" + FastJSON.toJOSN(m));
            LogInfo.WriteLog("解冻加签chkv字符---1台验签:" + ret.ToString());

            if (ret == 0)
            {
                return(m);
            }
            return(null);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 绑卡
        /// </summary>
        /// <param name="usrCustId">用户客户号</param>
        /// <returns></returns>
        public static M_UserBindCard UserBindCard(string usrCustId)
        {
            M_UserBindCard m = new M_UserBindCard();

            m.Version   = "10";
            m.CmdId     = "UserBindCard";
            m.MerCustId = Utils.GetMerCustID();
            m.BgRetUrl  = Utils.GetRe_url("Thirdparty/Bgthirdpartybindbank");
            m.MerPriv   = Utils.Base64Encoder("chuanglitou");
            m.UsrCustId = usrCustId;

            string chkv = CFormHelper.GetChkValue <M_UserBindCard>(m);

            LogInfo.WriteLog(chkv);

            string        merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr();
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            int           ret        = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue);

            m.ChkValue = sbChkValue.ToString();
            LogInfo.WriteLog("加签字符:" + ret.ToString() + "绑卡chkv字符:" + chkv);
            LogInfo.WriteLog("绑卡提交表单报文:" + FastJSON.toJOSN(m));
            if (ret == 0)
            {
                return(m);
            }
            return(null);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 卡信息查询
        /// </summary>
        /// <param name="usrCustId">用户客户号</param>
        /// <returns></returns>
        public static M_QueryCardInfo QueryCardInfo(string usrCustId)
        {
            if (string.IsNullOrWhiteSpace(usrCustId))
            {
                return(null);
            }
            M_QueryCardInfo m = new M_QueryCardInfo();

            m.Version   = "10";
            m.CmdId     = "QueryCardInfo";
            m.MerCustId = Utils.GetMerCustID();
            m.UsrCustId = usrCustId;
            string chkv = CFormHelper.GetChkValue <M_QueryCardInfo>(m);

            LogInfo.WriteLog(chkv);
            string        merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr();
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            int           ret        = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue);

            m.ChkValue = sbChkValue.ToString();
            if (ret == 0)
            {
                return(m);
            }
            return(null);
        }
Ejemplo n.º 8
0
        public ActionResult BgCorpRegister()
        {
            string str = "";

            ReCorpRegister m = new ReCorpRegister();

            m.CmdId      = DNTRequest.GetString("CmdId");
            m.RespCode   = DNTRequest.GetString("RespCode");
            m.RespDesc   = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc"));
            m.MerCustId  = DNTRequest.GetString("MerCustId");
            m.UsrId      = DNTRequest.GetString("UsrId");
            m.UsrCustId  = DNTRequest.GetString("UsrCustId");
            m.AuditStat  = DNTRequest.GetString("AuditStat");
            m.AuditDesc  = DNTRequest.GetString("AuditDesc");
            m.MerPriv    = DNTRequest.GetString("MerPriv");
            m.TrxId      = DNTRequest.GetString("TrxId");
            m.OpenBankId = DNTRequest.GetString("OpenBankId");
            m.CardId     = DNTRequest.GetString("CardId");
            m.BgRetUrl   = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl"));
            m.ChkValue   = DNTRequest.GetString("ChkValue");
            m.RespExt    = DNTRequest.GetString("RespExt");
            LogInfo.WriteLog("开户的返回参数:" + FastJSON.toJOSN(m));
            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.CmdId);
            chkVal.Append(m.RespCode);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.UsrId);
            //chkVal.Append(m.UsrName);
            chkVal.Append(m.UsrCustId);
            chkVal.Append(m.AuditStat);
            chkVal.Append(m.TrxId);
            chkVal.Append(m.OpenBankId);
            chkVal.Append(m.CardId);
            chkVal.Append(m.BgRetUrl);
            // chkVal.Append(m.RespExt);
            string chkv = chkVal.ToString();
            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();
            int    ret        = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue);

            //LogInfo.WriteLog("企业开户验签:" + ret.ToString());
            //if (ret == 0)
            // {
            if (m.RespCode == "000")
            {
                if (m.AuditStat == "Y")
                {
                    string sql = "update  hx_bonding_company  set UsrCustId='" + m.UsrCustId + "',AuditStat='" + m.AuditStat + "',TrxId='" + m.TrxId + "',OpenBandkId='" + m.OpenBankId + "',CardId='" + m.CardId + "' where  companyid=" + m.MerPriv;
                    LogInfo.WriteLog("企业开户sql:" + sql);
                    DbHelperSQL.RunSql(sql);
                    str = "RECV_ORD_ID_" + m.TrxId;
                }
            }

            //}
            return(Content(str));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 处理用户充值回调,实体封装及验签。验签失败返回null
        /// </summary>
        /// <param name="isFront">是否是前台form形式调用</param>
        /// <returns>用户充值回调实体对象,验签失败返回null</returns>
        public static ReQPNetSave NetSaveCallBack(out int ret, bool isFront = true)
        {
            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 + Utils.GetPgPubk();
            //需要指定提交字符串的长度
            int           len        = Encoding.UTF8.GetBytes(msg).Length;
            StringBuilder sbChkValue = new StringBuilder(256);

            ret = DllInterop.VeriSignMsg(merKeyFile, msg, msg.Length, m.ChkValue);
            // Response.Write("验签:" + ret.ToString());
            LogInfo.WriteLog((m.GateBusiId == "QP" ? "快捷" : "网银") + "充值接口验签:ret=" + ret.ToString() + " RespCode:" + m.RespCode + m.RespDesc);
            LogInfo.WriteLog((m.GateBusiId == "QP" ? "快捷" : "网银") + "充值接口" + (isFront ? "前台" : "后台") + "充值返回报文:" + FastJSON.toJOSN(m));
            if (ret == 0)
            {
                return(m);
            }
            return(null);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 汇付用户资金解冻回调
        /// </summary>
        /// <returns></returns>
        public ActionResult BG_UsrUnFreeze()
        {
            string        srt = "";
            ReUsrFreezeBg m   = new ReUsrFreezeBg();

            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.OrdDate   = DNTRequest.GetString("OrdDate");
            m.TrxId     = DNTRequest.GetString("TrxId");
            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");
            //m.UsrCustId = DNTRequest.GetString("UsrCustId");

            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.TrxId);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.MerPriv);

            string chkv = chkVal.ToString();

            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();

            int    ret = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue);
            string log = "";

            log += "签名返回结果:" + ret.ToString();
            log += "<br>解冻回调报文:" + FastJSON.toJOSN(m);
            if (ret == 0)
            {
                if (m.RespCode == "000")
                {
                    //ToDO
                    LogInfo.WriteLog("进入处理:资金解冻未实现" + m.UsrCustId);
                    srt = "RECV_ORD_ID";
                }
            }
            else
            {
                log += "<br>签名失败";
            }
            LogInfo.WriteLog(log);
            return(Content(srt));
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 用户注册,第三方开户
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        // GET: opening_account
        public ActionResult Index(int id)
        {
            B_member_table b   = new B_member_table();
            M_member_table p   = new M_member_table();
            int            uid = Utils.checkloginsession();

            p = b.GetModel(uid);
            string UsrId1 = p.username;
            string url    = Utils.GetChinapnrUrl();

            M_UserRegister m = new M_UserRegister();

            m.MerId     = Utils.GetMerId();
            m.Version   = "10";
            m.CmdId     = "UserRegister";
            m.MerCustId = Utils.GetMerCustID();
            m.BgRetUrl  = Utils.GetRe_url("Thirdparty/Bg_Succ_Registered");
            // m.BgRetUrl = Utils.GetRe_url("22Thirdparty/Bg_Succ_Registered");
            // m.RetUrl = "http://localhost:17745/Register/Succ_Registered";
            m.RetUrl = Utils.GetRe_url("Register/Succ_Registered");
            m.UsrMp  = p.mobile;
            // m.UsrEmail = p.email;
            m.UsrId = UsrId1;
            LogInfo.WriteLog("注册开户请求报文:" + FastJSON.toJOSN(m));
            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.Version);
            chkVal.Append(m.CmdId);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.UsrId);
            chkVal.Append(m.UsrMp);

            string chkv = chkVal.ToString();
            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr();
            //需要指定提交字符串的长度
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            //加签
            int str = DllInterop.SignMsg(m.MerId, merKeyFile, chkv, len, sbChkValue);

            m.ChkValue = sbChkValue.ToString();



            ViewBag.url = url;
            ViewBag.uid = uid;
            return(View(m));
        }
Ejemplo n.º 12
0
        public ResultInfo <UserEntity> GetChkValue(UserEntity m)
        {
#pragma warning disable 1587
            ///签名规则
            /// Version
            /// CmdId
            /// MerCustId
            /// BgRetUrl
            /// RetUrl
            /// UsrId
            /// UsrName
            /// IdType
            /// IdNo
            /// UsrMp
            /// UsrEmail
            /// MerPriv
#pragma warning restore 1587
            m.MerId = Settings.Instance.MerId;
            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.Version);
            chkVal.Append(m.CmdId);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.UsrId);
            chkVal.Append(System.Web.HttpUtility.UrlEncode(m.UsrName, System.Text.Encoding.UTF8));
            chkVal.Append(m.IdType);
            chkVal.Append(m.IdNo);
            chkVal.Append(m.UsrMp);
            chkVal.Append(m.UsrEmail);



            string chkv = chkVal.ToString();

            //私钥文件
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Settings.Instance.MerPr;
            //需要指定提交字符串的长度
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            //加签
            DllInterop.SignMsg(m.MerId, merKeyFile, chkv, len, sbChkValue);
            m.ChkValue = sbChkValue.ToString();
            ResultInfo <UserEntity> r = new ResultInfo <UserEntity>("1");
            m.UsrName = HttpUtility.UrlEncode(m.UsrName);
            r.body    = m;

            return(r);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 绑定银行卡
        /// </summary>
        /// <returns></returns>

        public ActionResult Bind()
        {
            int    userid = CurrentUserId;
            string url    = Utils.GetChinapnrUrl();

            B_member_table b = new B_member_table();
            M_member_table p = new M_member_table();

            p = b.GetModel(userid);
            string Version   = "10";
            string CmdId     = "UserBindCard";
            string MerCustId = Utils.GetMerCustID();
            string UsrCustId = p.UsrCustId;
            string BgRetUrl  = Utils.GetRe_url("Thirdparty/Bgthirdpartybindbank");
            string MerPriv   = Utils.Base64Encoder("chuanglitou");

            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(Version);
            chkVal.Append(CmdId);
            chkVal.Append(MerCustId);
            chkVal.Append(UsrCustId);
            chkVal.Append(BgRetUrl);
            chkVal.Append(MerPriv);

            string chkv = chkVal.ToString();

            LogInfo.WriteLog(chkv);

            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr();
            //需要指定提交字符串的长度
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            //加签
            int str = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue);

            string ChkValue = sbChkValue.ToString();

            ViewBag.url       = url;
            ViewBag.Version   = Version;
            ViewBag.CmdId     = CmdId;
            ViewBag.MerCustId = MerCustId;
            ViewBag.UsrCustId = UsrCustId;
            ViewBag.BgRetUrl  = BgRetUrl;
            ViewBag.MerPriv   = MerPriv;
            ViewBag.ChkValue  = ChkValue;

            return(View());
        }
Ejemplo n.º 14
0
        public ActionResult Index(RequestParam <RequestMemberDetail> reqst)
        {
            B_member_table b = new B_member_table();
            M_member_table p = new M_member_table();

            p = b.GetModel(reqst.body.userId);
            string Version   = "10";
            string CmdId     = "UserBindCard";
            string MerCustId = Settings.Instance.MerCustId;
            string UsrCustId = p.UsrCustId;
            string BgRetUrl  = Settings.Instance.GetCallbackUrl("/MemberCenter/BindCard/BindCardCallback");
            string MerPriv   = Settings.Instance.Base64Encoder("chuanglitou");

            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(Version);
            chkVal.Append(CmdId);
            chkVal.Append(MerCustId);
            chkVal.Append(UsrCustId);
            chkVal.Append(BgRetUrl);
            chkVal.Append(MerPriv);

            string chkv = chkVal.ToString();

            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Settings.Instance.MerPr;
            //需要指定提交字符串的长度
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            //加签
            int str = DllInterop.SignMsg(Settings.Instance.MerId, merKeyFile, chkv, len, sbChkValue);

            string ChkValue = sbChkValue.ToString();

            UserEntity br = new UserEntity();

            br.Version   = Version;
            br.CmdId     = CmdId;
            br.MerCustId = MerCustId;
            br.UsrCustId = UsrCustId;
            br.BgRetUrl  = BgRetUrl;
            br.MerPriv   = MerPriv;
            br.ChkValue  = ChkValue;

            return(View(br));
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 处理用户注册回调,实体封装及验签。验签失败返回null
        /// </summary>
        /// <param name="isFront">是否是前台form形式调用</param>
        /// <returns>用户注册回调实体对象,验签失败返回null</returns>
        public static ReUserRegister UserRegisterCallBack(bool isFront = true)
        {
            ReUserRegister m = new ReUserRegister();

            m.CmdId     = DNTRequest.GetString("CmdId");
            m.RespCode  = DNTRequest.GetString("RespCode");
            m.RespDesc  = DNTRequest.GetString("RespDesc");
            m.MerCustId = DNTRequest.GetString("MerCustId");
            m.UsrId     = DNTRequest.GetString("UsrId");
            m.UsrCustId = DNTRequest.GetString("UsrCustId");
            m.BgRetUrl  = DNTRequest.GetString("BgRetUrl");
            m.TrxId     = DNTRequest.GetString("TrxId");
            m.RetUrl    = DNTRequest.GetString("RetUrl");
            m.MerPriv   = DNTRequest.GetString("MerPriv");
            m.IdType    = DNTRequest.GetString("IdType");
            m.IdNo      = DNTRequest.GetString("IdNo");
            m.UsrMp     = DNTRequest.GetString("UsrMp");
            m.UsrEmail  = DNTRequest.GetString("UsrEmail");
            m.UsrName   = HttpUtility.UrlDecode(DNTRequest.GetString("UsrName"));
            m.ChkValue  = DNTRequest.GetString("ChkValue");
            LogInfo.WriteLog("注册开户" + (isFront ? "前台" : "后台" + "返回报文:") + FastJSON.toJOSN(m));
            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.CmdId);
            chkVal.Append(m.RespCode);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.UsrId);
            chkVal.Append(m.UsrCustId);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.TrxId);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.MerPriv);
            string chkv = chkVal.ToString();
            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();
            int    ret        = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue);

            LogInfo.WriteLog(";验签ret:" + ret.ToString());
            if (ret == 0)
            {
                return(m);
            }
            return(null);
        }
Ejemplo n.º 16
0
        public ActionResult BgRetUrlForUserRegister(UserEntity m)
        {
            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.CmdId);
            chkVal.Append(m.RespCode);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.UsrId);
            chkVal.Append(m.UsrCustId);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.TrxId);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.MerPriv);



            string chkv = chkVal.ToString();

            LoggerHelper.Info(chkv);

            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Settings.Instance.PgPubk;

            int ret = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue);

            if (ret == 0)
            {
                string srt = "RECV_ORD_ID_" + m.TrxId;
                return(View(srt));
            }

            LoggerHelper.Info(ret);


            return(View("-1"));
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 平台向用户转账
        /// </summary>
        /// <returns></returns>
        public ActionResult BgToUserTransfer()
        {
            ReTransfer p = new ReTransfer();

            p.CmdId     = DNTRequest.GetString("CmdId");
            p.RespCode  = DNTRequest.GetString("RespCode");
            p.RespDesc  = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc"));
            p.OrdId     = DNTRequest.GetString("OrdId");
            p.OutCustId = DNTRequest.GetString("OutCustId");
            p.OutAcctId = DNTRequest.GetString("OutAcctId");
            p.TransAmt  = DNTRequest.GetString("TransAmt");
            p.InCustId  = DNTRequest.GetString("InCustId");
            p.InAcctId  = DNTRequest.GetString("InAcctId");

            p.RetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("RetUrl"));

            p.BgRetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl"));
            p.MerPriv  = DNTRequest.GetString("MerPriv");

            p.ChkValue = DNTRequest.GetString("ChkValue");



            StringBuilder builder = new StringBuilder();

            builder.Append(p.CmdId);
            builder.Append(p.RespCode);
            builder.Append(p.OrdId);
            builder.Append(p.OutCustId);
            builder.Append(p.OutAcctId);
            builder.Append(p.TransAmt);
            builder.Append(p.InCustId);
            builder.Append(p.InAcctId);
            builder.Append(HttpUtility.UrlDecode(p.RetUrl));
            builder.Append(HttpUtility.UrlDecode(p.BgRetUrl));
            builder.Append(p.MerPriv);



            string chkv = builder.ToString();

            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();

            int ret = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, p.ChkValue);

            LogInfo.WriteLog("平台向用户活动转账后---1台验签:" + ret.ToString());

            LogInfo.WriteLog("平台向用户活动转账后---1台主动投标返回报文:" + FastJSON.toJOSN(p));

            string sql = "";
            string srt = "";

            if (ret == 0)
            {
                if (p.RespCode == "000")
                {
                    /*
                     * sql = "update hx_CashAwards  set  OrdIdstate=3  where OrdIdstate=1 and OrdId=" + p.OrdId + " and  proid =" + p.MerPriv;
                     * DbHelperSQL.RunSql(sql);*/

                    sql = "update hx_member_table  set account_total_assets=account_total_assets+" + p.TransAmt + " ,available_balance=available_balance+" + p.TransAmt + " where UsrCustId='" + p.InCustId + "'";
                    DbHelperSQL.RunSql(sql);


                    srt = "RECV_ORD_ID_" + p.OrdId;


                    LogInfo.WriteLog("平台向用户活动转账后成功:" + srt + "   " + sql);
                }
                else
                {
                }
            }



            return(Content(srt));
        }
Ejemplo n.º 18
0
        public ActionResult BgReviw_case()
        {
            string       str = "";
            R_AddBidInfo m   = new R_AddBidInfo();

            m.CmdId      = DNTRequest.GetString("CmdId");
            m.RespCode   = DNTRequest.GetString("RespCode");
            m.RespDesc   = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc"));
            m.MerCustId  = DNTRequest.GetString("MerCustId");
            m.ProId      = DNTRequest.GetString("ProId");
            m.BorrCustId = DNTRequest.GetString("BorrCustId");
            m.BorrTotAmt = DNTRequest.GetString("BorrTotAmt");
            m.GuarCompId = DNTRequest.GetString("GuarCompId");
            m.GuarAmt    = DNTRequest.GetString("GuarAmt");
            m.ProArea    = DNTRequest.GetString("ProArea");
            m.BgRetUrl   = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl"));
            m.MerPriv    = DNTRequest.GetString("MerPriv");
            m.RespExt    = DNTRequest.GetString("RespExt");
            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.ProId);
            chkVal.Append(m.BorrCustId);
            chkVal.Append(m.BorrTotAmt);

            if (m.MerPriv == "1")
            {
                chkVal.Append(m.GuarCompId);
                chkVal.Append(m.GuarAmt);
            }

            chkVal.Append(m.ProArea);
            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")
                {
                    // Response.Write("RECV_ORD_ID_");

                    str = "RECV_ORD_ID_" + m.ProId;
                }
                else
                {
                    string sql = "update  hx_borrowing_target set  tender_state=1 where targetid=" + m.ProId;
                    DbHelperSQL.RunSql(sql);
                }
            }
            else
            {
                string sql = "update  hx_borrowing_target set  tender_state=1 where targetid=" + m.ProId;
                DbHelperSQL.RunSql(sql);
            }
            return(Content(str));
        }
Ejemplo n.º 19
0
        /// <summary>
        /// 充值,2
        /// </summary>
        /// <returns></returns>
        public ActionResult Recharge_Money()
        {
            // float money = DNTRequest.GetFormFloat("money", 0);


            M_Recharge_history rh = new M_Recharge_history();
            B_Recharge_history b  = new B_Recharge_history();


            B_UsrBindCard bu = new B_UsrBindCard();
            M_UsrBindCard bm = new M_UsrBindCard();

            decimal amt = DNTRequest.GetDecimal("money", 10000.00M);


            if (amt <= 0)
            {
                return(Content(StringAlert.Alert("充值金额必须大于零!"), "text/html"));
            }

            rh.membertable_registerid = 0;
            rh.recharge_amount        = amt;
            rh.recharge_time          = DateTime.Now;
            rh.account_amount         = amt;
            rh.order_No           = Utils.Createcode();;
            rh.recharge_condition = 0;  //1表示充值成功
            rh.recharge_bank      = ""; // 得接口返回;


            string CmdId      = "NetSave";
            string MerCustId  = Utils.GetMerCustID();
            string GateBusiId = "B2C";
            string UsrCustId  = Utils.GetMerCustID(); //给商户充值
            string MerPriv    = Utils.Base64Encoder("chuanglitou");
            //string MerPriv = "chuanglitou";
            string    ChkValue = "";
            int       Recid    = b.Add(rh);
            M_NetSave mn       = new M_NetSave();

            mn.Version   = "10";
            mn.CmdId     = CmdId;
            mn.MerCustId = MerCustId;
            mn.UsrCustId = UsrCustId;
            mn.OrdId     = rh.order_No;
            mn.OrdDate   = rh.recharge_time.ToString("yyyyMMdd");
            //  mn.GateBusiId = GateBusiId;
            //  mn.OpenBankId = OpenBankId;
            //  mn.DcFlag = DcFlag;
            mn.TransAmt = rh.recharge_amount.ToString("0.00");
            mn.RetUrl   = Utils.GetRe_url("admin/Recharge/Su_Enterpriserecharge");

            // mn.RetUrl = "http://localhost:17745/admin/Recharge/Su_Enterpriserecharge";
            mn.BgRetUrl = Utils.GetRe_url("admin/Thirdparty/Re_Enterpriserecharge");
            mn.MerPriv  = MerPriv;


            StringBuilder str = new StringBuilder();

            str.Append(" <form id=\"formauto\" name=\"formauto\"  action=\"" + Utils.GetChinapnrUrl() + "\" method=\"post\">");

            str.Append("<input id=\"Version\"  name=\"Version\"  type=\"hidden\"  value=\"" + mn.Version + "\" />");

            str.Append("<input id=\"CmdId\"  name=\"CmdId\"    type=\"hidden\"  value=\"" + mn.CmdId + "\" />");

            str.Append("<input id=\"MerCustId\" name=\"MerCustId\"   type=\"hidden\"  value=\"" + mn.MerCustId + "\" />");

            str.Append("<input id=\"UsrCustId\" name=\"UsrCustId\" type=\"hidden\"  value=\"" + mn.UsrCustId + "\" />");

            str.Append("<input id=\"OrdId\" name=\"OrdId\" type=\"hidden\"  value=\"" + mn.OrdId + "\" />");

            str.Append("<input id=\"OrdDate\" name=\"OrdDate\" type=\"hidden\"  value=\"" + mn.OrdDate + "\" />");

            str.Append("<input id=\"TransAmt\" name=\"TransAmt\" type=\"hidden\"  value=\"" + mn.TransAmt + "\" />");

            str.Append("<input id=\"RetUrl\" name=\"RetUrl\"  type=\"hidden\"  value=\"" + mn.RetUrl + "\" />");

            str.Append("<input id=\"BgRetUrl\" name=\"BgRetUrl\" type=\"hidden\"  value=\"" + mn.BgRetUrl + "\" />");

            str.Append("<input id=\"MerPriv\" name=\"MerPriv\" type=\"hidden\"  value=\"" + mn.MerPriv + "\" />");


            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(mn.Version);
            chkVal.Append(mn.CmdId);
            chkVal.Append(mn.MerCustId);
            chkVal.Append(mn.UsrCustId);
            chkVal.Append(mn.OrdId);
            chkVal.Append(mn.OrdDate);
            chkVal.Append(mn.TransAmt);
            chkVal.Append(mn.RetUrl);
            chkVal.Append(mn.BgRetUrl);
            chkVal.Append(mn.MerPriv);



            string chkv = chkVal.ToString();

            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr();
            //需要指定提交字符串的长度
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            //加签
            int str1 = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue);

            // Response.Write((str1.ToString()));

            // ChkValue = sbChkValue.ToString();

            mn.ChkValue = sbChkValue.ToString();

            //
            str.Append("<input id=\"ChkValue\"  name=\"ChkValue\" type=\"hidden\"  value=\"" + mn.ChkValue + "\" />");

            str.Append(" </form>");

            str.Append("<script type=\"text/javascript\">document.getElementById('formauto').submit();</script>");

            LogInfo.WriteLog("企业充值提交表单:" + str.ToString());

            ViewBag.str = str.ToString();

            return(View());
        }
Ejemplo n.º 20
0
        public ActionResult BgUsrPay()
        {
            string       str = "";
            ReUsrAcctPay m   = new ReUsrAcctPay();


            m.CmdId      = DNTRequest.GetString("CmdId");
            m.RespCode   = DNTRequest.GetString("RespCode");
            m.RespDesc   = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc"));
            m.OrdId      = DNTRequest.GetString("OrdId");
            m.UsrCustId  = DNTRequest.GetString("UsrCustId");
            m.MerCustId  = DNTRequest.GetString("MerCustId");
            m.TransAmt   = DNTRequest.GetString("TransAmt");
            m.InAcctId   = DNTRequest.GetString("InAcctId");
            m.InAcctType = DNTRequest.GetString("InAcctType");
            m.RetUrl     = HttpUtility.UrlDecode(DNTRequest.GetString("RetUrl"));
            m.BgRetUrl   = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl"));
            m.MerPriv    = DNTRequest.GetString("MerPriv");
            m.ChkValue   = DNTRequest.GetString("ChkValue");



            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.CmdId);
            chkVal.Append(m.RespCode);
            chkVal.Append(m.OrdId);
            chkVal.Append(m.UsrCustId);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.TransAmt);
            chkVal.Append(m.InAcctId);
            chkVal.Append(m.InAcctType);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.MerPriv);

            string chkv   = chkVal.ToString();
            string logstr = "RECV_ORD_ID_" + m.OrdId;
            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();

            int ret = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue);

            LogInfo.WriteLog("用户向平台商户号转账返回信息:" + FastJSON.toJOSN(m));


            if (ret == 0)
            {
                if (m.RespCode == "000")
                {
                    string cachename = m.OrdId + "BgUsrPay" + m.UsrCustId;

                    if (Utils.GeTThirdCache(cachename) == 0)
                    {
                        Utils.SetThirdCache(cachename);



                        string sql = "update hx_member_table  set available_balance=available_balance-" + m.TransAmt + " where UsrCustId='" + m.UsrCustId + "'";
                        DbHelperSQL.RunSql(sql);
                        #region 流水信息
                        sql = "SELECT registerid,username,mobile  from hx_member_table where UsrCustId='" + m.UsrCustId + "'";
                        System.Data.DataTable dt = DbHelperSQL.GET_DataTable_List(sql);
                        if (dt.Rows.Count > 0)
                        {
                            B_usercenter ors = new B_usercenter();
                            decimal      di  = ors.GetUsridAvailable_balance(int.Parse(dt.Rows[0]["registerid"].ToString()));
                            // di = di + decimal.Parse(hua.Amt.ToString());
                            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("" + int.Parse(dt.Rows[0]["registerid"].ToString()) + ",0," + decimal.Parse(m.TransAmt) + ",'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'," + (di - decimal.Parse(m.TransAmt)) + "," + (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.用户向平台划账.ToString()) + ",'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',0,'" + "用户向平台划账" + "')");
                            DbHelperSQL.RunSql(strSql.ToString());
                            strSql.Clear();
                        }
                        #endregion
                        //Response.Write(logstr + "转账成功!");


                        LogInfo.WriteLog(logstr + "用户向平台商户号转账成功:" + sql);
                    }
                }
            }
            else
            {
                LogInfo.WriteLog(m.UsrCustId + "用户向平台商户号转账后台失败:");
            }



            return(Content(logstr));
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 自动扣款转账(商户用)接口 商户向用户转帐
        /// </summary>
        /// <param name="UsrCustId">客户号</param>
        /// <param name="TranAMT">转账金额</param>
        /// <param name="ReturnUrl">汇付返回主动通知页面如:admin/Thirdparty/BgToUserTransfer</param>
        /// <returns></returns>
        public ReTransfer ToUserTransfer(string UsrCustId, decimal TranAMT, string OrdId, string UserAct, string ReturnUrl)
        {
            M_Transfer m       = new M_Transfer();
            ReTransfer retloan = new ReTransfer();

            m.Version   = "10";
            m.CmdId     = "Transfer";
            m.OrdId     = OrdId;
            m.OutCustId = Utils.GetMerCustID();
            m.OutAcctId = "MDT000001";
            m.TransAmt  = TranAMT.ToString("0.00");
            m.InCustId  = UsrCustId;
            m.BgRetUrl  = Utils.GetRe_url(ReturnUrl);
            m.MerPriv   = UserAct;
            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.Version);
            chkVal.Append(m.CmdId);
            chkVal.Append(m.OrdId);
            chkVal.Append(m.OutCustId);
            chkVal.Append(m.OutAcctId);
            chkVal.Append(m.TransAmt);
            chkVal.Append(m.InCustId);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.MerPriv);

            string chkv = chkVal.ToString();
            string log  = "商户向用户转账加签chkv字符:" + chkv;

            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr();
            //需要指定提交字符串的长度
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            //加签
            int str = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue);

            log       += "<br>加签字符:" + str.ToString();
            m.ChkValue = sbChkValue.ToString();
            log       += "<br>提交信息:" + FastJSON.toJOSN(m);
            log       += "<br>ChkValue:" + m.ChkValue;
            using (var client = new WebClient())
            {
                var values = new NameValueCollection();
                values.Add("Version", m.Version);
                values.Add("CmdId", m.CmdId);
                values.Add("OrdId", m.OrdId);
                values.Add("OutCustId", m.OutCustId);
                values.Add("OutAcctId", m.OutAcctId);
                values.Add("TransAmt", m.TransAmt);
                values.Add("InCustId", m.InCustId);
                values.Add("InAcctId", m.InAcctId);
                values.Add("RetUrl", m.RetUrl);
                values.Add("BgRetUrl", m.BgRetUrl);
                values.Add("MerPriv", m.MerPriv);
                values.Add("ChkValue", m.ChkValue);
                string url = Utils.GetChinapnrUrl();
                //同步发送form表单请求
                byte[] result = client.UploadValues(url, "POST", values);
                var    retStr = Encoding.UTF8.GetString(result);
                // Response.Write(retStr);

                log += "<br>自动扣款转账(商户用)返回报文:" + retStr;
                ReTransfer reg = new ReTransfer();
                retloan = (ReTransfer)FastJSON.ToObject(retStr, reg);
                StringBuilder builder = new StringBuilder();
                builder.Append(retloan.CmdId);
                builder.Append(retloan.RespCode);
                builder.Append(retloan.OrdId);
                builder.Append(retloan.OutCustId);
                builder.Append(retloan.OutAcctId);
                builder.Append(retloan.TransAmt);
                builder.Append(retloan.InCustId);
                builder.Append(retloan.InAcctId);
                builder.Append(retloan.RetUrl);
                builder.Append(retloan.BgRetUrl);
                builder.Append(retloan.MerPriv);
                var msg = builder.ToString();

                log += "<br>商户向用户转账返回参数:" + msg;
                //验签
                string pgPubkFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();
                int    ret        = DllInterop.VeriSignMsg(pgPubkFile, msg, msg.Length, retloan.ChkValue);
                log += "<br>商户向用户转账验签ret:" + ret.ToString();
                if (ret == 0)
                {
                    if (retloan.RespCode == "000")
                    {
                    }
                    else
                    {
                        retloan = null;
                    }
                }
            }
            LogInfo.WriteLog(log);
            return(retloan);
        }
Ejemplo n.º 22
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(""));
        }
Ejemplo n.º 23
0
        private void checkbank(string UsrCustId)
        {
            M_QueryCardInfo m = new M_QueryCardInfo();

            m.Version   = "10";
            m.CmdId     = "QueryCardInfo";
            m.MerCustId = Utils.GetMerCustID();
            m.UsrCustId = UsrCustId;
            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.Version);
            chkVal.Append(m.CmdId);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.UsrCustId);

            string chkv = chkVal.ToString();


            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr();
            //需要指定提交字符串的长度
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);
            //加签
            int str = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue);

            //  Response.Write("加签字符:" + str.ToString() + "<br>");

            m.ChkValue = sbChkValue.ToString();

            using (var client = new WebClient())
            {
                var values = new NameValueCollection();
                values.Add("Version", m.Version);
                values.Add("CmdId", m.CmdId);
                values.Add("MerCustId", m.MerCustId);
                values.Add("UsrCustId", m.UsrCustId);
                values.Add("ChkValue", m.ChkValue);

                string url = Utils.GetChinapnrUrl();
                //同步发送form表单请求
                byte[] result = client.UploadValues(url, "POST", values);
                var    retStr = Encoding.UTF8.GetString(result);
                // Response.Write(retStr);



                ReQueryCardInfo reg = new ReQueryCardInfo();

                JavaScriptSerializer js   = new JavaScriptSerializer();               //实例化一个能够序列化数据的类
                ReQueryCardInfo      list = js.Deserialize <ReQueryCardInfo>(retStr); //将json数据转化为对象类型并赋值给list


                LogInfo.WriteLog("卡查询:" + retStr);

                string RespCode = list.RespCode;

                List <M_UsrCardInfolist> orderdetail = list.UsrCardInfolist;



                StringBuilder builder = new StringBuilder();
                builder.Append(list.CmdId);
                builder.Append(list.RespCode);
                builder.Append(list.MerCustId);
                builder.Append(list.UsrCustId);
                var    msg        = builder.ToString();
                string pgPubkFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();
                int    ret        = DllInterop.VeriSignMsg(pgPubkFile, msg, msg.Length, list.ChkValue);

                if (ret == 0)
                {
                    delCard(orderdetail, list);

                    if (list.RespCode == "000")
                    {
                        string sql = "";



                        for (int i = 0; i < orderdetail.Count; i++)
                        {
                            if (checkcard(orderdetail[i].CardId) <= 0)
                            {
                                int iy = 0;

                                if (orderdetail[i].IsDefault == "Y")
                                {
                                    iy = 1;
                                }



                                sql = "  update hx_member_table   set isbankcard=1  where  UsrCustId='" + orderdetail[i].UsrCustId + "' and  isbankcard=0 ";

                                DbHelperSQL.RunSql(sql);
                                sql = " insert into hx_UsrBindCardC (UsrCustId,OpenAcctId,OpenBankId,defCard)values('" + orderdetail[i].UsrCustId + "','" + orderdetail[i].CardId + "','" + orderdetail[i].BankId + "'," + iy + ")";

                                // Response.Write(sql + "<br>");

                                DbHelperSQL.RunSql(sql);
                                // Response.Write(orderdetail[i].BankId + "  " + orderdetail[i].IsDefault + "  " + orderdetail[i].CardId + "  " + orderdetail[i].UsrCustId + "<br>");
                            }
                            else
                            {
                                //如果卡在

                                if (orderdetail[i].IsDefault == "Y")
                                {
                                    sql = "update hx_UsrBindCardC  set defCard = 0  where UsrCustId = '" + orderdetail[i].UsrCustId + "'";
                                    DbHelperSQL.RunSql(sql);
                                    sql = "update hx_UsrBindCardC  set defCard = 1  where UsrCustId = '" + orderdetail[i].UsrCustId + "' and OpenAcctId = '" + orderdetail[i].CardId + "'";
                                    DbHelperSQL.RunSql(sql);
                                }



                                // Response.Write("没有执行");
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 24
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));
        }
Ejemplo n.º 25
0
        public ActionResult Re_Enterpriserecharge()
        {
            string    str = "";
            ReNetSave m   = new ReNetSave();

            m.CmdId      = DNTRequest.GetString("CmdId");
            m.RespCode   = DNTRequest.GetString("RespCode");
            m.RespDesc   = 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.RetUrl     = DNTRequest.GetString("RetUrl");
            m.BgRetUrl   = DNTRequest.GetString("BgRetUrl");
            m.MerPriv    = DNTRequest.GetString("MerPriv");
            m.GateBusiId = DNTRequest.GetString("GateBusiId");
            m.GateBankId = DNTRequest.GetString("GateBankId");
            m.ChkValue   = DNTRequest.GetString("ChkValue");
            m.FeeAmt     = DNTRequest.GetString("FeeAmt");
            m.FeeCustId  = DNTRequest.GetString("FeeCustId");
            m.FeeAcctId  = DNTRequest.GetString("FeeAcctId");

            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 + 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")
                {
                    string cachename = m.OrdId + "Enterpriserecharge" + m.UsrCustId;

                    if (Utils.GeTThirdCache(cachename) == 0)
                    {
                        Utils.SetThirdCache(cachename);

                        string sql = "update hx_Recharge_history set recharge_condition=1,recharge_bank='" + m.GateBankId + "' where  order_No='" + m.OrdId + "'";

                        DbHelperSQL.RunSql(sql);
                    }
                    str = "RECV_ORD_ID_" + m.TrxId;
                }
                else
                {
                    // Response.Write("充值失败");
                }
            }
            else
            {
                //失败

                // Response.Write("验签失败");
            }


            #endregion


            return(Content(str));
        }
Ejemplo n.º 26
0
        public ActionResult UserToPlatformMoney(string UsrCustId = "", decimal money = 0, string InCustId = "")
        {
            if (string.IsNullOrEmpty(UsrCustId))
            {
                return(Content(StringAlert.Alert("客户号不可以为空!"), "text/html"));
            }
            if (string.IsNullOrEmpty(InCustId))
            {
                return(Content(StringAlert.Alert("入账客户号不可以为空!"), "text/html"));
            }
            if (money <= 0)
            {
                return(Content(StringAlert.Alert("转账金额错误!"), "text/html"));
            }
            M_UsrAcctPay m = new M_UsrAcctPay();

            m.Version = "10";
            m.CmdId   = "UsrAcctPay";
            m.OrdId   = Utils.Createcode();
            // m.UsrCustId = "6000060000898051";
            m.UsrCustId = Utils.CheckSQLHtml(UsrCustId);

            m.MerCustId  = Utils.GetMerCustID();
            m.InAcctId   = "MDT000001";
            m.InAcctType = "MERDT";
            m.RetUrl     = Utils.GetRe_url("admin/Recharge/UsrPay");
            m.BgRetUrl   = Utils.GetRe_url("admin/Thirdparty/BgUsrPay");

            //m.TransAmt = "7749.60";
            m.TransAmt = money.ToString("0.00");
            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.Version);
            chkVal.Append(m.CmdId);
            chkVal.Append(m.OrdId);
            chkVal.Append(m.UsrCustId);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.TransAmt);
            chkVal.Append(m.InAcctId);
            chkVal.Append(m.InAcctType);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.BgRetUrl);
            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 str = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue);

            LogInfo.WriteLog("向平台转帐加签字符:" + str.ToString());
            m.ChkValue = sbChkValue.ToString();
            LogInfo.WriteLog("向平台转帐提交信息:" + FastJSON.toJOSN(m));
            LogInfo.WriteLog("ChkValue:" + m.ChkValue);

            StringBuilder strz = new StringBuilder();

            strz.Append(" <form id=\"formauto\" name=\"formauto\"  action=\"" + Utils.GetChinapnrUrl() + "\" method=\"post\">");
            strz.Append("<input id=\"Version\"  name=\"Version\"  type=\"hidden\"  value=\"" + m.Version + "\" />");
            strz.Append("<input id=\"CmdId\"  name=\"CmdId\"    type=\"hidden\"  value=\"" + m.CmdId + "\" />");
            strz.Append("<input id=\"OrdId\" name=\"OrdId\" type=\"hidden\"  value=\"" + m.OrdId + "\" />");
            strz.Append("<input id=\"UsrCustId\" name=\"UsrCustId\" type=\"hidden\"  value=\"" + m.UsrCustId + "\" />");
            strz.Append("<input id=\"MerCustId\" name=\"MerCustId\" type=\"hidden\"  value=\"" + m.MerCustId + "\" />");
            strz.Append("<input id=\"TransAmt\"  name=\"TransAmt\" type=\"hidden\"  value=\"" + m.TransAmt + "\" />");
            strz.Append("<input id=\"InAcctId\"   name=\"InAcctId\" type=\"hidden\"  value=\"" + m.InAcctId + "\" />");
            strz.Append("<input id=\"InAcctType\" name=\"InAcctType\" type=\"hidden\"  value=" + m.InAcctType + " />");
            strz.Append("<input id=\"RetUrl\" name=\"RetUrl\" type=\"hidden\"  value=\"" + m.RetUrl + "\" />");
            strz.Append("<input id=\"BgRetUrl\" name=\"BgRetUrl\" type=\"hidden\"  value=\"" + m.BgRetUrl + "\" />");
            strz.Append("<input id=\"ChkValue\" name=\"ChkValue\" type=\"hidden\"  value=\"" + m.ChkValue + "\" />");
            strz.Append(" </form>");
            strz.Append("<script type=\"text/javascript\">document.getElementById('formauto').submit();</script>");
            LogInfo.WriteLog(strz.ToString());
            ViewBag.str = strz.ToString();
            return(View());
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 实名注册回调地址
        /// </summary>
        /// <returns></returns>
        public ActionResult CallbackForUserRegister(bool isSyncCallback = false)
        {
            var        mEntity   = new MemberEntity();
            string     username  = "";
            string     useremail = "";
            string     merp      = "";
            UserEntity m         = new UserEntity();

            m.CmdId     = DNTRequest.GetString("CmdId");
            m.RespCode  = DNTRequest.GetString("RespCode");
            m.RespDesc  = DNTRequest.GetString("RespDesc");
            m.MerCustId = DNTRequest.GetString("MerCustId");
            m.UsrId     = DNTRequest.GetString("UsrId");
            m.UsrCustId = DNTRequest.GetString("UsrCustId");
            m.BgRetUrl  = DNTRequest.GetString("BgRetUrl");
            m.TrxId     = DNTRequest.GetString("TrxId");
            m.RetUrl    = DNTRequest.GetString("RetUrl");
            merp        = m.MerPriv = DNTRequest.GetString("MerPriv");
            m.IdType    = DNTRequest.GetString("IdType");
            m.IdNo      = DNTRequest.GetString("IdNo");
            m.UsrMp     = DNTRequest.GetString("UsrMp");
            useremail   = DNTRequest.GetString("UsrEmail");
            m.UsrEmail  = useremail;
            username    = HttpUtility.UrlDecode(DNTRequest.GetString("UsrName"));
            m.UsrName   = username;
            m.ChkValue  = DNTRequest.GetString("ChkValue");
            LoggerHelper.Info("注册开户返回报文:" + JsonHelper.Entity2Json(m));
            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.CmdId);
            chkVal.Append(m.RespCode);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.UsrId);
            chkVal.Append(m.UsrCustId);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.TrxId);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.MerPriv);
            string chkv = chkVal.ToString();
            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Settings.Instance.PgPubk;
            int    ret        = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue);

            string deviceKey = PickoutDeviceFlag(ref merp);//pick out device code from comment field

            m.MerPriv = merp;
            if (ret == 0)
            {
                if (m.RespCode == "000")
                {
                    string cachename = m.UsrId + "Register" + m.MerCustId;
                    LoggerHelper.Info("开户验签成功");
                    object lockObj = new object();
                    lock (lockObj)
                    {
                        lock (this)
                        {
                            if (Settings.Instance.GeTThirdCache(cachename) == 0)
                            {
                                Utils.SetThirdCache(cachename);
                                MemberLogic mLogic = new MemberLogic();
                                mEntity.realname  = m.UsrName;
                                mEntity.UsrCustId = m.UsrCustId;
                                mEntity.UsrId     = m.UsrId;
                                mEntity.iD_number = m.IdNo;
                                if (mLogic.UpdateUserRealAuth(mEntity))
                                {
                                    LoggerHelper.Info("数据库操作成功");
                                    var tempUsername = PageHelper.GetUserSplit(m.UsrId);
                                    var tempEntity   = mLogic.SelectMemberEntityByName(tempUsername);
                                    //TODO: 以后添加实名奖励
                                    if (tempEntity != null)
                                    {
                                        using (ActFacade actFacade = new ActFacade())
                                        {
                                            actFacade.SendBonusAfterRegister(tempEntity.registerid.Value, Utils.GetDevicePlatformCode(deviceKey));
                                        }
                                    }
                                    else
                                    {
                                        LoggerHelper.Info("Line to 276:查找不到用户,无法写入注册奖励!");
                                    }
                                    LoggerHelper.Info("开户成功,数据库操作成功,开户返回报文:" + JsonHelper.Entity2Json(m));
                                }
                                else
                                {
                                    /*第三方成功,本地服务器操作失败*/
                                    LoggerHelper.Info("开户成功,数据库操作失败,开户返回报文:" + JsonHelper.Entity2Json(m));
                                }
                            }
                        }
                    }
                }
                if (isSyncCallback)
                {
                    return(Content("RECV_ORD_ID_" + m.TrxId));
                }
            }
            else
            {
                /*验签不成功*/
                LoggerHelper.Info("开户验签失败");
                if (isSyncCallback)
                {
                    return(Content("-1"));
                }
            }
            return(View(m));
        }
Ejemplo n.º 28
0
        public ActionResult PlatformToUserMoney(string UsrCustId = "", decimal money = 0)
        {
            string keypassword = ConfigurationManager.AppSettings["RechargePassWord"].ToString();
            string password    = DNTRequest.GetFormString("pssword");

            if (string.IsNullOrEmpty(UsrCustId))
            {
                return(Content(StringAlert.Alert("客户号不可以为空!"), "text/html"));
            }
            if (money <= 0)
            {
                return(Content(StringAlert.Alert("转账金额错误!"), "text/html"));
            }
            if (String.IsNullOrEmpty(password))
            {
                return(Content(StringAlert.Alert("密码不能为空!"), "text/html"));
            }
            if (keypassword != password)
            {
                return(Content(StringAlert.Alert("充值密码不正确"), "text/html"));
            }

            M_Transfer m = new M_Transfer();

            m.Version   = "10";
            m.CmdId     = "Transfer";
            m.OrdId     = Utils.Createcode();
            m.OutCustId = Utils.GetMerCustID();
            m.OutAcctId = "MDT000001";
            m.TransAmt  = money.ToString("0.00");
            m.InCustId  = Utils.CheckSQLHtml(UsrCustId);
            m.BgRetUrl  = Utils.GetRe_url("admin/Thirdparty/BgToUserTransfer");

            StringBuilder chkVal = new StringBuilder();

            chkVal.Append(m.Version);
            chkVal.Append(m.CmdId);
            chkVal.Append(m.OrdId);
            chkVal.Append(m.OutCustId);
            chkVal.Append(m.OutAcctId);
            chkVal.Append(m.TransAmt);
            chkVal.Append(m.InCustId);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.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 str = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue);

            LogInfo.WriteLog("加签字符:" + str.ToString());
            m.ChkValue = sbChkValue.ToString();

            LogInfo.WriteLog("提交信息:" + FastJSON.toJOSN(m));
            LogInfo.WriteLog("ChkValue:" + m.ChkValue);
            string _resultStr = "";

            using (var client = new WebClient())
            {
                var values = new NameValueCollection();
                values.Add("Version", m.Version);
                values.Add("CmdId", m.CmdId);
                values.Add("OrdId", m.OrdId);
                values.Add("OutCustId", m.OutCustId);
                values.Add("OutAcctId", m.OutAcctId);
                values.Add("TransAmt", m.TransAmt);
                values.Add("InCustId", m.InCustId);
                values.Add("InAcctId", m.InAcctId);
                values.Add("RetUrl", m.RetUrl);
                values.Add("BgRetUrl", m.BgRetUrl);
                values.Add("MerPriv", m.MerPriv);
                values.Add("ChkValue", m.ChkValue);
                string url = Utils.GetChinapnrUrl();
                //同步发送form表单请求
                byte[] result = client.UploadValues(url, "POST", values);
                var    retStr = Encoding.UTF8.GetString(result);
                // Response.Write(retStr);
                LogInfo.WriteLog("自动扣款转账(商户用)返回报文" + retStr);
                ReTransfer    reg     = new ReTransfer();
                var           retloan = (ReTransfer)FastJSON.ToObject(retStr, reg);
                StringBuilder builder = new StringBuilder();
                builder.Append(retloan.CmdId);
                builder.Append(retloan.RespCode);
                builder.Append(retloan.OrdId);
                builder.Append(retloan.OutCustId);
                builder.Append(retloan.OutAcctId);
                builder.Append(retloan.TransAmt);
                builder.Append(retloan.InCustId);
                builder.Append(retloan.InAcctId);
                builder.Append(retloan.RetUrl);
                builder.Append(retloan.BgRetUrl);
                builder.Append(retloan.MerPriv);

                var msg = builder.ToString();
                LogInfo.WriteLog("返回参数:" + msg);
                //验签
                string pgPubkFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk();
                int    ret        = DllInterop.VeriSignMsg(pgPubkFile, msg, msg.Length, retloan.ChkValue);
                LogInfo.WriteLog("验签ret:" + ret.ToString());
                if (ret == 0)
                {
                    if (retloan.RespCode == "000")
                    {
                        //_resultStr = retloan.RespCode.ToString() + "  <br>  " + HttpUtility.UrlDecode(retloan.RespDesc) + "<br>转账成功";
                        #region 流水信息
                        string sql = "SELECT registerid,username,mobile  from hx_member_table where UsrCustId='" + retloan.InCustId + "'";
                        System.Data.DataTable dt = DbHelperSQL.GET_DataTable_List(sql);
                        if (dt.Rows.Count > 0)
                        {
                            B_usercenter ors = new B_usercenter();
                            decimal      di  = ors.GetUsridAvailable_balance(int.Parse(dt.Rows[0]["registerid"].ToString()));
                            // di = di + decimal.Parse(hua.Amt.ToString());
                            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("" + int.Parse(dt.Rows[0]["registerid"].ToString()) + "," + decimal.Parse(retloan.TransAmt) + ",0,'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'," + (di + decimal.Parse(retloan.TransAmt)) + "," + (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.平台向用户划账.ToString()) + ",'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',0,'" + "平台向用户划账" + "')");
                            DbHelperSQL.RunSql(strSql.ToString());
                            strSql.Clear();
                        }
                        #endregion
                        _resultStr = "<br>转账成功";
                    }
                    else
                    {
                        _resultStr = HttpUtility.UrlDecode(retloan.RespDesc);
                    }
                }
            }
            ViewBag.str = _resultStr;
            return(View());
        }
Ejemplo n.º 29
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));
        }
Ejemplo n.º 30
0
        public ActionResult RealNameAuth(RequestParam <RequestValidate> reqst)
        {
            LoggerHelper.Info(JsonHelper.Entity2Json(reqst));
            MemberLogic _logic = new MemberLogic();
            var         uid    = ConvertHelper.ParseValue(reqst.body.userId, 0);
            var         p      = _logic.SelectMemberByUserId(uid);

            var        ckd = Settings.Instance.SiteDomain;
            UserEntity m   = new UserEntity
            {
                MerId     = Settings.Instance.MerId,
                Version   = "10",
                CmdId     = "UserRegister",
                MerCustId = Settings.Instance.MerCustId,
                BgRetUrl  = ckd + ("/UserAuthentication/Index/BgRetUrlForUserRegister"),
                RetUrl    = ckd + ("/UserAuthentication/Index/CallbackForUserRegister"),
                UsrMp     = p.mobile,
                UsrEmail  = p.email,
                UsrId     = p.username,
                IdNo      = reqst.body.userIdNo,
                IdType    = "00"
            };

            LoggerHelper.Info("身份证:" + m.IdNo);
#pragma warning disable 1587
            /// 签名规则
            /// Version
            /// CmdId
            /// MerCustId
            /// BgRetUrl
            /// RetUrl
            /// UsrId
            /// UsrName
            /// IdType
            /// IdNo
            /// UsrMp
            /// UsrEmail
            /// MerPriv
            /// Version + CmdId + MerCustId + BgRetUrl + RetUrl + UsrId + UsrName + IdType + IdNo + UsrMp + UsrEmail + MerPriv
#pragma warning restore 1587
            StringBuilder chkVal = new StringBuilder();
            string        temp   = m.MerPriv;
            AppendDeviceFlag(reqst.header.appId.ToString(), ref temp);
            m.MerPriv = temp;
            chkVal.Append(m.Version);
            chkVal.Append(m.CmdId);
            chkVal.Append(m.MerCustId);
            chkVal.Append(m.BgRetUrl);
            chkVal.Append(m.RetUrl);
            chkVal.Append(m.UsrId);
            chkVal.Append(m.IdType);
            chkVal.Append(m.IdNo);
            chkVal.Append(m.UsrMp);
            chkVal.Append(m.UsrEmail);
            chkVal.Append(m.MerPriv);
            string chkv = chkVal.ToString();
            //私钥文件的位置(这里是放在了站点的根目录下)
            string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Settings.Instance.MerPr;
            //需要指定提交字符串的长度
            int           len        = Encoding.UTF8.GetBytes(chkv).Length;
            StringBuilder sbChkValue = new StringBuilder(256);            //加签
            DllInterop.SignMsg(m.MerId, merKeyFile, chkv, len, sbChkValue);
            m.ChkValue = sbChkValue.ToString();
            LoggerHelper.Info(chkVal.ToString());
            LoggerHelper.Info("加签结果:" + m.ChkValue);
            return(View(m));
        }