Skip to content

医保混合支付退款通知

1 功能说明

此接口用于医院通知微信以及银行订单有退款情况。其中请求中含有医保部分退款的,银行会进一步通知微信。

  • 请求中若含有医保部分退款的,银行会进一步通知微信。 交易链路:医院->银行->微信 请使用工行API平台提供的SDK进行调用,(可参考调用示例代码)
2 请求路径
环境路径
正式环境https://gw.open.icbc.com.cn/api/hbfh/mimp/mixrefundnotify/V1

(测试环境切模测需替换样例中的serviceUrl即可,公、私钥,appid以及AES密钥不变;切换生产环境除了serviceUrl还需替换公、私钥,appid以及AES密钥)

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 请求参数
参数类型是否必输最大长度描述示例值
hospital_idstring[1, 32]工行侧定义的医院编号,由工行提供0001
refund_typestring退款类型MED_REFUND - 纯医保退费,SELF_REFUND-纯自费退费,MIX_REFUND-医保自费混合退费
intrx_serial_nostring退款类型含有自费部分退款必送[1,30]银行侧退款流水号(退款成功后由工行聚合支付退费API返回)202311140923999754132
cash_refund_feeint退款类型含有自费部分退款必送-单位分,自费退款金额。45000
mix_trade_nostring[1, 32]医保自费混合订单号202204022005169952975171534816
sub_mchidstring[1, 32]医疗机构的商户号(通知自费部分退款时可不送。医保部分退款时建议送,若不送,将会以银行侧配置的值向微信发报)1900008XXX
med_refund_total_feeint退款类型含有医保部分退款必送-单位分,医保退款的总金额。45000
med_refund_gov_feeint退款类型含有医保部分退款必送-单位分,医保统筹退款金额。45000
med_refund_self_feeint退款类型含有医保部分退款必送-单位分,医保个账退款金额。45000
med_refund_other_feeint退款类型含有医保部分退款必送-单位分,医保其他退款金额。45000
refund_timestring退款类型含有医保部分退款必送[1, 64]医保退款成功时间 遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE。2015-05-20T13:29:35+08:00
cancel_serial_nostring退款类型含有医保部分退款必送[1, 20]医保退款业务流水号 例如医院HIS系统退款订单号。1217752501201
5 通用响应参数
参数名类型是否非空最大长度描述示例值
response_biz_contentstrtrue-响应参数集合,包含公共和业务参数-
signstrtrue300针对返回参数集合的签名ERITJKEIJKJHKHJEREEEEEEEE
6 响应参数
参数类型是否必输最大长度描述示例值
return_codestring-返回码,交易成功返回0,其他表示业务报错0
return_msgstring-返回消息微信已成功接收退款消息
7 使用示例
java
	DefaultIcbcClient client = new DefaultIcbcClient(APP_ID,
			MY_PRIVATE_KEY, APIGW_PUBLIC_KEY);
	HbfhMimpRefundNotifyV1 request = new HbfhMimpRefundNotifyV1();		
	request.setServiceUrl("https://gw.open.icbc.com.cn/api/hbfh/mimp/mixrefundnotify/V1");
	HbfhMimpRefundNotifyV1Biz bizContent = new HbfhMimpRefundNotifyV1Biz();
	bizContent.setHospitalId("0001"); //工行侧定义的医院编号
	bizContent.setRefund_Type("MIX_REFUND"); //退款类型
	request.setBizContent(bizContent);		
	try {
		HbfhMimpRefundNotifyV1 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();
	}
8 请求示例
json

{ 
  "refund_type":"MED_REFUND",
  "hospital_id": "0001",
  "cancel_serial_no": "1217752501201",
  "refund_time": "2015-05-20T13:29:35+08:00",
  "mix_trade_no": "202304022005169952975171534820",
  "med_refund_total_fee": 4500,
  "med_refund_gov_fee":4500,
  "med_refund_self_fee":0,
  "med_refund_other_fee":0,
  "sub_mchid": "999706307"
}
9 响应示例
json

{ 
  "return_code": "0",
  "return_msg": "微信已成功接收退款消息"
}
10 异常示例
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"
}
11 返回码解释
返回码返回说明
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方法未登记