InvokeHelper.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577
  1. /******************************************************************************
  2. * 文件名称: InvokeHelper.cs
  3. * 文件说明: 调用助手,调用方法的封装
  4. * 当前版本: V1.0
  5. * 创建日期: 2022-04-12
  6. *
  7. * 2020-04-12: 增加 businessDLLInvoke 方法
  8. * 2020-04-12: 增加 writeLog 方法
  9. * 2020-04-14: 增加 businessDLLInvoke(重载) 方法
  10. * 2020-04-14: 增加 irisServiceInvoke 方法
  11. ******************************************************************************/
  12. using Newtonsoft.Json.Linq;
  13. using Newtonsoft.Json;
  14. using System;
  15. using System.Collections.Generic;
  16. using System.IO;
  17. using System.Linq;
  18. using System.Net;
  19. using System.Text;
  20. using System.Threading.Tasks;
  21. using System.Windows.Forms;
  22. using PTMedicalInsurance.Helper;
  23. using PTMedicalInsurance.Common;
  24. using PTMedicalInsurance.Variables;
  25. using System.Runtime.InteropServices;
  26. namespace PTMedicalInsurance.Helper
  27. {
  28. class InvokeHelper
  29. {
  30. private string serviceURL;
  31. private string authorization;
  32. /// <summary>
  33. /// iris服务调用的封装
  34. /// </summary>
  35. /// <param name="data"></param>
  36. /// <returns></returns>
  37. public JObject invokeIrisService(string data, string serviceDesc)
  38. {
  39. string rtn = "", url = "";
  40. JObject joRtn = new JObject();
  41. try
  42. {
  43. //先根据用户请求的uri构造请求地址
  44. url = serviceURL;
  45. ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
  46. ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
  47. //创建Web访问对象
  48. HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
  49. //把用户传过来的数据转成“UTF-8”的字节流
  50. byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);
  51. //添加头部信息
  52. myRequest.Method = "POST";
  53. myRequest.ContentLength = buf.Length;
  54. myRequest.ContentType = "application/json";
  55. myRequest.Headers.Add("Authorization", authorization);
  56. myRequest.MaximumAutomaticRedirections = 1;
  57. myRequest.AllowAutoRedirect = true;
  58. //发送请求
  59. Stream stream = myRequest.GetRequestStream();
  60. stream.Write(buf, 0, buf.Length);
  61. stream.Close();
  62. //获取接口返回值
  63. //通过Web访问对象获取响应内容
  64. HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
  65. //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
  66. StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
  67. //string rtn = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
  68. rtn = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
  69. reader.Close();
  70. myResponse.Close();
  71. joRtn = JObject.Parse(rtn);
  72. return joRtn;
  73. }
  74. catch (Exception ex)
  75. {
  76. joRtn = JsonHelper.setExceptionJson(-1, serviceDesc, ex.Message);
  77. rtn = JsonConvert.SerializeObject(joRtn);
  78. return joRtn;
  79. }
  80. }
  81. /// <summary>
  82. /// HIS服务调用的封装
  83. /// </summary>
  84. /// <param name="data"></param>
  85. /// <returns></returns>
  86. public JObject invokeHISService(string data, string serviceDesc)
  87. {
  88. JObject joRtn = new JObject();
  89. try
  90. {
  91. //先根据用户请求的uri构造请求地址
  92. serviceURL = string.Format("{0}/{1}", Global.hisConfig.ip, Global.hisConfig.url);
  93. authorization = Global.hisConfig.authorization;
  94. joRtn = invokeIrisService(data, serviceDesc);
  95. return joRtn;
  96. }
  97. catch (Exception ex)
  98. {
  99. joRtn = JsonHelper.setExceptionJson(-1, serviceDesc, ex.Message);
  100. return joRtn;
  101. }
  102. finally
  103. {
  104. Global.writeLog_Iris(serviceDesc + "(" + serviceURL + ")" + "Authorization:" + (authorization), JsonHelper.Compress(data), JsonHelper.Compress(joRtn));
  105. }
  106. }
  107. /// <summary>
  108. /// 医保平台服务调用的封装
  109. /// </summary>
  110. /// <param name="data"></param>
  111. /// <returns></returns>
  112. public JObject invokeInsuService(string data, string serviceDesc)
  113. {
  114. string rtn = "";
  115. JObject joRtn = new JObject();
  116. try
  117. {
  118. //先根据用户请求的uri构造请求地址
  119. serviceURL = string.Format("{0}/{1}", Global.insuConfig.ip, Global.insuConfig.url);
  120. authorization = Global.insuConfig.authorization;
  121. joRtn = invokeIrisService(data, serviceDesc);
  122. rtn = JsonConvert.SerializeObject(joRtn);
  123. //if (serviceDesc == "插入签到信息")
  124. //{
  125. // MessageBox.Show("插入签到信息入参:" + data +"|返回值:"+ rtn.ToString()+"|"+ Global.insuConfig.url);
  126. //}
  127. return joRtn;
  128. }
  129. catch (Exception ex)
  130. {
  131. joRtn = JsonHelper.setExceptionJson(-1, serviceDesc, ex.Message);
  132. rtn = JsonConvert.SerializeObject(joRtn);
  133. return joRtn;
  134. }
  135. finally
  136. {
  137. Global.writeLog_Iris(serviceDesc + "(" + serviceURL + ")" + "Authorization:" + (authorization), JsonHelper.Compress(data), rtn);
  138. }
  139. }
  140. /// <summary>
  141. /// 医保中心Post服务调用封装
  142. /// </summary>
  143. /// <param name="data"></param>
  144. /// <returns></returns>
  145. private JObject invokeCenterService(string data)
  146. {
  147. string postContent = "";
  148. JObject joRtn = new JObject();
  149. try
  150. {
  151. //创建一个HTTP请求
  152. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Global.curEvt.URL);
  153. //Post请求方式
  154. request.Method = "POST";
  155. //内容类型
  156. request.ContentType = "application/json";
  157. request.Headers.Add("apikey", "fa8kQMIF6LB0D7c6UGQoZc6TCcZO2G6O");
  158. request.Accept = "text/html, application/xhtml+xml, */*";
  159. //昆明增加头部信息
  160. /*
  161. string nonce = Guid.NewGuid().ToString(); //非重复的随机字符串(十分钟内不能重复)
  162. string timestamp = TimeStamp.get13().ToString(); //当前时间戳(秒)
  163. string BusinessID = Global.inf.BusinessID; //服务商ID
  164. string InsuHosID = Global.inf.hospitalNO; //医疗机构ID
  165. string CreditID = Global.inf.CreditID; //服务商统一社会信用代码
  166. string sTemp = timestamp + BusinessID + nonce;
  167. //Sha256 加密生成的签名 signature = sha256(hsf_timestamp + infosyssign + hsf_nonce)
  168. string signature = Encrypt.SHA256EncryptStr(sTemp);
  169. request.Headers.Add("hsf_signature", signature);
  170. request.Headers.Add("hsf_timestamp", timestamp);
  171. request.Headers.Add("hsf_nonce", nonce);
  172. request.Headers.Add("fixmedins_code", InsuHosID);
  173. request.Headers.Add("infosyscode", CreditID);
  174. */
  175. //设置参数,并进行URL编码
  176. string paraUrlCoded = data;//System.Web.HttpUtility.UrlEncode(jsonParas);
  177. byte[] payload;
  178. //将Json字符串转化为字节
  179. payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
  180. //设置请求的ContentLength
  181. request.ContentLength = payload.Length;
  182. //发送请求,获得请求流
  183. Stream writer;
  184. writer = request.GetRequestStream();//获取用于写入请求数据的Stream对象
  185. //将请求参数写入流
  186. writer.Write(payload, 0, payload.Length);
  187. writer.Close();//关闭请求流
  188. // String strValue = "";//strValue为http响应所返回的字符流
  189. HttpWebResponse response;
  190. try
  191. {
  192. //获得响应流
  193. response = (HttpWebResponse)request.GetResponse();
  194. }
  195. catch (WebException ex)
  196. {
  197. response = ex.Response as HttpWebResponse;
  198. return JsonHelper.setExceptionJson(-99, "centerServeiceInvok中获得响应流异常", ex.Message);
  199. }
  200. Stream s = response.GetResponseStream();
  201. StreamReader sRead = new StreamReader(s);
  202. postContent = sRead.ReadToEnd();
  203. sRead.Close();
  204. joRtn = JObject.Parse(postContent);//返回Json数据
  205. return joRtn;
  206. }
  207. catch (Exception ex)
  208. {
  209. postContent = "调用中心服务异常" + ex.Message;
  210. joRtn.Add("infcode", -1);
  211. joRtn.Add("err_msg", "invokeCenterService(1):" + ex.Message);
  212. return joRtn;
  213. }
  214. }
  215. /// <summary>
  216. /// 医保中心Post服务调用封装-电子发票上传
  217. /// </summary>
  218. /// <param name="data"></param>
  219. /// <returns></returns>
  220. private JObject invokeCenterService_InvNO(string data)
  221. {
  222. string postContent = "";
  223. JObject joRtn = new JObject();
  224. try
  225. {
  226. //创建一个HTTP请求
  227. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Global.curEvt.URL);
  228. //Post请求方式
  229. request.Method = "POST";
  230. //内容类型
  231. request.ContentType = "application/json";
  232. request.Headers.Add("apikey", "A552AEF47ED54A739C464EE61979BF50");
  233. request.Accept = "text/html, application/xhtml+xml, */*";
  234. //昆明增加头部信息
  235. /*
  236. string nonce = Guid.NewGuid().ToString(); //非重复的随机字符串(十分钟内不能重复)
  237. string timestamp = TimeStamp.get13().ToString(); //当前时间戳(秒)
  238. string BusinessID = Global.inf.BusinessID; //服务商ID
  239. string InsuHosID = Global.inf.hospitalNO; //医疗机构ID
  240. string CreditID = Global.inf.CreditID; //服务商统一社会信用代码
  241. string sTemp = timestamp + BusinessID + nonce;
  242. //Sha256 加密生成的签名 signature = sha256(hsf_timestamp + infosyssign + hsf_nonce)
  243. string signature = Encrypt.SHA256EncryptStr(sTemp);
  244. request.Headers.Add("hsf_signature", signature);
  245. request.Headers.Add("hsf_timestamp", timestamp);
  246. request.Headers.Add("hsf_nonce", nonce);
  247. request.Headers.Add("fixmedins_code", InsuHosID);
  248. request.Headers.Add("infosyscode", CreditID);
  249. */
  250. //设置参数,并进行URL编码
  251. string paraUrlCoded = data;//System.Web.HttpUtility.UrlEncode(jsonParas);
  252. byte[] payload;
  253. //将Json字符串转化为字节
  254. payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
  255. //设置请求的ContentLength
  256. request.ContentLength = payload.Length;
  257. //发送请求,获得请求流
  258. Stream writer;
  259. writer = request.GetRequestStream();//获取用于写入请求数据的Stream对象
  260. //将请求参数写入流
  261. writer.Write(payload, 0, payload.Length);
  262. writer.Close();//关闭请求流
  263. // String strValue = "";//strValue为http响应所返回的字符流
  264. HttpWebResponse response;
  265. try
  266. {
  267. //获得响应流
  268. response = (HttpWebResponse)request.GetResponse();
  269. }
  270. catch (WebException ex)
  271. {
  272. response = ex.Response as HttpWebResponse;
  273. return JsonHelper.setExceptionJson(-99, "invokeCenterService_InvNO中获得响应流异常", ex.Message);
  274. }
  275. Stream s = response.GetResponseStream();
  276. StreamReader sRead = new StreamReader(s);
  277. postContent = sRead.ReadToEnd();
  278. sRead.Close();
  279. joRtn = JObject.Parse(postContent);//返回Json数据
  280. return joRtn;
  281. }
  282. catch (Exception ex)
  283. {
  284. postContent = "调用中心服务异常" + ex.Message;
  285. joRtn.Add("RET_CODE", -1);
  286. joRtn.Add("RET_MSG", "invokeCenterService_InvNO:" + ex.Message);
  287. return joRtn;
  288. }
  289. }
  290. /// <summary>
  291. /// 这个是调用业务服务的invokeCenterService
  292. /// </summary>
  293. /// <param name="funNO"></param>
  294. /// <param name="data"></param>
  295. /// <returns></returns>
  296. public JObject invokeCenterService(string funNO, JObject data)
  297. {
  298. JObject joRtn = new JObject();
  299. string outPar = "";
  300. int iInt = 0;
  301. try
  302. {
  303. Global.curEvt.URL = Global.inf.centerURL;
  304. joRtn = invokeCenterService(data.ToString());
  305. outPar = JsonHelper.Compress(joRtn);
  306. return joRtn;
  307. }
  308. catch (Exception ex)
  309. {
  310. if (joRtn["infcode"] == null)
  311. { joRtn.Add("infcode", -1); }
  312. if (joRtn["err_msg"] == null)
  313. { joRtn.Add("err_msg", "invokeCenterService(2):" + ex.Message); }
  314. outPar = JsonHelper.Compress(joRtn);
  315. return joRtn;
  316. }
  317. finally
  318. {
  319. Global.writeLog(funNO + "(" + Global.curEvt.URL + ")", JsonHelper.Compress(data), joRtn.ToString());
  320. this.saveCenterLog(JsonHelper.Compress(data), outPar, JsonHelper.Compress(data), outPar);
  321. }
  322. }
  323. /// <summary>
  324. /// 这个是下载目录用的invokeCenterService
  325. /// </summary>
  326. /// <param name="funNO"></param>
  327. /// <param name="data"></param>
  328. /// <returns></returns>
  329. public JObject invokeCenterService(string funNO, string data)
  330. {
  331. JObject joRtn = new JObject();
  332. string outPar = "";
  333. try
  334. {
  335. Global.curEvt.URL = Global.inf.centerURL;
  336. joRtn = invokeCenterService(data);
  337. outPar = JsonHelper.Compress(joRtn);
  338. return joRtn;
  339. }
  340. catch (Exception ex)
  341. {
  342. if (joRtn["infcode"] == null)
  343. { joRtn.Add("infcode", -1); }
  344. if (joRtn["err_msg"] == null)
  345. { joRtn.Add("err_msg", "invokeCenterService(3):" + ex.Message); }
  346. outPar = JsonHelper.Compress(joRtn);
  347. return joRtn;
  348. }
  349. finally
  350. {
  351. Global.writeLog(funNO + "(" + Global.curEvt.URL + ")", JsonHelper.Compress(data), joRtn.ToString());
  352. this.saveCenterLog(JsonHelper.Compress(data), outPar, JsonHelper.Compress(data), outPar);
  353. }
  354. }
  355. /// <summary>
  356. /// 电子发票上传接口调用
  357. /// </summary>
  358. /// <param name="funNO"></param>
  359. /// <param name="data"></param>
  360. /// <returns></returns>
  361. public JObject invokeCenterService_InvNO(string funNO, string data)
  362. {
  363. JObject joRtn = new JObject();
  364. string outPar = "";
  365. try
  366. {
  367. Global.curEvt.URL = "http://10.12.1.18:17201/ybCommService/v1/func"; //10.12.1.18 http://210.75.200.74:17201/ybCommService/v1/func
  368. joRtn = invokeCenterService_InvNO(data);
  369. outPar = JsonHelper.Compress(joRtn);
  370. return joRtn;
  371. }
  372. catch (Exception ex)
  373. {
  374. if (joRtn["RET_CODE"] == null)
  375. { joRtn.Add("RET_CODE", -1); }
  376. if (joRtn["RET_MSG"] == null)
  377. { joRtn.Add("RET_MSG", "invokeCenterService_InvNO:" + ex.Message); }
  378. outPar = JsonHelper.Compress(joRtn);
  379. return joRtn;
  380. }
  381. finally
  382. {
  383. Global.writeLog(funNO + "(" + Global.curEvt.URL + ")", JsonHelper.Compress(data), joRtn.ToString());
  384. this.saveCenterLog(JsonHelper.Compress(data), outPar, JsonHelper.Compress(data), outPar);
  385. }
  386. }
  387. /// <summary>
  388. /// 医保目录txt文件下载
  389. /// </summary>
  390. /// <param name="data"></param>
  391. /// <returns></returns>
  392. public JObject DownloadCenterFile(string data)
  393. {
  394. string error = string.Empty; int errorCode = 0;
  395. string sRtn = "";
  396. try
  397. {
  398. JObject jsonInParam = JObject.Parse(data);
  399. string fileName = (string)jsonInParam["input"]["fsDownloadIn"]["filename"];
  400. string filePath = Global.curEvt.path + "\\Download\\" + fileName;
  401. //MessageBox.Show("9102下载文件入参:"+jsonInParam.ToString());
  402. //如果不存在目录,则创建目录
  403. if (!Directory.Exists(Global.curEvt.path + "\\Download"))
  404. {
  405. //创建文件夹
  406. DirectoryInfo dirInfo = Directory.CreateDirectory(Global.curEvt.path + "\\Download");
  407. }
  408. if (File.Exists(filePath))
  409. {
  410. File.Delete(filePath);
  411. }
  412. FileStream fs = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
  413. //创建一个HTTP请求
  414. //Global.curEvt.URL = Global.inf.centerURL + "/hsa-fsi-9102";
  415. Global.curEvt.URL = Global.inf.centerURL;
  416. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Global.curEvt.URL);
  417. //Post请求方式
  418. request.Method = "POST";
  419. //内容类型
  420. request.ContentType = "application/json";
  421. request.Headers.Add("apikey", "fa8kQMIF6LB0D7c6UGQoZc6TCcZO2G6O");
  422. request.Accept = "text/html, application/xhtml+xml, */*";
  423. /*
  424. //昆明增加头部信息
  425. string timestamp = TimeStamp.get13().ToString(); //当前时间戳(秒)
  426. string nonce = Guid.NewGuid().ToString(); //非重复的随机字符串(十分钟内不能重复)
  427. string InsuHosID = Global.inf.hospitalNO; //医疗机构ID
  428. string CreditID = Global.inf.CreditID; //服务商统一社会信用代码
  429. string BusinessID = Global.inf.BusinessID; //服务商ID
  430. string sTemp = timestamp + BusinessID + nonce;
  431. //Sha256 加密生成的签名 signature = sha256(hsf_timestamp + infosyssign + hsf_nonce)
  432. string signature = Encrypt.SHA256EncryptStr(sTemp);
  433. request.Headers.Add("hsf_signature", signature);
  434. request.Headers.Add("hsf_timestamp", timestamp);
  435. request.Headers.Add("hsf_nonce", nonce);
  436. request.Headers.Add("fixmedins_code", InsuHosID);
  437. request.Headers.Add("infosyscode", CreditID);
  438. */
  439. //设置参数,并进行URL编码
  440. string paraUrlCoded = data;//System.Web.HttpUtility.UrlEncode(jsonParas);
  441. byte[] payload;
  442. //将Json字符串转化为字节
  443. payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
  444. //设置请求的ContentLength
  445. request.ContentLength = payload.Length;
  446. Stream writer;
  447. try
  448. {
  449. writer = request.GetRequestStream();//获取用于写入请求数据的Stream对象
  450. }
  451. catch (Exception)
  452. {
  453. writer = null;
  454. errorCode = -100;
  455. error = "连接服务器失败!";
  456. }
  457. //将请求参数写入流
  458. writer.Write(payload, 0, payload.Length);
  459. writer.Close();//关闭请求流
  460. // String strValue = "";//strValue为http响应所返回的字符流
  461. //发送请求并获取相应回应数据
  462. HttpWebResponse response = request.GetResponse() as HttpWebResponse;
  463. //直到request.GetResponse()程序才开始向目标网页发送Post请求
  464. Stream responseStream = response.GetResponseStream();
  465. //创建本地文件写入流
  466. byte[] bArr = new byte[1024];
  467. int iTotalSize = 0;
  468. int size = responseStream.Read(bArr, 0, (int)bArr.Length);
  469. while (size > 0)
  470. {
  471. iTotalSize += size;
  472. fs.Write(bArr, 0, size);
  473. size = responseStream.Read(bArr, 0, (int)bArr.Length);
  474. }
  475. fs.Close();
  476. responseStream.Close();
  477. dynamic joReturn = new JObject();
  478. joReturn.errorCode = errorCode;
  479. joReturn.errorMessage = error;
  480. joReturn.filePath = filePath;
  481. sRtn = joReturn.ToString();
  482. return joReturn;
  483. }
  484. catch (Exception ex)
  485. {
  486. errorCode = -100;
  487. error = ex.Message;
  488. dynamic joReturn = new JObject();
  489. joReturn.errorCode = errorCode;
  490. joReturn.errorMessage = error;
  491. sRtn = joReturn.ToString();
  492. return joReturn;
  493. }
  494. finally
  495. {
  496. Global.writeLog("DownloadCenterFile" +"(" + Global.curEvt.URL + ")", data, sRtn);
  497. }
  498. }
  499. /// <summary>
  500. /// 保存中心交易日志到数据库
  501. /// </summary>
  502. /// <param name="inParam"></param>
  503. /// <param name="outParam"></param>
  504. /// <param name="inParamPlain"></param>
  505. /// <param name="outParamPlain"></param>
  506. private void saveCenterLog(string inParam, string outParam, string inParamPlain, string outParamPlain)
  507. {
  508. dynamic joIris = new JObject();
  509. string sRtn = "";
  510. try
  511. {
  512. //解析postContent,插入医保交易日志表
  513. JObject joIn = new JObject(JObject.Parse(inParam));
  514. JObject joOut = new JObject(JObject.Parse(outParam));
  515. JObject joInPlain = new JObject(JObject.Parse(inParamPlain));
  516. JObject joOutPlain = new JObject(JObject.Parse(outParamPlain));
  517. JArray jaParams = new JArray();
  518. JObject joParam = new JObject();
  519. joParam.Add("inParam", JObject.FromObject(joIn));
  520. joParam.Add("outParam", JObject.FromObject(joOut));
  521. joParam.Add("inParamPlain", JObject.FromObject(joInPlain));
  522. joParam.Add("outParamPlain", JObject.FromObject(joOutPlain));
  523. joParam.Add("HospitalDr", Global.inf.hospitalDr);
  524. joParam.Add("InterfaceDr", Global.inf.interfaceDr);
  525. joParam.Add("updateUserID", Global.user.ID);
  526. joParam.Add("psn_no", Global.pat.psn_no);
  527. jaParams.Add(joParam);
  528. joIris.code = "09010021";
  529. joIris.Add("params", jaParams);
  530. //InvokeHelper invoker = new InvokeHelper();
  531. sRtn = invokeInsuService(joIris.ToString(), "保存日志到数据库").ToString();
  532. }
  533. catch (Exception ex)
  534. {
  535. sRtn = JsonHelper.setExceptionJson(-100, "保存日志异常", ex.Message).ToString();
  536. Global.writeLog_Iris("保存日志异常:" + sRtn.ToString());
  537. }
  538. }
  539. }
  540. }