示例#1
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);
        }
示例#2
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("没有执行");
                            }
                        }
                    }
                }
            }
        }
示例#3
0
        private void QueryCardInfoByHuiFu(string usrCustId)
        {
            M_QueryCardInfo m = new M_QueryCardInfo();

            m.Version   = "10";
            m.CmdId     = "QueryCardInfo";
            m.MerCustId = Settings.Instance.MerCustId;
            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 + 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);

            //  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 = Settings.Instance.ChinapnrUrl;
                //同步发送form表单请求
                byte[] result = client.UploadValues(url, "POST", values);
                var    retStr = Encoding.UTF8.GetString(result);

                ReQueryCardInfo reg = new ReQueryCardInfo();

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

                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 + Settings.Instance.PgPubk;
                int    ret        = DllInterop.VeriSignMsg(pgPubkFile, msg, msg.Length, list.ChkValue);

                if (ret == 0)
                {
                    var delSql = " delete hx_UsrBindCardC  where UsrCustId = '" + usrCustId + "' ";

                    DbHelper.ExecuteSql(delSql);


                    if (list.RespCode == "000")
                    {
                        string sql = "";
                        if (orderdetail.Count > 0)
                        {
                            sql = "  update hx_member_table set isbankcard=1  where  UsrCustId='" + usrCustId + "' and  isbankcard=0 ";
                            DbHelper.ExecuteSql(sql);
                        }
                        for (int i = 0; i < orderdetail.Count; i++)
                        {
                            int iy = 0;

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

                            int bindcartype = 0;

                            if (orderdetail[i].ExpressFlag == "Y")
                            {
                                bindcartype = 1;
                            }

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

                            DbHelper.ExecuteSql(sql);
                        }
                    }
                }
            }
        }