Skip to content

申请退款

更新时间:2026/9/16 11:08:10

接口说明

对已支付成功的订单发起退款,支持部分退款和全额退款。

注意

  • 退款金额不能超过订单可退款余额(查询订单返回的 refundableBalance
  • 同一笔订单的多次退款请求,bizRefundNo 必须唯一(不传则由系统生成)
  • 退款为异步操作,接口返回 progress 后,以异步通知或退款同步确认终态

请求地址

POST /unipay/refund

  • 认证:RSA 签名(@PaymentVerify
  • 响应:DaxResult<RefundResult>

请求参数

基础参数同 统一支付 - 基础参数,业务参数:

参数类型必填最大长度描述
tradeNostring否*100原支付资金交易号(平台 tradeNo)
bizOrderNostring否*100原支付商户业务订单号
amountlong退款金额,单位分(必须大于 0)
reasonstring50退款原因
bizRefundNostring100商户退款号(不传由系统生成)

*tradeNobizOrderNo 至少传一个,优先使用 tradeNo

请求示例

json
{
  "mchNo": "M200000001",
  "appId": "APP001",
  "reqId": "REQ20241201002",
  "reqTime": "2024-12-01 12:30:00",
  "nonceStr": "RANDOMSTR123",
  "sign": "Base64签名值",
  "bizOrderNo": "ORDER20241201001",
  "amount": 100,
  "bizRefundNo": "REFUND20241201001",
  "reason": "用户申请退款"
}

响应参数

DaxResult<RefundResult>data 字段结构:

参数类型描述
refundNostring平台退款号
bizRefundNostring商户退款号
statusstring退款状态(RefundOrderStatusEnum
errorMsgstring错误信息(失败时返回)

响应示例

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "refundNo": "R2024120112345700001",
    "bizRefundNo": "REFUND20241201001",
    "status": "progress"
  },
  "sign": "Base64签名值",
  "resTime": "2024-12-01 12:30:00",
  "reqId": "REQ20241201002"
}

退款状态(RefundOrderStatusEnum)

status说明
progress退款中(已创建并调用通道,等待结果)
success退款成功
fail退款失败
close退款关闭(超时未确认等)

退款回调

退款成功后,平台会向原支付订单的 notifyUrl 发送 event=refund.success 的异步通知,报文结构见 异步回调

官方网站 · 基于 GNU LGPL v3.0 协议开源