package com.ynxbd.common; import com.alibaba.fastjson.JSONObject; import com.ynxbd.common.helper.common.JsonHelper; import com.ynxbd.common.helper.http.OkHttpHelper; import com.ynxbd.common.result.JsonResult; import com.ynxbd.common.result.JsonResultEnum; import com.ynxbd.wx.config.MessagePushConfig; import com.ynxbd.wx.utils.DesEncryptHelper; import com.ynxbd.wx.wxfactory.medical.models.MedicalInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import java.math.BigDecimal; @Slf4j public class TestA { public static void main(String[] args) throws Exception { // System.out.println(AesWxHelper.encode("om5HqvlWTys3Bqls6YV-o4iA3Zqg")); // System.out.println(AesWxHelper.encode("192970")); // System.out.println(AesWxHelper.encode("533103200008164016")); System.out.println(DesEncryptHelper.enCode("oeso-t62kkoRwLVVkSkwmmjPfUXk")); System.out.println(MessagePushConfig.REG_NAVIGATE_API); // OkHttpHelper.getAsync(REG_NAVIGATE_API, params -> { // params.put("patientName", "小王"); // params.put("content", "就诊时间:2026-08-13 12:12:12"); // params.put("deptName", "科室"); // params.put("deptCode", "0001"); // params.put("openId", "32EBE22EF6C9437575AB7A043E456D25704583EFA5E6BE1B5CB899A6F3B7075A"); // }); test(); } public static void test() { // String xml = "40090成功0.00ORD530100202608121122576630746TSN5301002026081211225734038313119968898754003081656516118908900{\"setlinfo\":{\"psnCashPay\":0,\"inscpScpAmt\":81,\"medinsSetlId\":\"H53310300023202608121122583668\",\"medType\":\"21\",\"age\":25,\"acctPay\":89,\"psnType\":\"11\",\"psnName\":\"王晨宇\",\"mdtrtCertNo\":\"530000ocvpvqk10ujb26a3720a00009bfc99ea\",\"insuAdmdvs\":\"533199\",\"hifobPay\":0,\"psnCertType\":\"01\",\"mdtrtCertType\":\"01\",\"actPayDedc\":81,\"psnPay\":89,\"psnInsuRltsId\":\"53000000300121343792\",\"overlmtSelfpay\":5,\"ownpayHospPart\":0,\"medfeeSumamt\":89,\"mdtrtId\":\"311996889875\",\"hifmiPay\":0,\"certno\":\"533103200008164016\",\"crtDedc\":81,\"hifpPay\":0,\"poolPropSelfpay\":0,\"clrType\":\"21\",\"mafPay\":0,\"cvlservPay\":0,\"setlTime\":\"2026-08-12 11:22:59\",\"hospPartAmt\":0,\"expContent\":\"{\\\"unif_pay_std\\\":0,\\\"unif_pay_blnc\\\":0,\\\"bkst_safeg_amt\\\":0,\\\"fin_subs\\\":null,\\\"care_subs\\\":null,\\\"insu_cmpy_name\\\":\\\"\\\",\\\"comp_sum_amt\\\":null,\\\"comp_dscr\\\":\\\"\\\",\\\"comp_fail_rea\\\":\\\"\\\",\\\"bas_sec_pool_lmt\\\":0,\\\"mihisec_pool_lmt\\\":0,\\\"cvlserv_acct_pay\\\":0,\\\"oth_subs\\\":null,\\\"bas_sev_inpool_amt\\\":0,\\\"mihisec_inpool_amt\\\":0,\\\"third_pay_list\\\":[],\\\"sp_psn_type\\\":\\\"95341\\\",\\\"cvlserv_lmt_rm\\\":0,\\\"wlt_acct_pay\\\":0,\\\"hosp_payf_amt\\\":0,\\\"cla_trt_flag\\\":\\\"1\\\"}\",\"othPay\":0,\"dedcStd\":600,\"othfundPay\":0,\"preselfpayAmt\":3,\"cashPayamt\":0,\"fulamtOwnpayAmt\":0,\"fundPaySumamt\":0,\"cvlservFlag\":\"0\",\"insutype\":\"310\",\"acctMulaidPay\":0,\"psnPartAmt\":89,\"enddate\":1785838099000,\"hifesPay\":0,\"naty\":\"01\",\"gend\":\"1\",\"brdy\":\"2000-08-16\",\"balc\":242.38,\"inscpAmt\":81,\"hifdmPay\":0,\"begndate\":1785813000000,\"psnNo\":\"DH5310062846\"},\"SETLINFO\":{\"psn_part_amt\":89,\"hifob_pay\":0,\"age\":25,\"psn_pay\":89,\"preselfpay_amt\":3,\"oth_pay\":0,\"hifp_pay\":0,\"overlmt_selfpay\":5,\"hifes_pay\":0,\"psn_cash_pay\":0,\"maf_pay\":0,\"dedc_std\":600,\"act_pay_dedc\":81,\"inscp_amt\":81,\"mdtrt_id\":\"311996889875\",\"hifmi_pay\":0,\"crt_dedc\":81,\"psn_no\":\"DH5310062846\",\"medins_setl_id\":\"H53310300023202608121122583668\",\"certno\":\"533103200008164016\",\"psn_cert_type\":\"01\",\"exp_content\":\"{\\\"unif_pay_std\\\":0,\\\"unif_pay_blnc\\\":0,\\\"bkst_safeg_amt\\\":0,\\\"fin_subs\\\":null,\\\"care_subs\\\":null,\\\"insu_cmpy_name\\\":\\\"\\\",\\\"comp_sum_amt\\\":null,\\\"comp_dscr\\\":\\\"\\\",\\\"comp_fail_rea\\\":\\\"\\\",\\\"bas_sec_pool_lmt\\\":0,\\\"mihisec_pool_lmt\\\":0,\\\"cvlserv_acct_pay\\\":0,\\\"oth_subs\\\":null,\\\"bas_sev_inpool_amt\\\":0,\\\"mihisec_inpool_amt\\\":0,\\\"third_pay_list\\\":[],\\\"sp_psn_type\\\":\\\"95341\\\",\\\"cvlserv_lmt_rm\\\":0,\\\"wlt_acct_pay\\\":0,\\\"hosp_payf_amt\\\":0,\\\"cla_trt_flag\\\":\\\"1\\\"}\",\"setl_time\":\"2026-08-12 11:22:59\",\"acct_mulaid_pay\":0,\"psn_type\":\"11\",\"psn_name\":\"王晨宇\",\"clr_type\":\"21\",\"fulamt_ownpay_amt\":0,\"med_type\":\"21\",\"cashPayamt\":0,\"mdtrt_cert_no\":\"530000ocvpvqk10ujb26a3720a00009bfc99ea\",\"cvlserv_flag\":\"0\",\"cvlserv_pay\":0,\"insutype\":\"310\",\"enddate\":1785838099000,\"ownpay_hosp_part\":0,\"hosp_part_amt\":0,\"mdtrt_cert_type\":\"01\",\"pool_prop_selfpay\":0,\"naty\":\"01\",\"gend\":\"1\",\"brdy\":\"2000-08-16\",\"balc\":242.38,\"hifdm_pay\":0,\"medfee_sumamt\":89,\"othfund_pay\":0,\"psn_insu_rlts_id\":\"53000000300121343792\",\"insu_admdvs\":\"533199\",\"acct_pay\":89,\"inscp_scp_amt\":81,\"begndate\":1785813000000,\"fund_pay_sumamt\":0},\"originalResult\":{\"respondTime\":\"20260812112259839\",\"infRefmsgid\":\"530000202608121122598204425853\",\"output\":{\"setlinfo\":{\"psn_part_amt\":89,\"hifob_pay\":0,\"age\":25,\"psn_pay\":89,\"preselfpay_amt\":3,\"oth_pay\":0,\"hifp_pay\":0,\"overlmt_selfpay\":5,\"hifes_pay\":0,\"psn_cash_pay\":0,\"maf_pay\":0,\"dedc_std\":600,\"act_pay_dedc\":81,\"inscp_amt\":81,\"mdtrt_id\":\"311996889875\",\"hifmi_pay\":0,\"crt_dedc\":81,\"psn_no\":\"DH5310062846\",\"medins_setl_id\":\"H53310300023202608121122583668\",\"certno\":\"533103200008164016\",\"psn_cert_type\":\"01\",\"exp_content\":\"{\\\"unif_pay_std\\\":0,\\\"unif_pay_blnc\\\":0,\\\"bkst_safeg_amt\\\":0,\\\"fin_subs\\\":null,\\\"care_subs\\\":null,\\\"insu_cmpy_name\\\":\\\"\\\",\\\"comp_sum_amt\\\":null,\\\"comp_dscr\\\":\\\"\\\",\\\"comp_fail_rea\\\":\\\"\\\",\\\"bas_sec_pool_lmt\\\":0,\\\"mihisec_pool_lmt\\\":0,\\\"cvlserv_acct_pay\\\":0,\\\"oth_subs\\\":null,\\\"bas_sev_inpool_amt\\\":0,\\\"mihisec_inpool_amt\\\":0,\\\"third_pay_list\\\":[],\\\"sp_psn_type\\\":\\\"95341\\\",\\\"cvlserv_lmt_rm\\\":0,\\\"wlt_acct_pay\\\":0,\\\"hosp_payf_amt\\\":0,\\\"cla_trt_flag\\\":\\\"1\\\"}\",\"setl_time\":\"2026-08-12 11:22:59\",\"acct_mulaid_pay\":0,\"psn_type\":\"11\",\"psn_name\":\"王晨宇\",\"clr_type\":\"21\",\"fulamt_ownpay_amt\":0,\"med_type\":\"21\",\"cashPayamt\":0,\"mdtrt_cert_no\":\"530000ocvpvqk10ujb26a3720a00009bfc99ea\",\"cvlserv_flag\":\"0\",\"cvlserv_pay\":0,\"insutype\":\"310\",\"enddate\":1785838099000,\"ownpay_hosp_part\":0,\"hosp_part_amt\":0,\"mdtrt_cert_type\":\"01\",\"pool_prop_selfpay\":0,\"naty\":\"01\",\"gend\":\"1\",\"brdy\":\"2000-08-16\",\"balc\":242.38,\"hifdm_pay\":0,\"medfee_sumamt\":89,\"othfund_pay\":0,\"psn_insu_rlts_id\":\"53000000300121343792\",\"insu_admdvs\":\"533199\",\"acct_pay\":89,\"inscp_scp_amt\":81,\"begndate\":1785813000000,\"fund_pay_sumamt\":0},\"setldetail\":[{\"fund_pay_type_name\":\"城镇职工基本医疗保险统筹基金(住院)\",\"crt_payb_lmt_amt\":0,\"fund_pay_type\":\"310100\",\"inscp_scp_amt\":0,\"fund_payamt\":0},{\"fund_pay_type_name\":\"职工大病保险基金\",\"crt_payb_lmt_amt\":0,\"fund_pay_type\":\"99999702\",\"inscp_scp_amt\":0,\"fund_payamt\":0},{\"fund_pay_type_name\":\"城镇职工基本医疗保险个人账户基金\",\"crt_payb_lmt_amt\":89,\"fund_pay_type\":\"310200\",\"inscp_scp_amt\":89,\"fund_payamt\":89}]},\"refmsgTime\":\"20260812112258087\",\"infcode\":0},\"setldetail\":[{\"fund_pay_type_name\":\"城镇职工基本医疗保险统筹基金(住院)\",\"crt_payb_lmt_amt\":0,\"fund_pay_type\":\"310100\",\"inscp_scp_amt\":0,\"fund_payamt\":0},{\"fund_pay_type_name\":\"职工大病保险基金\",\"crt_payb_lmt_amt\":0,\"fund_pay_type\":\"99999702\",\"inscp_scp_amt\":0,\"fund_payamt\":0},{\"fund_pay_type_name\":\"城镇职工基本医疗保险个人账户基金\",\"crt_payb_lmt_amt\":89,\"fund_pay_type\":\"310200\",\"inscp_scp_amt\":89,\"fund_payamt\":89}]}"; // JsonResult result = JsonResult.xmlToBean(xml, JsonResultEnum.SYS_HIS); // // String payOrdId = result.getDataMapString("PayOrdId"); // String payToken = result.getDataMapString("PayToken"); // String mdTrtId = result.getDataMapString("MdtrtId"); // 医保就诊ID // String chrgBchno = result.getDataMapString("ChrgBchno"); // 医疗机构订单号、收费批次号 // String mdUserId = result.getDataMapString("UserID_YBZF"); // 医保用户ID // // 住院========= // String payOrRefundMoney = result.getDataMapString("PayOrRefundMoney"); // 缴退金额[大于0时需要微信收取费用,小于0时需要微信退费] // String prePayOrderId = result.getDataMapString("PrePayOrderId"); // 预交金缴费单号[需要退费时,his返回预交金时候的单号给微信退费。可能存在退多比微信预交金费用,字段具体内容后续协商后敲定] // String ordStas = result.getDataMapString("OrdStas"); // // BigDecimal deposit = result.getDataMapBigDecimal("Deposit"); // 住院押金(医保6202返回) // String payAuthNo = "1"; // // log.info("[医保-住院结算]HIS费用上传明细接口返回-授权信息 payAuthNo={}, payOrdId={}, payToken={}, mdtrtId={}, chrgBchno={}, userIdYBZF={}", payAuthNo, payOrdId, payToken, mdTrtId, chrgBchno, mdUserId); // if (payOrdId == null || payToken == null || mdTrtId == null || chrgBchno == null) { // } // // MedicalInfo medicalInfo = new MedicalInfo(); // medicalInfo.setPayAuthNo("1"); // medicalInfo.setPayToken(payToken); // medicalInfo.setPayOrdId(payOrdId); // medicalInfo.setMdTrtId(mdTrtId); // medicalInfo.setChrgBchno(chrgBchno); // medicalInfo.setMdUserId(mdUserId); // // BigDecimal totalFee = result.getDataMapBigDecimal("FeeSumamt"); // 订单总金额医保返回 // BigDecimal cashFee = result.getDataMapBigDecimal("OwnPayAmt"); // 现金支付(医保6202返回) // BigDecimal hifpFee = result.getDataMapBigDecimal("FundPay"); // 统筹金额[基金金额] // BigDecimal acctPay = result.getDataMapBigDecimal("PsnAcctPay"); // 个人账户支出(医保6202返回) // log.info("[医保-住院结算]HIS费用上传明细接口返回-费用明细 payOrdId={}, totalFee={}, cashFee={}, hifpFee={}, acctPay={}", // payOrdId, totalFee, cashFee, hifpFee, acctPay); // // String extData = result.getDataMapString("ExtData"); // // if (totalFee == null) { // } // if (ObjectUtils.isEmpty(extData)) { // } // JSONObject extDataJson = JsonHelper.parseObject(extData); // JSONObject setLInfo = extDataJson.getJSONObject("SETLINFO"); // // medicalInfo.setMedFeeSumAmt(new BigDecimal(setLInfo.getString("medfee_sumamt"))); // 医保金额 // // medicalInfo.setTotalFee(totalFee); // 医保订单总金额 // medicalInfo.setCashFee(cashFee); // 现金部分 // medicalInfo.setHifpFee(hifpFee); // 统筹支付金额 // medicalInfo.setAcctFee(acctPay); // 个人账户支付 // // medicalInfo.setInsuranceFee(acctPay.add(hifpFee)); // 医保支付(个账 + 统筹) // System.out.println(medicalInfo.getMedFeeSumAmt()); } // public static void main(String[] args) throws Exception { // String content = "533103198212184014"; // String encrypt = RSAHelper.enPKCS1Padding(content, PUB_KEY); // System.out.println(HexUtil.encodeHexStr(encrypt)); // } }