using Lskj.Business.Impl; using Lskj.Control.BrowserSetting; using Lskj.Core; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Globalization; using System.IO; using System.Linq; using System.Net; using System.Security.Cryptography; using System.Text; namespace Lskj.QueryEssentialInfo { public static class QueryApiUtil { public static string urlStart = "https://api.baiwangjs.com/swgx-saas/swgxpt-shishi-cpsbmk/v2"; public static DataRow mainRow; public static DataTable detailTab; /// /// 获取操作token /// public static void GetToken(ref string token, ref string aggOrgId) { token = ""; aggOrgId = ""; try { string url = "http://openapi.51fpcloud.com/v2/public/token"; HttpTools.setting("application/x-www-form-urlencoded", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); string client_id = mainRow["client_id"] + ""; string client_secret = mainRow["client_secret"] + ""; string authorization = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{client_id}:{client_secret}")); headerDic.Add("Authorization", $"Basic {authorization}"); Dictionary pmsDic = new Dictionary(); pmsDic.Add("nsrsbh", mainRow["nsrsbh"] + ""); HttpWebResponse webResponse = HttpTools.Post(url, "", pmsDic, headerDic, HttpTools.Method.POST); string result = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); if (webResponse != null && !string.IsNullOrEmpty(result)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(result); string code = resultJObject["code"] + ""; string msg = resultJObject["msg"] + ""; if (code.Equals("0")) { token = resultJObject["data"]["token"] + ""; aggOrgId = resultJObject["data"]["aggOrgId"] + ""; SqlHelper.ExecuteNonQuery(string.Format("update p_systemtab set queryEssentialToken = '{0}'", token)); SqlHelper.ExecuteNonQuery(string.Format("update p_systemtab set queryEssentialAggOrgId = '{0}'", aggOrgId)); } else { throw new Exception($"获取token失败\r\n{msg}"); } } } catch (Exception) { throw; } } /// /// 专项附加扣除查询 /// /// /// /// public static string CheckPassword(ref string token, ref string aggOrgId, ref string accountId, ref string message) { string code = "-9999"; try { string url = "http://openapi.51fpcloud.com/v2/iit/check/checkPassword"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); headerDic.Add("token", token); JObject pmsJObject = new JObject(); if (detailTab != null && detailTab.Rows.Count > 0) { pmsJObject.Add("aggOrgId", aggOrgId); pmsJObject.Add("checkPassword", "Y"); pmsJObject.Add("nsrsbh", mainRow["nsrsbh"] + ""); pmsJObject.Add("qymc", mainRow["qymc"] + ""); pmsJObject.Add("mmlx", mainRow["mmlx"] + ""); pmsJObject.Add("sbmm", RsaEntryUtil.Encrypt(mainRow["sbmm"] + "", RsaEntryUtil.ToXmlPublicKey("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+vuYMGtTU+42wwbaFX+PkCuSeoREKe5V4EJMi553Gc03ficUdpLHIFdEjAMHAxepwm3RAGLwyxYFK/S93k8GYMuV35L2Nj/cVeHS8scsdqXzqLUKaI4wj438OI6HDh7rWsw1M5EgMsoZvQqja53+SgD3mgIy3XyILbmA5jUp2IwIDAQAB"))); pmsJObject.Add("areaid", mainRow["areaid"] + ""); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); string resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; message = resultJObject["message"] + ""; if (code.Equals("2000")) { accountId = resultJObject["data"]["accountId"] + ""; } } } } catch (Exception) { throw; } return code; } /// /// 专项附加扣除查询 /// /// /// /// public static string QueryEssentialInfo(ref string token, ref string aggOrgId, ref string accountId, out string resultRead) { string code = "-9999"; resultRead = ""; try { string url = "http://openapi.51fpcloud.com/v2/iit/declare/queryEssentialInfo"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); headerDic.Add("token", token); JObject pmsJObject = new JObject(); if (detailTab != null && detailTab.Rows.Count > 0) { pmsJObject.Add("aggOrgId", aggOrgId); pmsJObject.Add("accountId", accountId); pmsJObject.Add("skssq", mainRow["skssq"] + ""); JArray rylbJArray = new JArray(); { foreach (DataRow detailRow in detailTab.Rows) { string addTag = detailRow["p_emp_addTag"] + ""; if (addTag.Equals("0")) { continue; } JObject rylbJObject = new JObject(); rylbJObject.Add("xm", detailRow["xm"] + ""); rylbJObject.Add("zzlx", detailRow["zzlx"] + ""); rylbJObject.Add("zzhm", detailRow["zzhm"] + ""); rylbJArray.Add(rylbJObject); } } pmsJObject.Add("rylb", rylbJArray); if (rylbJArray.Count > 0) { HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; } } else { code = "-9998"; } } } catch (Exception) { throw; } return code; } /// /// 专项附加扣除查询反馈 /// /// /// /// public static string QueryEssentialInfoFeedback(string taskId, ref string token, ref string aggOrgId, ref string accountId, out string resultRead) { string code = "-9999"; resultRead = ""; try { string url = "http://openapi.51fpcloud.com/v2/iit/declare/queryEssentialInfoFeedback"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); headerDic.Add("token", token); JObject pmsJObject = new JObject(); pmsJObject.Add("aggOrgId", aggOrgId); pmsJObject.Add("accountId", accountId); pmsJObject.Add("taskId", taskId); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; } } catch (Exception) { throw; } return code; } /// /// 获取企业人员 /// /// /// /// /// /// public static string QueryEssentialCompanyEmployee(ref string token, ref string aggOrgId, ref string accountId, out string resultRead) { string code = "-9999"; resultRead = ""; try { string url = "http://openapi.51fpcloud.com/v2/iit/data/getCompanyEmployee"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); headerDic.Add("token", token); JObject pmsJObject = new JObject(); pmsJObject.Add("aggOrgId", aggOrgId); pmsJObject.Add("accountId", accountId); pmsJObject.Add("pageNo", "1"); pmsJObject.Add("pageSize", "100"); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; } } catch (Exception) { throw; } return code; } /// /// 人员报送 /// /// /// /// /// /// public static string QueryEssentialEmployeeInfo(ref string token, ref string aggOrgId, ref string accountId, out string resultRead) { string code = "-9999"; resultRead = ""; try { string url = "http://openapi.51fpcloud.com/v2/iit/declare/declareEmployeeInfo"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); headerDic.Add("token", token); JObject pmsJObject = new JObject(); pmsJObject.Add("aggOrgId", aggOrgId); pmsJObject.Add("accountId", accountId); pmsJObject.Add("skssq", mainRow["skssq"] + ""); JArray rylbArray = new JArray(); foreach (DataRow detailRow in detailTab.Rows) { string addTag = detailRow["p_emp_addTag"] + ""; if (addTag.Equals("1")) { continue; } JObject rylbJObject = new JObject(); rylbJObject.Add("xm", detailRow["xm"] + ""); rylbJObject.Add("zzlx", detailRow["zzlx"] + ""); rylbJObject.Add("zzhm", detailRow["zzhm"] + ""); rylbJObject.Add("lxdh", detailRow["lxdh"] + ""); rylbJObject.Add("nsrzt", detailRow["nsrzt"] + ""); rylbJObject.Add("sfgy", detailRow["sfgy"] + ""); rylbJObject.Add("rzsgrq", detailRow["rzsgrq"] + ""); rylbJObject.Add("xb", detailRow["xb"] + ""); rylbJObject.Add("csny", detailRow["csny"] + ""); rylbJObject.Add("gj", detailRow["gj"] + ""); rylbJObject.Add("rydq", detailRow["rydq"] + ""); rylbArray.Add(rylbJObject); } pmsJObject.Add("rylb", rylbArray); if (rylbArray.Count > 0) { HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; } } else { code = "-9998"; } } catch (Exception) { throw; } return code; } /// /// 人员报送反馈 /// /// /// /// /// /// public static string QueryEssentialEmployeeInfoFeedback(string taskId, ref string token, ref string aggOrgId, ref string accountId, out string resultRead) { string code = "-9999"; resultRead = ""; try { string url = "http://openapi.51fpcloud.com/v2/iit/declare/getEmployeeInfoFeedback"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); headerDic.Add("token", token); JObject pmsJObject = new JObject(); pmsJObject.Add("aggOrgId", aggOrgId); pmsJObject.Add("accountId", accountId); pmsJObject.Add("taskId", taskId); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; } } catch (Exception) { throw; } return code; } /// /// 初始化 /// public static string Init(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/gsmycsh"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("requestId", Guid.NewGuid().ToString().Replace("-", "").ToLower()); pmsJObject.Add("accountId", "1"); pmsJObject.Add("busiTypeCode", mainRow["busiTypeCode"] + ""); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 同步人员 /// public static string Person(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/syn/person"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("busiTypeCode", mainRow["busiTypeCode"] + ""); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); JArray bizlistJArray = new JArray(); foreach (DataRow detailRow in detailTab.Rows) { string addTag = detailRow["p_emp_addTag"] + ""; if (!string.IsNullOrEmpty(addTag) && !addTag.Equals("0")) { continue; } JObject bizDataJObject = new JObject(); bizDataJObject.Add("name", detailRow.Table.Columns.Contains("name") ? detailRow["name"] + "" : ""); bizDataJObject.Add("idType", detailRow.Table.Columns.Contains("idType") ? detailRow["idType"] + "" : ""); bizDataJObject.Add("idNumber", detailRow.Table.Columns.Contains("idNumber") ? detailRow["idNumber"] + "" : ""); bizDataJObject.Add("sex", detailRow.Table.Columns.Contains("sex") ? detailRow["sex"] + "" : ""); bizDataJObject.Add("birthday", detailRow.Table.Columns.Contains("birthday") ? detailRow["birthday"] + "" : ""); string employType = detailRow.Table.Columns.Contains("employType") ? detailRow["employType"] + "" : ""; bizDataJObject.Add("employType", employType); if (employType.Equals("雇员")) { bizDataJObject.Add("employedDate", detailRow.Table.Columns.Contains("employedDate") ? detailRow["employedDate"] + "" : ""); } else if (employType.Equals("其他")) { bizDataJObject.Add("taxRelatedMatters", detailRow.Table.Columns.Contains("taxRelatedMatters") ? detailRow["taxRelatedMatters"] + "" : ""); } bizDataJObject.Add("phoneNumber", detailRow.Table.Columns.Contains("phoneNumber") ? detailRow["phoneNumber"] + "" : ""); bizDataJObject.Add("isDeductExpense", detailRow.Table.Columns.Contains("isDeductExpense") ? detailRow["isDeductExpense"] + "" : ""); bizlistJArray.Add(bizDataJObject); } pmsJObject.Add("bizDataList", bizlistJArray); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("同步人员", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 报送查询 /// public static string PersonQuery(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/person/submit/query"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("busiTypeCode", mainRow["busiTypeCode"] + ""); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("查询人员报送情况", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 同步专项附加 /// public static string PostAddition(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/syn/special/addition"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("busiTypeCode", mainRow["busiTypeCode"] + ""); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); pmsJObject.Add("ysyf", mainRow["ysyf"] + ""); JArray idNumberjArray = new JArray(); foreach (DataRow detailRow in detailTab.Rows) { string addTag = detailRow["p_emp_addTag"] + ""; if (!addTag.Equals("1")) { continue; } string idNumber = detailRow["idNumber"] + ""; idNumberjArray.Add(idNumber); } pmsJObject.Add("idNumberList", idNumberjArray); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("同步专项附加", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 获取专项附加 /// public static string GetAddition(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/acquire/special/addition"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("busiTypeCode", mainRow["busiTypeCode"] + ""); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); pmsJObject.Add("ysyf", mainRow["ysyf"] + ""); JArray idNumberjArray = new JArray(); foreach (DataRow detailRow in detailTab.Rows) { string addTag = detailRow["p_emp_addTag"] + ""; if (!addTag.Equals("1")) { continue; } string idNumber = detailRow["idNumber"] + ""; idNumberjArray.Add(idNumber); } pmsJObject.Add("idNumberList", idNumberjArray); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("查询专项附加", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 发起个人养老金查询 /// /// /// /// public static string GetYLJFQ(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/acquire/ylj/fqcx"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("busiTypeCode", mainRow["busiTypeCode"] + ""); pmsJObject.Add("requestId", Guid.NewGuid().ToString().Replace("-", "").ToLower()); pmsJObject.Add("accountId", "1"); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); pmsJObject.Add("dknd", mainRow["dknd"] + ""); JArray idNumberjArray = new JArray(); foreach (DataRow detailRow in detailTab.Rows) { string addTag = detailRow["p_emp_addTag"] + ""; if (!addTag.Equals("1")) { continue; } string idNumber = detailRow["idNumber"] + ""; idNumberjArray.Add(idNumber); } pmsJObject.Add("idNumberList", idNumberjArray); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("发起养老金查询", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 获取个人养老金明细 /// public static string GetYLJMX(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/acquire/ylj/list"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("busiTypeCode", mainRow["busiTypeCode"] + ""); pmsJObject.Add("requestId", Guid.NewGuid().ToString().Replace("-", "").ToLower()); pmsJObject.Add("accountId", "1"); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); pmsJObject.Add("dknd", mainRow["dknd"] + ""); JArray idNumberjArray = new JArray(); foreach (DataRow detailRow in detailTab.Rows) { string addTag = detailRow["p_emp_addTag"] + ""; if (!addTag.Equals("1")) { continue; } string idNumber = detailRow["idNumber"] + ""; idNumberjArray.Add(idNumber); } pmsJObject.Add("idNumberList", idNumberjArray); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("获取养老金明细", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 个税申报 /// /// /// /// public static string Submit(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/submit"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("busiTypeCode", mainRow["busiTypeCode"] + ""); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); pmsJObject.Add("skssqQ", mainRow["skssqQ"] + ""); pmsJObject.Add("skssqZ", mainRow["skssqZ"] + ""); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("个税申报", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 个税申报作废 /// /// /// /// public static string InvalidSubmit(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/invalid/submit"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("busiTypeCode", mainRow["busiTypeCode"] + ""); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); pmsJObject.Add("skssqQ", mainRow["skssqQ"] + ""); pmsJObject.Add("skssqZ", mainRow["skssqZ"] + ""); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("个税申报作废", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 个税申报查询 /// public static string SubmitQuery(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/submit/query"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("busiTypeCode", mainRow["busiTypeCode"] + ""); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); pmsJObject.Add("skssqQ", mainRow["skssqQ"] + ""); pmsJObject.Add("skssqZ", mainRow["skssqZ"] + ""); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("个税申报查询", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 同步收入 /// /// /// /// public static string GetIncome(out string resultRead, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/syn/income"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); pmsJObject.Add("skssqQ", mainRow["skssqQ"] + ""); pmsJObject.Add("skssqZ", mainRow["skssqZ"] + ""); JArray bizDataListJArry = new JArray(); JArray incomeDataListJArry = new JArray(); var groupedRows = detailTab.AsEnumerable().Where(row => (row["p_emp_addTag"] + "") == "1").GroupBy(row => row["incomeTypeCode"] + ""); foreach (var group in groupedRows) { JObject bizDataJObject = new JObject(); string typeCode = group.Key; //当前的分组编码 foreach (DataRow detailRow in group) { JObject incomeDataJObject = new JObject(); incomeDataJObject.Add("name", detailRow["name"] + ""); incomeDataJObject.Add("idType", detailRow["idType"] + ""); incomeDataJObject.Add("idNumber", detailRow["idNumber"] + ""); incomeDataJObject.Add("income", detailRow["income"] + ""); JObject externFieldsJObject = new JObject(); if (typeCode.Equals("101060100010100")) { externFieldsJObject.Add("endowmentInsurance", detailRow["endowmentInsurance"] + ""); externFieldsJObject.Add("medicalInsurance", detailRow["medicalInsurance"] + ""); externFieldsJObject.Add("unemploymentInsurance", detailRow["unemploymentInsurance"] + ""); externFieldsJObject.Add("housingFund", detailRow["housingFund"] + ""); } else if (typeCode.Equals("101060100010300")) { externFieldsJObject.Add("sfkcjcfy", detailRow["sfkcjcfy"] + ""); externFieldsJObject.Add("employedDate", detailRow["employedDate"] + ""); } else if (typeCode.Equals("101060100010400")) { } else if (typeCode.Equals("101060100010500")) { externFieldsJObject.Add("sdxmdm", detailRow["sdxmdm"] + ""); } incomeDataJObject.Add("externFields", externFieldsJObject); incomeDataListJArry.Add(incomeDataJObject); } bizDataJObject.Add("incomeTypeCode", typeCode); bizDataJObject.Add("incomeDataList", incomeDataListJArry); bizDataListJArry.Add(bizDataJObject); } pmsJObject.Add("bizDataList", bizDataListJArry); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("同步收入", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 生成批次信息 /// /// /// /// public static string GetBatch(out string resultRead, string nsrlxdm, string incomeTypeCode, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/gen/batch"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("ysyf", mainRow["ysyf"] + ""); pmsJObject.Add("nsrlxdm", nsrlxdm); pmsJObject.Add("incomeTypeCode", incomeTypeCode); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 计算税款 /// /// /// /// /// public static string GetCompute(out string resultRead, string nsrlxdm, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/compute"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("operator", mainRow["operator"] + ""); pmsJObject.Add("skssqQ", mainRow["skssqQ"] + ""); pmsJObject.Add("skssqZ", mainRow["skssqZ"] + ""); pmsJObject.Add("incomeTypeCode", mainRow["incomeTypeCode"] + ""); pmsJObject.Add("nsrlxDm", nsrlxdm); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("计算税款", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 获取计算结果 /// /// /// /// /// public static string GetResult(out string resultRead, string nsrlxdm, out string resultMsg) { string code = "-9999"; resultRead = ""; resultMsg = ""; try { string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/compute/query"; HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8); Dictionary headerDic = new Dictionary(); DateTime utcNow = DateTime.UtcNow; string date = utcNow.ToString("r", CultureInfo.InvariantCulture); string host = "api.baiwangjs.com"; string x_htjs_nonce = Guid.NewGuid().ToString().ToLower(); string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0"; headerDic.Add("Date", DateTime.UtcNow.ToString()); headerDic.Add("host", host); headerDic.Add("x-htjs-nonce", x_htjs_nonce); headerDic.Add("x-htjs-ua", x_htjs_ua); headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}"); JObject pmsJObject = new JObject(); pmsJObject.Add("qysh", mainRow["qysh"] + ""); pmsJObject.Add("skssqQ", mainRow["skssqQ"] + ""); pmsJObject.Add("skssqZ", mainRow["skssqZ"] + ""); pmsJObject.Add("nsrlxDm", nsrlxdm); HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST); resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd(); WriteLogInfo("获取税款计算结果", JsonConvert.SerializeObject(pmsJObject), resultRead); if (webResponse != null && !string.IsNullOrEmpty(resultRead)) { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead); code = resultJObject["code"] + ""; resultMsg = resultJObject["msg"] + ""; } } catch (Exception) { throw; } return code; } /// /// 获取Authorization /// public static string GetAuthorization(string date, string host, string x_htjs_nonce, string x_htjs_ua) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("POST /v2/cloud/queryUniqueSign HTTP/1.1"); stringBuilder.AppendLine($"date: {date}"); stringBuilder.AppendLine($"host: {host}"); stringBuilder.AppendLine($"x-htjs-nonce: {x_htjs_nonce}"); stringBuilder.AppendLine($"x-htjs-ua: {x_htjs_ua}"); string value = $"hmac username=\"{GetHmacSha256("", "")}\", algorithm=\"hmac-sha256\", headers=\"request-line date host x-htjs-nonce x-htjs-ua\", signature=\"{GetHmacSha256("", stringBuilder.ToString())}\""; return value; } /// /// 获取HmacSha256 /// /// /// /// public static string GetHmacSha256(string key, string value) { string rtnValue = ""; byte[] keyBytes = Encoding.UTF8.GetBytes(key); byte[] valueBytes = Encoding.UTF8.GetBytes(value); using (var hmacsha256 = new HMACSHA256(keyBytes)) { byte[] hashValue = hmacsha256.ComputeHash(valueBytes); rtnValue = Convert.ToBase64String(hashValue); } return rtnValue; } /// /// MD5加密 /// /// /// public static string GetMD5Hash(string input) { if (string.IsNullOrEmpty(input)) { return string.Empty; } using (MD5 md5 = MD5.Create()) { byte[] inputBytes = Encoding.UTF8.GetBytes(input); byte[] hashBytes = md5.ComputeHash(inputBytes); StringBuilder sb = new StringBuilder(); for (int i = 0; i < hashBytes.Length; i++) { sb.Append(hashBytes[i].ToString("x2")); } return sb.ToString(); } } /// /// 修改表结构 /// /// /// /// public static bool AlterTable(string tableName, string colName, string colType) { bool isResult; try { if (!BaseImpl.HasExistsColumn(tableName, colName)) { SqlHelper.ExecuteNonQuery(string.Format("alter table {0} add {1} {2}", tableName, colName, colType)); } isResult = true; } catch (Exception) { isResult = false; } return isResult; } /// /// 判断表是否存在 /// public static void EssentialTabExists() { string sql = @"IF OBJECT_ID(N'[dbo].[p_EssentialLogTab]', N'U') IS NULL BEGIN CREATE TABLE [dbo].[p_EssentialLogTab] ( [Id] INT IDENTITY(1,1) NOT NULL, [title] NVARCHAR(255) NULL, [data] NVARCHAR(MAX) NULL, [datetime] DATETIME NOT NULL DEFAULT(GETDATE()), [rtnmsg] NVARCHAR(MAX) NULL, CONSTRAINT [PK_p_EssentialLogTab] PRIMARY KEY CLUSTERED ([Id] ASC) ); END"; SqlHelper.ExecuteNonQuery(sql); } /// /// 写入日志信息 /// public static void WriteLogInfo(string title, string data, string rtnmsg) { try { string sql = @" INSERT INTO [dbo].[p_EssentialLogTab] ( [title], [data], [rtnmsg] ) VALUES ( @title, @data, @rtnmsg );"; SqlParameter[] parameters = { new SqlParameter("@title", SqlDbType.NVarChar, 255) { Value = title }, new SqlParameter("@data", SqlDbType.NVarChar, -1) { Value = data.Replace("'","''") }, new SqlParameter("@rtnmsg", SqlDbType.NVarChar, -1) { Value = rtnmsg.Replace("'","''") } }; SqlHelper.ExecuteNonQuery(CommandType.Text, sql, parameters); } catch (Exception) { } } } }