PowersiMiPayPlugin.java 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. //package thyyxxk.wxservice_server.controller.api;
  2. //
  3. //import com.alibaba.fastjson.JSONArray;
  4. //import com.alibaba.fastjson.JSONObject;
  5. //import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. //import lombok.extern.slf4j.Slf4j;
  7. //import org.springframework.beans.factory.annotation.Autowired;
  8. //import org.springframework.http.HttpEntity;
  9. //import org.springframework.http.HttpHeaders;
  10. //import org.springframework.http.MediaType;
  11. //import org.springframework.web.bind.annotation.*;
  12. //import org.springframework.web.client.RestTemplate;
  13. //import thyyxxk.wxservice_server.config.auth.PassToken;
  14. //import thyyxxk.wxservice_server.config.exception.ExceptionEnum;
  15. //import thyyxxk.wxservice_server.config.properties.ApiAddr;
  16. //import thyyxxk.wxservice_server.dao.api.PowersiPluginDao;
  17. //import thyyxxk.wxservice_server.entity.ResultVo;
  18. //import thyyxxk.wxservice_server.entity.assessment.PushQuestionnaireVisit;
  19. //import thyyxxk.wxservice_server.entity.medinsmobilepay.InsuinfoRequest;
  20. //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.OrdState;
  21. //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.CommonRequest;
  22. //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.OrderQueryRequest;
  23. //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.PowersiMipSetlinfo;
  24. //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.RevokeSettleRequest;
  25. //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.BillInfo;
  26. //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.CommonResponse;
  27. //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.Upload6201;
  28. //import thyyxxk.wxservice_server.factory.thmz.ThmzService;
  29. //import thyyxxk.wxservice_server.factory.thmz.model.QueryReceiptRequest;
  30. //import thyyxxk.wxservice_server.factory.thmz.model.SaveMzPayRequest;
  31. //import thyyxxk.wxservice_server.service.IdCardAnalyzeService;
  32. //import thyyxxk.wxservice_server.service.PushWxMessageService;
  33. //import thyyxxk.wxservice_server.utils.*;
  34. //import thyyxxk.wxservice_server.utils.mip.DataHandler;
  35. //
  36. //import java.io.IOException;
  37. //import java.math.BigDecimal;
  38. //import java.util.*;
  39. //
  40. //@Slf4j
  41. //@RestController
  42. //@RequestMapping("/api/mobilePayPlugin")
  43. //public class PowersiMiPayPlugin {
  44. // private final PowersiPluginDao dao;
  45. // private final IdCardAnalyzeService idCardAnalyzeService;
  46. // private final ThmzService thmzService;
  47. // private final PushWxMessageService messageService;
  48. // private final RestTemplate template;
  49. // private final String hisMipApi;
  50. //
  51. // private final DataHandler dataHandler = DataHandler.newInstance();
  52. //
  53. // @Autowired
  54. // public PowersiMiPayPlugin(PowersiPluginDao dao, IdCardAnalyzeService idCardAnalyzeService, ThmzService thmzService, PushWxMessageService messageService, RestTemplate template, ApiAddr apiAddr) throws IOException {
  55. // this.dao = dao;
  56. // this.idCardAnalyzeService = idCardAnalyzeService;
  57. // this.thmzService = thmzService;
  58. // this.messageService = messageService;
  59. // this.template = template;
  60. // this.hisMipApi = apiAddr.getHisMipApi();
  61. // }
  62. //
  63. // @PostMapping("/lockOrder")
  64. // public ResultVo<String> lockOrder(@RequestBody InsuinfoRequest request) {
  65. // String openid = TokenUtil.getInstance().getUserOpenid();
  66. // dao.lockOrder(request.getHisOrdNum(), openid,1);
  67. // return ResultVoUtil.success(openid);
  68. // }
  69. //
  70. // @PostMapping("/lockYbOrder")
  71. // public ResultVo<String> lockYbOrder(@RequestBody InsuinfoRequest request) {
  72. // String openid = TokenUtil.getInstance().getUserOpenid();
  73. // dao.lockYbOrder(request.getHisOrdNum(), openid,1);
  74. // return ResultVoUtil.success(openid);
  75. // }
  76. //
  77. // @PostMapping("/unlockOrder")
  78. // public ResultVo<String> unlockOrder(@RequestBody InsuinfoRequest request) {
  79. // dao.unlockOrder(request.getHisOrdNum(), null);
  80. // return ResultVoUtil.success("操作成功。");
  81. // }
  82. //
  83. // private JSONObject decryptRequest(JSONObject body) throws Exception {
  84. // body.put("code", 0);
  85. // JSONObject decrypt = dataHandler.processRspData(body.toJSONString());
  86. // return decrypt.getJSONObject("data");
  87. // }
  88. //
  89. // @PassToken
  90. // @PostMapping("/patientInquiry")
  91. // public CommonResponse patientInquiry(@RequestBody JSONObject body) throws Exception {
  92. // JSONObject request = decryptRequest(body);
  93. // List<String> patNos = dao.selectPatientCount(request.getString("idNo"));
  94. // if (patNos.isEmpty()) {
  95. // return new CommonResponse("未查询到建档信息。");
  96. // }
  97. // return new CommonResponse();
  98. // }
  99. //
  100. // @PassToken
  101. // @PostMapping("/patientCreate")
  102. // public CommonResponse patientCreate(@RequestBody JSONObject body) throws Exception {
  103. // JSONObject request = decryptRequest(body);
  104. // return idCardAnalyzeService.createCardFromPowersiPlugin(request);
  105. // }
  106. //
  107. // @PassToken
  108. // @PostMapping("/billListInquiry")
  109. // public JSONObject billListInquiry(@RequestBody JSONObject body) throws Exception {
  110. // JSONObject request = decryptRequest(body);
  111. // List<String> patNoList = dao.selectPatientCount(request.getString("idNo"));
  112. // if (patNoList.isEmpty()) {
  113. // JSONObject res = new JSONObject();
  114. // res.put("code", -1);
  115. // res.put("success", false);
  116. // res.put("message", "没有患者的建档信息。");
  117. // return res;
  118. // }
  119. // List<BillInfo> list = new ArrayList<>();
  120. // for (String patNo : patNoList) {
  121. // QueryReceiptRequest receiptRequest =
  122. // QueryReceiptRequest.builder().patCardNo(patNo).build();
  123. // ResultVo<List<Map<String, Object>>> vo =
  124. // thmzService.getMzChargeDetailForUnPaid(receiptRequest);
  125. // if (vo.getCode() != ExceptionEnum.SUCCESS.getCode()) {
  126. // continue;
  127. // }
  128. // List<Map<String, Object>> feeList = vo.getData();
  129. // for (Map<String, Object> billItem : feeList) {
  130. // BillInfo billInfo = new BillInfo(billItem);
  131. // if (billInfo.getVipFlag() != 0) {
  132. // continue;
  133. // }
  134. // billInfo.setIdNo(request.getString("idNo"));
  135. // billInfo.setIdType(request.getString("idType"));
  136. // billInfo.setDeptId(dao.selectDeptId(billInfo.getDeptName()));
  137. // list.add(billInfo);
  138. // }
  139. // }
  140. // if (list.isEmpty()) {
  141. // JSONObject res = new JSONObject();
  142. // res.put("code", -1);
  143. // res.put("success", false);
  144. // res.put("message", "没有患者的待缴费信息。");
  145. // return res;
  146. // }
  147. // String listRef = JSONArray.toJSONString(list);
  148. // JSONObject temp = new JSONObject();
  149. // temp.put("billInfo", JSONArray.parseArray(listRef));
  150. // String raw = dataHandler.buildReqData(temp);
  151. // JSONObject response = JSONObject.parseObject(raw);
  152. // response.put("code", 0);
  153. // response.put("success", true);
  154. // response.put("message", "OK");
  155. // return response;
  156. // }
  157. //
  158. // @PassToken
  159. // @PostMapping("/billDetailInquiry")
  160. // public JSONObject billDetailInquiry(@RequestBody JSONObject body) throws Exception {
  161. // JSONObject request = decryptRequest(body);
  162. // String bizId = request.getString("bizId");
  163. // bizId = null == bizId ? "" : bizId;
  164. // String[] arr = bizId.split("_");
  165. // if (arr.length != 3) {
  166. // JSONObject res = new JSONObject();
  167. // res.put("code", -1);
  168. // res.put("success", false);
  169. // res.put("message", "bizId[" + bizId + "]不正确!");
  170. // return res;
  171. // }
  172. //
  173. // request.put("patNo", arr[0]);
  174. // request.put("times", Integer.parseInt(arr[1]));
  175. // Upload6201 upload6201 = template.postForObject(hisMipApi + "/getUpload6201", request, Upload6201.class);
  176. // if (null == upload6201) {
  177. // JSONObject res = new JSONObject();
  178. // res.put("code", -1);
  179. // res.put("success", false);
  180. // res.put("message", "网络异常,请稍后再试。");
  181. // return res;
  182. // }
  183. // upload6201.setIdNo(request.getString("idNo"));
  184. // upload6201.setIdType(request.getString("idType"));
  185. // upload6201.setUserName(request.getString("userName"));
  186. //
  187. // String raw = dataHandler.buildReqData(JSONObject.toJSONString(upload6201));
  188. // JSONObject response = JSONObject.parseObject(raw);
  189. // response.put("code", 0);
  190. // response.put("success", true);
  191. // response.put("message", "OK");
  192. // return response;
  193. // }
  194. //
  195. // @PassToken
  196. // @PostMapping("/settleNotify")
  197. // public CommonResponse settleNotify(@RequestBody JSONObject body) throws Exception {
  198. // JSONObject request = decryptRequest(body);
  199. // PowersiMipSetlinfo setlinfo = dao.selectById(request.getString("platformOrderId"));
  200. // if (null == setlinfo) {
  201. // setlinfo = JSONObject.parseObject(request.toJSONString(), PowersiMipSetlinfo.class);
  202. // JSONObject hiExtData = request.getJSONObject("hiExtData");
  203. // if (null != hiExtData) {
  204. // JSONObject clrObj = hiExtData.getJSONObject("setlinfo");
  205. // if (null != clrObj) {
  206. // String clrOptins = clrObj.getString("clrOptins");
  207. // String clrType = clrObj.getString("clrType");
  208. // setlinfo.setClrOptins(clrOptins);
  209. // setlinfo.setClrType(clrType);
  210. // }
  211. // }
  212. // int insert = dao.insert(setlinfo);
  213. // if (insert == 1) {
  214. // saveMzOrder(setlinfo);
  215. // return new CommonResponse();
  216. // }
  217. // return new CommonResponse("HIS业务处理失败。");
  218. // }
  219. // if (setlinfo.getMzSaved() == 0) {
  220. // saveMzOrder(setlinfo);
  221. // return new CommonResponse();
  222. // }
  223. // return new CommonResponse();
  224. // }
  225. //
  226. // private void saveMzOrder(PowersiMipSetlinfo setlinfo) {
  227. // SaveMzPayRequest saveMzPayRequest = new SaveMzPayRequest.Builder()
  228. // .payTime(DateUtil.formatDatetime(setlinfo.getTraceTime()))
  229. // .patCardNo(setlinfo.getMedOrgOrd().split("_")[0])
  230. // .agtOrdNum(setlinfo.getThirdOrderId())
  231. // .payAmt(setlinfo.getFeeSumamt())
  232. // .fundpayAmt(setlinfo.getFundPay())
  233. // .acctpayAmt(setlinfo.getPsnAcctPay())
  234. // .couponAmt(BigDecimal.ZERO)
  235. // .cashpayAmt(setlinfo.getOwnpayAmt())
  236. // .hisOrdNum(setlinfo.getMedOrgOrd())
  237. // .psOrdNum(setlinfo.getPlatformOrderId())
  238. // .isNormalClinic(true).build();
  239. // ResultVo<String> res = thmzService.saveMzPay(saveMzPayRequest);
  240. // if (res.getCode() == ExceptionEnum.SUCCESS.getCode()) {
  241. // dao.updateMzSaved(setlinfo.getPlatformOrderId());
  242. // }
  243. // pushMessage(setlinfo.getMedOrgOrd(), setlinfo.getUserName());
  244. // }
  245. //
  246. // private void pushMessage(String hisOrdNum, String userName) {
  247. // String[] arr = hisOrdNum.split("_");
  248. // int times = Integer.parseInt(arr[1]);
  249. // PushQuestionnaireVisit visit = dao.getVisit(arr[0], times, hisOrdNum);
  250. // String visitId = hisOrdNum.replaceAll("_", "AND") + "AND" + visit.getDoctorCode() + "AND" + visit.getDeptCode();
  251. // String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxbde6b16acad84204&redirect_uri=" +
  252. // "https://staticweb.hnthyy.cn/wxserver/redirect/page2?to=doctorGradeByPush_" + visitId +
  253. // "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
  254. //
  255. // String msgContent = "{\"touser\":\"" + visit.getOpenid() + "\",\"data\":" +
  256. // "{\"keyword1\":{\"color\":\"#173177\",\"value\":\"" + userName + "\"}," +
  257. // "\"keyword2\":{\"color\":\"#173177\",\"value\":\"沭阳铭和医院\"}," +
  258. // "\"keyword3\":{\"color\":\"#173177\",\"value\":\"" + visit.getDeptName() + "\"}," +
  259. // "\"keyword4\":{\"color\":\"#173177\",\"value\":\"" + visit.getDoctorName() + "\"}," +
  260. // "\"keyword5\":{\"color\":\"#173177\",\"value\":\"" + visit.getVisitDate() + "\"}," +
  261. // "\"remark\":{\"color\":\"#FF0000\",\"value\":\"特邀请您对医生服务作出评价。\"}," +
  262. // "\"first\":{\"color\":\"#FF0000\",\"value\":\"您曾在我院进行诊疗。\"}}," +
  263. // "\"template_id\":\"G4YAN56RmDjEPpNyP5fpCdr5TghyqspDeWlWaD5Eg2o\"," +
  264. // "\"url\":\"" + url + "\"}";
  265. // JSONObject message = JSONObject.parseObject(msgContent);
  266. // messageService.pushMessage2(message);
  267. // }
  268. //
  269. // @PassToken
  270. // @GetMapping("/isMipOrder")
  271. // public ResultVo<String> isMipOrder(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
  272. // PowersiMipSetlinfo setlinfo = getSetlinfo(hisOrdNum, null);
  273. // if (null == setlinfo) {
  274. // return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
  275. // }
  276. // return ResultVoUtil.success(setlinfo.getPlatformOrderId());
  277. // }
  278. //
  279. // @PassToken
  280. // @GetMapping("/settleQuery")
  281. // public JSONObject settleQuery(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
  282. // String patientId = hisOrdNum.split("_")[0];
  283. // OrderQueryRequest request = dao.getMzPatient(patientId);
  284. // request.setMedOrgOrd(hisOrdNum);
  285. //
  286. // JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(request));
  287. // String body = dataHandler.buildReqData(raw);
  288. // String url = "http://webhis.thyy.cn:8077/powersiMipSettleQuery";
  289. // HttpHeaders headers = new HttpHeaders();
  290. // headers.setContentType(MediaType.APPLICATION_JSON);
  291. // HttpEntity<String> entity = new HttpEntity<>(body, headers);
  292. // String encRes = template.postForObject(url, entity, String.class);
  293. // return dataHandler.processRspData(encRes);
  294. // }
  295. //
  296. // @PassToken
  297. // @PostMapping("/downloadBillData")
  298. // public void powersiMipDownloadBillData() {
  299. //
  300. // }
  301. //
  302. // @PassToken
  303. // @PostMapping("/revokeMipSettle")
  304. // public ResultVo<String> revokeMipSettle(@RequestBody CommonRequest request) throws Exception {
  305. // PowersiMipSetlinfo setlinfo = getRefundableSetl(request.getHisOrdNum());
  306. // if (null == setlinfo) {
  307. // setlinfo = getSetlinfo(request.getHisOrdNum(), OrdState.REFUND_SUCCEED);
  308. // if (null != setlinfo) {
  309. // return ResultVoUtil.success("医保移动支付退款成功");
  310. // }
  311. // return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "没有可以退款的结算交易。");
  312. // }
  313. // Date now = new Date();
  314. // RevokeSettleRequest refd = new RevokeSettleRequest();
  315. // if (StringUtil.notBlank(request.getRefdType())) {
  316. // refd.setRefdType(request.getRefdType());
  317. // }
  318. // refd.setMedOrgOrd(request.getHisOrdNum());
  319. // refd.setMedRefdId(SnowFlakeId.instance().nextId());
  320. // refd.setRefdTime(DateUtil.formatDatetime(now));
  321. // refd.setTotlRefdAmt(setlinfo.getFeeSumamt());
  322. // refd.setPsnAcctRefdAmt(setlinfo.getPsnAcctPay());
  323. // refd.setFundRefdAmt(setlinfo.getFundPay());
  324. // refd.setCashRefdAmt(setlinfo.getOwnpayAmt());
  325. // refd.setRefdReason(request.getRefundReason());
  326. // refd.setEcToken(request.getEcToken());
  327. // refd.setPlatformOrderId(setlinfo.getPlatformOrderId());
  328. // dao.updateMedRedfId(refd.getMedRefdId(), refd.getMedOrgOrd());
  329. // JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(refd));
  330. // String body = dataHandler.buildReqData(raw);
  331. // String url = "http://webhis.thyy.cn:8077/powersiMipRefund";
  332. // HttpHeaders headers = new HttpHeaders();
  333. // headers.setContentType(MediaType.APPLICATION_JSON);
  334. // HttpEntity<String> entity = new HttpEntity<>(body, headers);
  335. // String encRes = template.postForObject(url, entity, String.class);
  336. // JSONObject decRes = dataHandler.processRspData(encRes);
  337. // Integer code = decRes.getInteger("code");
  338. // if (null != code && code == 0) {
  339. // JSONObject data = decRes.getJSONObject("data");
  340. // OrdState state = OrdState.get(data.getString("refStatus"));
  341. // if (null == state) {
  342. // return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
  343. // }
  344. // String refId = data.getString("platformRefdId");
  345. // dao.updateRevokeInfo(request.getStaffId(), now, refId, setlinfo.getMedOrgOrd(), state);
  346. // if (state == OrdState.REFUND_SUCCEED) {
  347. // return ResultVoUtil.success("医保移动支付退款成功");
  348. // }
  349. // if (state == OrdState.REFUND_PROCEEDING) {
  350. // return ResultVoUtil.success("医保移动支付退款进行中,请稍后查询退款结果。");
  351. // }
  352. // if (state == OrdState.REFUND_ABNORMAL) {
  353. // return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保移动支付退款异常,请稍后查询退款结果。");
  354. // }
  355. // return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, data.getString("failMsg"));
  356. // }
  357. // return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, decRes.getString("message"));
  358. // }
  359. //
  360. // private PowersiMipSetlinfo getRefundableSetl(String id) {
  361. // PowersiMipSetlinfo setlinfo = getSetlinfo(id, OrdState.SETTLED);
  362. // if (null == setlinfo) {
  363. // setlinfo = getSetlinfo(id, OrdState.REFUND_FAILED);
  364. // if (null == setlinfo) {
  365. // setlinfo = getSetlinfo(id, OrdState.REFUND_ABNORMAL);
  366. // }
  367. // }
  368. // return setlinfo;
  369. // }
  370. //
  371. // private PowersiMipSetlinfo getSetlinfo(String id, OrdState state) {
  372. // QueryWrapper<PowersiMipSetlinfo> wrapper = new QueryWrapper<>();
  373. // wrapper.eq("med_org_ord", id);
  374. // if (null == state) {
  375. // List<PowersiMipSetlinfo> list = dao.selectList(wrapper);
  376. // if (list == null || list.isEmpty()) {
  377. // return null;
  378. // }
  379. // return list.get(0);
  380. // }
  381. // wrapper.eq("ord_state", state);
  382. // return dao.selectOne(wrapper);
  383. // }
  384. //
  385. // @PassToken
  386. // @GetMapping("/queryRefundState")
  387. // public ResultVo<String> queryRefundState(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
  388. // QueryWrapper<PowersiMipSetlinfo> wrapper = new QueryWrapper<>();
  389. // wrapper.eq("med_org_ord", hisOrdNum);
  390. // PowersiMipSetlinfo setlinfo = dao.selectOne(wrapper);
  391. // if (null == setlinfo) {
  392. // return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
  393. // }
  394. // if (setlinfo.getOrdState() == OrdState.REFUND_SUCCEED) {
  395. // return ResultVoUtil.success(OrdState.REFUND_SUCCEED.toString());
  396. // }
  397. // JSONObject params = new JSONObject();
  398. // if (StringUtil.notBlank(setlinfo.getPlatformRefdId())) {
  399. // params.put("platformRefdId", setlinfo.getPlatformRefdId());
  400. // } else {
  401. // params.put("medRefdId", setlinfo.getMedRefdId());
  402. // }
  403. // params.put("orgCodg", "H32132200561");
  404. // JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(params));
  405. // String body = dataHandler.buildReqData(raw);
  406. // String url = "http://webhis.thyy.cn:8077/powersiMipRefundQuery";
  407. // HttpHeaders headers = new HttpHeaders();
  408. // headers.setContentType(MediaType.APPLICATION_JSON);
  409. // HttpEntity<String> entity = new HttpEntity<>(body, headers);
  410. // String encRes = template.postForObject(url, entity, String.class);
  411. // JSONObject decRes = dataHandler.processRspData(encRes);
  412. // Integer code = decRes.getInteger("code");
  413. // if (null != code && code == 0) {
  414. // JSONObject data = decRes.getJSONObject("data");
  415. // data.remove("hiExtData");
  416. // OrdState state = OrdState.get(data.getString("refdStatus"));
  417. // if (null == state) {
  418. // return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
  419. // }
  420. // String refId = data.getString("platformRefdId");
  421. // dao.updateRefundState(refId, state, hisOrdNum);
  422. // return ResultVoUtil.success(state.toString());
  423. // }
  424. // return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, decRes.getString("message"));
  425. // }
  426. //}