退款同步
接口说明
当退款单状态为 progress(退款中)时,商户可主动调用本接口向支付通道发起状态同步,获取最新的退款结果。适用于退款回调延迟或商户需要主动确认状态的场景。
请求地址
POST /unipay/sync/order/refund
- 认证:RSA 签名(
@PaymentVerify) - 响应:
DaxResult<RefundSyncResult>
请求参数
基础参数同 统一支付 - 基础参数,业务参数:
| 参数 | 类型 | 必填 | 最大长度 | 描述 |
|---|---|---|---|---|
| refundNo | string | 否* | 100 | 平台退款号(申请退款返回的 refundNo) |
| bizRefundNo | string | 否* | 100 | 商户退款号 |
*两个退款号至少传一个,优先使用平台退款号
refundNo。
请求示例
json
{
"mchNo": "M200000001",
"appId": "APP001",
"reqId": "REQ20241201005",
"reqTime": "2024-12-01 12:35:00",
"nonceStr": "RANDOMSTR123",
"sign": "Base64签名值",
"refundNo": "R2024120112345700001"
}响应参数
DaxResult<RefundSyncResult>,data 字段结构:
| 参数 | 类型 | 描述 |
|---|---|---|
| orderStatus | string | 同步后的退款状态(RefundOrderStatusEnum) |
| adjust | boolean | 是否触发了状态调整(同步前后状态是否变化) |
响应示例
json
{
"code": 0,
"msg": "success",
"data": {
"orderStatus": "success",
"adjust": true
},
"sign": "Base64签名值",
"resTime": "2024-12-01 12:35:00",
"reqId": "REQ20241201005"
}使用建议
- 同步是幂等操作,可重复调用,不会重复退款或重复通知。
- 同步触发状态变更后,平台会按 异步回调 流程重新发送
event=refund.success通知。 - 若通道返回「退款单不存在」,平台会按规则将本地退款单置为
fail或close,需结合adjust判断。