退款
接口描述:
退款接口采用加密方式调用,加密机制参见:加密与签名。
注意事项:
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 |