退款
接口描述:
退款接口采用加密方式调用,加密机制参见:加密与签名。
注意事项:
1、调用方调用退款接口前建议优先处理调用方业务,做到先办理业务再调用退款。
2、调用方退款前可调用查询接口进行一些逻辑处理,如判断该笔订单剩余可退金额和是否超过可退款时间等,若调用方有自己的处理流程可忽略该接口。
退款接口返回:
1、http状态为 200,即认为 退款成功。
1.1、订单信息中状态(state)为:3,退款已成功,立即到账。
1.2、订单信息中状态(state)为:4,说明支付平台接口或网络异常,服务方会自动处理退款,到账可能稍有延迟。
1.3、如果银行账户金额不足,即:交易账户上的金额 小于 退费金额,如:早上住院患者大金额的退费,这时银行账户产生的交易金额不足。
服务方人工处理,到账可能有延迟。
2、http状态为 非200,即认为 退款失败,请调用方务必处理(如:收费窗口进行弹窗提示、回退操作等,回退操作请排除50x等状态码)。
说明对调用方的入参,进行参数校验时,不合规。具体情况如下:
2.1、退费参数为空及必填项校验,第三方调用时,请务必传 调用方流水号,如:HIS流水号(callerSN)。
2.2、如果 调用方流水号(callSN)不为空,默认为 调用方的业务主键,并进行唯一性校验。
2.3、根据所传 原始付款订单号(originalSN),校验原始的付款单信息是否异常。
2.4、校验是否超过最大退款周期,默认为:90天(即:90天内的支付单可退款),可根据调用方需要动态调整。
2.5、校验退费金额是否大于可退金额。
2.6、校验支付单中,是否存在 正在交易中 的订单,如果存在,则暂时不能退。
2.7、同一 调用方流水号,如:HIS流水号(callerSN),相同的 退费金额,相同的 原始付款单,3分钟内仅可退一次。
目的:避免退费的误操作(如:收费员不小心双击退款按钮、键盘或鼠标原因出现双击情况等)。
接口地址:/{context}/refund/business/packed
请求方式:POST
consumes:["application/zw-packet"]
produces:["application/zw-packet"]
请求示例:
{
"amount": 0,
"batch": "",
"callerSN": "",
"notes": "",
"originalSN": "",
"payload": {
"key": "value"
},
"timeout": 0
}
请求参数:
参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
---|---|---|---|---|---|
amount | 退费金额,单位:元 | body | true | number | |
batch | 批次号或账期 | body | false | string | |
callerSN | 调用方流水号,如:HIS 流水号 | body | false | string | |
notes | 退款原因或说明 | body | false | string | |
originalSN | 原始付款订单号 | body | true | string | |
payload | 负载的其它业务数据, JSON 格式 | body | false | object | |
timeout | 请求超时时间,单位:秒,默认:130 | body | false | integer(int32) |
所有支付方式: payload 基础参数(非特殊情况true为必传)
参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
---|---|---|---|---|---|
cardNo | 就诊卡号/住院号/证件号 | body | true | string | |
name | 姓名 | body | true | string | |
businessType | 业务类型,参见业务类型代码 | body | true | string | |
channel | 渠道,参见渠道 | body | true | string | |
taskEnable | 是否启用自动退:0:不启用;不传或者传非0:启用 | body | false | integer(int32) | |
state | 业务状态码:0未知(人工核对);1成功,不传默认0 | body | false | string | |
organId | 所属机构 | body | false | integer(int32) |
中信 mis 退款,payType=1104,payload 附加参数
参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
---|---|---|---|---|---|
terminalSN | POS 终端号 | body | true | string |
响应示例:
{
"currency": "CNY",
"amount": 0,
"refund": 0,
"canceled": 0,
"sn": "",
"originalSN": "",
"bankSN": "",
"callerSN": "",
"terminalSN": "",
"payType": "",
"notes": "",
"qrCord": "",
"payTime": "",
"expiryTime": "",
"createTime": "",
"batch": "",
"type": "",
"id": 0,
"remark": "",
"payload": "",
"state": "",
"respVo": {}
}
响应参数:
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
currency | 货币 | string | |
amount | 金额,单位:元 | number | |
refund | 退费金额,单位:元 | number | |
canceled | 撤单金额,单位:元 | number | |
sn | 流水号 | string | |
originalSN | 原单流水号,退费时记录原支付流水号 | string | |
bankSN | 支付渠道流水号,如:各个银行流水号或业务主键 | string | |
callerSN | 调用方流水号,如:HIS 流水号 | string | |
terminalSN | 终端流水号,如:POS 机流水号/凭证号(建行 OCX 返回) | string | |
payType | 支付方式,参见:约定字典 | string | |
notes | 交易标题、描述或说明 | string | |
qrCord | 支付码 | string | |
payTime | 支付时间 | string(date-time) | string(date-time) |
expiryTime | 失效时间 | string(date-time) | string(date-time) |
createTime | 创建时间 | string(date-time) | string(date-time) |
batch | 批次/账期 | string | |
type | 订单类型,0:支付;1:退费;2:撤单 | string | |
id | 标识,修改时必须 | integer(int32) | integer(int32) |
remark | 备注/描述 | string | |
payload | 负载的其它业务数据, JSON 格式 | string | |
state | 支付状态,1:初始化、2:交易中、3:成功、4:失败 | string | |
respVo | 响应参数对象 | object |
响应状态:
状态码 | 说明 | schema |
---|---|---|
200 | OK | |
201 | Created | |
401 | Unauthorized | |
403 | Forbidden | |
404 | Not Found |