/// <summary> /// 更新用户第三方余额 /// </summary> /// <param name="usrid"></param> /// <returns></returns> public ReQueryBalanceBg Querybalance(int usrid) { M_QueryBalanceBg mbg = new M_QueryBalanceBg(); ReQueryBalanceBg retloan = new ReQueryBalanceBg(); hx_member_table mt = ef.hx_member_table.Where(p => p.registerid == usrid).FirstOrDefault(); string UsrCustId = ""; if (mt != null) { UsrCustId = mt.UsrCustId; } if (UsrCustId != null && UsrCustId != "") { if (UsrCustId.Length > 0) { mbg.Version = "10"; mbg.CmdId = "QueryBalanceBg"; mbg.MerCustId = Utils.GetMerCustID(); mbg.UsrCustId = UsrCustId; StringBuilder chkVal = new StringBuilder(); chkVal.Append(mbg.Version); chkVal.Append(mbg.CmdId); chkVal.Append(mbg.MerCustId); chkVal.Append(mbg.UsrCustId); string chkv = chkVal.ToString(); string log = "更新用户第三方余额"; log += "<br>加签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()); mbg.ChkValue = sbChkValue.ToString(); log += "<br>提交信息:" + FastJSON.toJOSN(mbg); log += "<br>ChkValue:" + mbg.ChkValue; using (var client = new WebClient()) { var values = new NameValueCollection(); values.Add("Version", mbg.Version); values.Add("CmdId", mbg.CmdId); values.Add("MerCustId", mbg.MerCustId); values.Add("UsrCustId", mbg.UsrCustId); values.Add("ChkValue", mbg.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); ReQueryBalanceBg reg = new ReQueryBalanceBg(); retloan = (ReQueryBalanceBg)FastJSON.ToObject(retStr, reg); StringBuilder builder = new StringBuilder(); builder.Append(retloan.CmdId); builder.Append(retloan.RespCode); //builder.Append(retloan.RespDesc); builder.Append(retloan.MerCustId); builder.Append(retloan.UsrCustId); builder.Append(retloan.AvlBal); builder.Append(retloan.AcctBal); builder.Append(retloan.FrzBal); // builder.Append(retloan.ChkValue); 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") { B_usercenter bu = new B_usercenter(); bu.DataSync(retloan, UsrCustId, 1); // Response.Write("账户余额: " + retloan.AcctBal + "<br>"); // Response.Write("可用余额: " + retloan.AvlBal + "<br>"); // Response.Write("冻结余额: " + retloan.FrzBal + "<br>"); // AvlBal.Value = retloan.AvlBal; // FrzBal.Value = retloan.FrzBal; // string sql = "update hx_member_table set available_balance=" + decimal.Parse(retloan.AvlBal) + " ,frozen_sum=" + decimal.Parse(retloan.FrzBal) + " where UsrCustId='" + UsrCustId + "'"; // DbHelperSQL.RunSql(sql); } else { // Response.Write(HttpUtility.UrlDecode(retloan.RespDesc)); } } } LogInfo.WriteLog(log); } } return(retloan); }
/// <summary> /// 根据用户客户号获取用户资金信息 ---待重构 /// </summary> /// <param name="UsrCustId">用户汇付客户号</param> /// <returns>ReQueryBalanceBg 汇付帐户余额实体对象</returns> public static ReQueryBalanceBg QueryBalance(string usrCustId) { if (usrCustId != null && usrCustId.Length > 0) { string strLog = ""; M_QueryBalanceBg m = new M_QueryBalanceBg(); m.Version = "10"; m.CmdId = "QueryBalanceBg"; 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(); strLog = "后台余额同步:加签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); strLog += ";加签字符:" + str.ToString(); m.ChkValue = sbChkValue.ToString(); strLog += ";提交信息:" + FastJSON.toJOSN(m); strLog += ";ChkValue:" + m.ChkValue; 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); LogInfo.WriteLog(retStr); ReQueryBalanceBg reg = new ReQueryBalanceBg(); var retloan = (ReQueryBalanceBg)FastJSON.ToObject(retStr, reg); StringBuilder builder = new StringBuilder(); builder.Append(retloan.CmdId); builder.Append(retloan.RespCode); //builder.Append(retloan.RespDesc); builder.Append(retloan.MerCustId); builder.Append(retloan.UsrCustId); builder.Append(retloan.AvlBal); builder.Append(retloan.AcctBal); builder.Append(retloan.FrzBal); // builder.Append(retloan.ChkValue); var msg = builder.ToString(); strLog += ";返回参数:" + msg; //验签 string pgPubkFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); int ret = DllInterop.VeriSignMsg(pgPubkFile, msg, msg.Length, retloan.ChkValue); strLog += ";验签ret:" + ret.ToString(); LogInfo.WriteLog(strLog); if (ret == 0) { return(retloan); } } } return(null); }