Skip to content

查询医保自费混合支付下单状态

1 功能说明

医院使用医保自费混合订单号或医院应用订单号,通过此接口主动查询混合支付订单状态。请使用工行API平台提供的SDK进行调用,(可参考调用示例代码)

2 请求路径
环境路径
正式环境https://gw.open.icbc.com.cn/api/hbfh/mimp/orderstatusquery/V1
3 通用请求参数
参数名类型是否必输最大长度描述示例值
fromstrtrue-工行调用固定为icbc-apiicbc-api
apistrtrue-接口路径,调用哪一个接口的回调
app_idstrtrue-合作方在工行开具的应用编号
charsetstrtrue-调用过程使用的编码格式utf-8
formatstrtrue-报文类型json
encrypt_typestrfalse-加密方式,此接口默认不加密-
timestampstrtrue-回调发生时间,格式为“yyyy-MM-dd HH:mm:ss”2017-01-12 17:33:56
sign_typestrtrue-签名类型,目前网关回调请求的签名只支持RSA方式,需要合作方使用网关公钥验签RSA
signstrtrue-工行签名FSDFDRYXDS342FDSR
biz_contentstrtrue-业务参数集合,详见业务参数说明-
4 请求参数
参数类型是否必输最大长度描述示例值
query_typestrtrue32查询类型,支持两种:
1、根据医保自费混合订单号MIX_TRADE_NO查询;
2、根据医院应用订单号OUT_TRADE_NO查询。
MIX_TRADE_NO
hospital_idstrtrue32医院ID(工行提供)4402000001
mix_trade_nostrfalse64医保自费混合订单号。query_type为MIX_TRADE_NO 时必输P202204022005169952975171534816
out_trade_nostrfalse64医院应用订单号。query_type为OUT_TRADE_NO 时必输202204022005169952975171534816
sub_mchidstrtrue64医疗机构商户号
trx_datestrtrue8待查询订单下单日期。传错的话查不到交易yyyy-MM-dd,例如2024-03-12
5 通用响应参数
参数名类型是否非空最大长度描述示例值
response_biz_contentstrtrue-响应参数集合,包含公共和业务参数-
signstrtrue300针对返回参数集合的签名ERITJKEIJKJHKHJEREEEEEEEE
6 响应参数
参数类型是否必输最大长度描述示例值
return_codestrtrue10返回码,交易成功返回0,其他表示业务报错0
return_msgstrtrue200返回码说明-
mix_trade_nostrtrue32医保自费混合订单号。唯一定义此资源的标识1217752501201407033233368318
mix_pay_statusstrtrue医保自费混合订单支付状态 (字典较多,详情请见5.6)MIX_PAY_SUCCESS
self_pay_statusstrfalse混合订单中自费部分的支付状态(字典较多,详情请见5.7)SELF_PAY_SUCCESS
med_ins_pay_statusstrfalse混合订单中医保部分的支付状态(字典较多,详情请见5.8)MED_INS_PAY_SUCCESS
paid_timestrfalse64订单支付时间。遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE2018-06-08T10:34:56+08:00
passthrough_response_contentstrfalse2048支付完成后医保局返回内容(透传给医疗机构)
mix_pay_typestrtrue按字典值发送混合支付类型CASH_ONLY:纯现金(字典值较多请见5.5)
order_typestrtrue按字典值发送订单类型REG_PAY:挂号支付(字典值较多请见5.1)
sub_openidstrtrue128用户在医疗机构AppID下的唯一标识。o4GgauInH_RCEdvrrNGrntXDuXXX
sub_appidstrtrue32医疗机构的公众号IDo4GgauInH_RCEdvrrNGrntXDuXXX
sub_mchidstrtrue32医疗机构的商户号o4GgauInH_RCEdvrrNGrntXDuXXX
pay_for_relativesbooleanfalse是否代亲属支付。
代亲属支付:true。
本人支付:false。
代亲属支付:true 不传默认本人支付
out_trade_nostrtrue64医院应用订单号,每次请求唯一202204022005169952975171534816
serial_nostrfalse20医疗机构订单号。例如医院HIS系统订单号。传与【6201】费用明细上传中medOrgOrd字段一样的值,局端会校验,不一致将会支付失败。1217752501201
pay_order_idstrfalse64医保局返回的支付单IDORD530100202204022006350000021
pay_auth_nostrfalse40医保局返回的支付授权码AUTH530100202204022006310000034
geo_locationstrfalse40用户定位信息。用户定位信息,经纬度。格式:经度,纬度102.682296,25.054260
city_idstrtrue8微信定义的城市代码,有字典530100
med_inst_namestrtrue128医疗机构名称北大医院
med_inst_nostrtrue32医保局提供的医疗机构编码1217752501201407033233368318
med_ins_order_create_timestrfalse64医保下单时间。医保下单必填,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE2015-05-20T13:29:35+08:00
total_feeinttrue使用该接口下单的总金额,单位分。在接口说明示例中,该值为2020元。202000
med_ins_gov_feeintfalse医保局结算后,医保统筹支付金额,单位分,结算后金额为0也需要填写。在接口说明示例中,该值为1000元。100000
med_ins_self_feeintfalse医保局结算后,医保个账支付金额,单位分,结算后金额为0也需要填写。在接口说明示例中,该值为450元。45000
med_ins_other_feeintfalse医保局结算后,医保统筹、个账之外的其他津贴支付金额,单位分,结算后金额为0也需要填写。在接口说明示例中,该值为50元。5000
med_ins_cash_feeintfalse医保局结算后,需要自费的金额,单位分,结算后金额为0也需要填写。在接口说明示例中,该值为500元。50000
wechat_pay_cash_feeintfalse实际需要用户微信支付的金额,单位分,在接口说明示例中,该值为420元。42000
cash_add_detailarray多重现金补充列表。有运费等医保订单外加收的费用时必填。在接口说明示例中,该值为快递费20元。
cash_reduce_detailarray多重现金减免列表。有预交金等医保订单外减免的费用时必填。在接口说明示例中,该值为预存款100元。
prepay_idstrfalse64自费预下单ID。微信支付预支付交易会话标识。用于后续接口调用中使用,该值有效期为2小时wx201410272009395522657a690389285100
passthrough_request_contentstrfalse2048医疗机构透传给医保的数据。 沿用地方医保局定义,不包含pay_auth_no、pay_ord_id、setl_latlntwx201410272009395522657a690389285100
extendsstrfalse512扩展字段{}
attachstrfalse128附加数据。查询与通知中返回,医疗机构可用于自定义业务逻辑{}
channel_nostrfalse32渠道号。由腾讯工程师分配的渠道号,给医疗机构使用,标记医保支付渠道信息。AAGN9uhZc5EGyRdairKW7Qnu

现金补充列表 cash_add_detail

参数类型是否必输最大长度描述示例值
cash_add_feeinttrue现金补充金额20
cash_add_typestrtrue64现金补充类型(字典较多,详情请见5.1)FREIGHT

现金减免列表 cash_reduce_detail

参数类型是否必输最大长度描述示例值
cash_reduce_feeinttrue现金减免金额20
cash_reduce_typestrtrue64现金减免类型(字典较多,详情请见5.2)HOSPITAL_REDUCE 医院减免
7 字典值清单

7.1订单类型

标题代码描述
未知类型UNKNOWN_ORDER_TYPE未知类型,会被拦截
挂号支付REG_PAY挂号支付
诊间支付DIAG_PAY诊间支付
新冠检测费用(核酸)COVID_EXAM_PAY新冠检测费用(核酸)
住院费支付IN_HOSP_PAY住院费支付
药店支付PHARMACY_PAY药店支付保险费支付
互联网医院挂号支付INT_REG_PAY互联网医院挂号支付
互联网医院复诊支付INT_RE_DIAG_PAY互联网医院复诊支付
互联网医院处方支付INT_RX_PAY互联网医院处方支付
新冠抗原检测COVID_ANTIGEN_PAY新冠抗原检测
药费支付MED_PAY药费支付

7.2证件类型

标题代码描述
身份证ID_CARD身份证
户口本HOUSEHOLD_REGISTRATION户口本
外国人护照FOREIGNER_PASSPORT外国人护照
台湾居民来往大陆通行证MAINLAND_TRAVEL_PERMIT_FOR_TW台湾居民来往大陆通行证
澳门居民往来内地通行证MAINLAND_TRAVEL_PERMIT_FOR_MO澳门居民往来内地通行证
香港居民往来内地通行证MAINLAND_TRAVEL_PERMIT_FOR_HK香港居民往来内地通行证
外国人永久居留证FOREIGN_PERMANENT_RESIDENT外国人永久居留证

7.3现金补充类型

标题代码描述
默认值DEFAULT_ADD_TYPE默认显示“机构加收费用”
运费FREIGHT运费
其他医疗费用OTHER_MEDICAL_EXPENSES其他医疗费用

7.4现金减免类型

标题代码描述
默认值DEFAULT_REDUCE_TYPE默认为“机构优惠金额”
医院减免HOSPITAL_REDUCE医院减免
药店优惠PHARMACY_DISCOUNT药店优惠
优惠金DISCOUNT优惠金
预缴金PRE_PAYMENT预缴金
押金抵扣DEPOSIT_DEDUCTION押金抵扣

7.5混合支付类型

标题代码描述
未知的混合支付类型UNKNOWN_MIX_PAY_TYPE未知的混合支付类型,会被拦截
纯现金支付CASH_ONLY纯现金支付。只向微信支付下单,未向医保局下单。
纯医保支付INSURANCE_ONLY纯医保支付。只向医保局下单,未向微信支付下单。如果医保局分账结果中有自费的部分,但由于有减免折扣,没有向微信支付下单,也是纯医保。
现金和医保混合支付CASH_AND_INSURANCE现金和医保混合支付。向医保局下单,也向微信支付下单。如果医保预结算全部需自费,也属于混合类型。

7.6医保自费混合订单支付状态

标题代码描述
默认值UNKNOWN_MIX_PAY_STATUS未知类型,需报错
等待支付MIX_PAY_CREATED等待支付
支付成功MIX_PAY_SUCCESS支付成功
自费和医保均已退款MIX_PAY_REFUND自费和医保均已退款
支付失败MIX_PAY_FAIL支付失败

7.7 混合订单中自费部分的支付状态

标题代码描述
默认值UNKNOWN_SELF_PAY_STATUS未知类型,需报错
等待支付SELF_PAY_CREATED等待支付
支付成功SELF_PAY_SUCCESS支付成功
已退款SELF_PAY_REFUND已退款
支付失败SELF_PAY_FAIL支付失败
订单不含自费部分NO_SELF_PAY订单不含自费部分

7.8 混合订单中医保部分的支付状态

标题代码描述
默认值UNKNOWN_MED_INS_PAY_STATUS未知类型,需报错
等待支付MED_INS_PAY_CREATED等待支付
支付成功MED_INS_PAY_SUCCESS支付成功
已退款MED_INS_PAY_REFUND已退款
支付失败MED_INS_PAY_FAIL支付失败
订单不含医保部分NO_MED_INS_PAY订单不含医保部分
8 使用示例
java
	DefaultIcbcClient client = new DefaultIcbcClient(APP_ID,
			MY_PRIVATE_KEY, APIGW_PUBLIC_KEY);
	HbfhMimpOrderStatusQueryRequestV1 request = new HbfhMimpOrderStatusQueryRequestV1();		
	request.setServiceUrl("https://gw.open.icbc.com.cn/api/hbfh/mimp/order/V1");
	HbfhMimpOrderStatusQueryV1Biz bizContent = new HbfhMimpOrderStatusQueryV1Biz();
	bizContent.setQueryType("MIX_TRADE_NO"); //查询类型
	bizContent.setHospitalId("HP000000001"); //医院ID
	bizContent.setMixTradeNo("P1223"); //医保自费混合订单号
	bizContent.setSubMchid("111"); //医疗结构商户号
	bizContent.setTrxDate("2025-03-10"); //待查询订单下单日期
	request.setBizContent(bizContent);		
	try {
		HbfhMimpOrderStatusQueryResponseV1 response = client.execute(request,
				"msg_id");
		if (response.isSuccess() && response.getReturnCode() == 0) {
			// 处理成功
			System.out.println(JSONObject.toJSONString(response));
			System.out.println(response.getResult());
		} else {
			// 失败
			System.out.println(response.getReturnMsg());
		}
	} catch (IcbcApiException e) {
		e.printStackTrace();
	}
9 请求示例
json
{
    "hospital_id":"4402000002",
    "query_type":"MIX_TRADE_NO",
    "mix_trade_no":"P0013068202402260009460001607980",
    "out_trade_no":"",
    "sub_mchid":"598395068",
    "trx_date":"20230312"
}
10 响应示例
json
{
  "mix_trade_no" : "1217752501201407033233368318",
  "mix_pay_status" : "UNKNOWN_MIX_PAY_STATUS",
  "self_pay_status" : "UNKNOWN_SELF_PAY_STATUS",
  "med_ins_pay_status" : "UNKNOWN_MED_INS_PAY_STATUS",
  "paid_time" : "2018-06-08T10:34:56+08:00",
  "passthrough_response_content" : "{\"payAuthNo\":\"AUTH530100202204022006310000034\",\"payOrdId\":\"ORD530100202204022006350000021\",\"setlLatlnt\":\"102.682296,25.054260\"}",
  "mix_pay_type" : "UNKNOWN_MIX_PAY_TYPE",
  "order_type" : "UNKNOWN_ORDER_TYPE",
  "appid" : "wxdace645e0bc2cXXX",
  "sub_appid" : "wxdace645e0bc2cXXX",
  "sub_mchid" : "1900008XXX",
  "sub_openid" : "o4GgauInH_RCEdvrrNGrntXDuXXX",
  "pay_for_relatives" : false,
  "out_trade_no" : "202204022005169952975171534816",
  "serial_no" : "1217752501201",
  "pay_order_id" : "ORD530100202204022006350000021",
  "pay_auth_no" : "AUTH530100202204022006310000034",
  "geo_location" : "102.682296,25.054260",
  "city_id" : "530100",
  "med_inst_name" : "北大医院",
  "med_inst_no" : "1217752501201407033233368318",
  "med_ins_order_create_time" : "2015-05-20T13:29:35+08:00",
  "total_fee" : 202000,
  "med_ins_gov_fee" : 100000,
  "med_ins_self_fee" : 45000,
  "med_ins_other_fee" : 5000,
  "med_ins_cash_fee" : 50000,
  "wechat_pay_cash_fee" : 42000,
  "cash_add_detail" : [
    {
      "cash_add_fee" : 2000,
      "cash_add_type" : "DEFAULT_ADD_TYPE"
    }
  ],
  "cash_reduce_detail" : [
    {
      "cash_reduce_fee" : 10000,
      "cash_reduce_type" : "DEFAULT_REDUCE_TYPE"
    }
  ],
  "callback_url" : "https://www.weixin.qq.com/wxpay/pay.php",
  "prepay_id" : "wx201410272009395522657a690389285100",
  "passthrough_request_content" : "{\"payAuthNo\":\"AUTH****\",\"payOrdId\":\"ORD****\",\"setlLatlnt\":\"118.096435,24.485407\"}",
  "extends" : "{}",
  "attach" : "{}",
  "channel_no" : "AAGN9uhZc5EGyRdairKW7Qnu",
  "med_ins_test_env" : false
}
11 异常示例
json
HTTP/1.1 200 OK 
Content-Type: application/json; charset=UTF-8

{
  "response_biz_content":{
    "return_code":-500041,
    "return_msg":"service proxy exception."
  },
  "sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
12 返回码解释
返回码返回说明
0成功
-31响应请求转换失败
-30服务方响应状态错误
400011参数非法,原因可能为app id为空、app id非法、签名为空、应用系统时间与API平台系统时间不在限定差值以内、时间戳非法
500018访问的API不存在
500020非法调用
400016app公钥未维护
400017签名验证失败
400019授权验证失败
500031速率超限
500032并发超限
-500041代理异常
-500042代理超时
-500044网关签名失败
500043网关配置文件错误,无法从配置文件中读取配置
400051app id前缀错误,沙箱测试时app id必须添加sandboxie_前缀
500052沙箱测试不支持UI类型的API
500091没有管理权限
-500099网关内部异常
5399终端上送数据错
-8999方法未登记