Skip to content

申请退款 ​

POST /api/refund/refundOrder

需要公共签名参数。退款可能先等待分账资金回退,接口返回不保证主退款已完成。

请求字段 ​

字段类型必填说明
payOrderIdstring二选一原支付订单号,优先使用
mchOrderNostring二选一原商户支付订单号
mchRefundNostring是唯一商户退款单号
refundAmountinteger是退款金额,单位分,大于 0 且不超过可退余额
refundReasonstring是非空退款原因
notifyUrlstring否HTTP(S) 地址;当前仅保存,尚未实现商户退款通知投递
extParamstring否商户附加文本
json
{
  "mchNo": "M_DEMO", "appId": "APP_DEMO", "payOrderId": "P_DEMO",
  "mchRefundNo": "REFUND_DEMO_001", "refundAmount": 100,
  "refundReason": "用户取消订单", "sign": "实际签名"
}

业务约束 ​

原支付单须处于支付成功状态,未全额退款且无在途退款。分账处理中是否允许退款取决于渠道阶段;部分渠道需等分账终态,部分可停止尚未执行的结算。已分账资金可能需要先回退,再发起主退款。

重复退款单号会被拒绝。超时后先查询原退款单,不要盲目创建第二笔退款。退款明确失败且未发生资金回退或成功退款时,系统恢复原结算排期;未知状态不会触发恢复。

响应 data ​

字段类型说明
refundOrderId、mchRefundNostring平台、商户退款单号
payAmountinteger原支付金额,分
refundAmountinteger本次退款金额,分
stateinteger退款状态:0 创建、1 退款中、2 成功、3 失败、4 关闭
divisionReturnStateinteger分账回退状态:0 无需/未创建、1 待回退、2 处理中、3 成功、4 失败
divisionReturnAmountinteger分账回退金额,分
channelOrderNo、errCode、errMsgstring / null渠道退款号与错误信息
json
{
  "code": 0,
  "data": {
    "refundOrderId": "R_DEMO", "mchRefundNo": "REFUND_DEMO_001",
    "payAmount": 100, "refundAmount": 100, "state": 1,
    "divisionReturnState": 0, "divisionReturnAmount": 0,
    "channelOrderNo": null, "errCode": null, "errMsg": null
  },
  "sign": "对data计算的签名"
}

以 state=2 为主退款成功依据;分账回退成功不代表主退款成功。当前请使用 退款查询 确认最终结果。

接口行为以当前 payment 实现为准。示例商户号与密钥均为虚构。