/// <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); }
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("没有执行"); } } } } } }
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); } } } } }