订单

申请退款

对已付款的订单发起退款,钱原路退回付款人。一笔订单可以分多次部分退款,累计不超过实付金额。

请求地址

https://z.weixiao.cc/refund,POST 表单。

请求参数

参数类型必填说明
pidString必填商户号,「API信息」里的商户号
trade_noString否站长单号
out_trade_noString否商户单号,下单时传的商户单号
moneyString必填退款金额
out_refund_noString否商户退款单号
signString必填签名
sign_typeString否签名类型
  • trade_no:与 out_trade_no 至少传一个,都传时以它为准
  • money:单位元,大于 0,最多两位小数,只能包含数字和小数点
  • out_refund_no:你系统里的退款单号,最长 150 个字符。传了之后,同一个退款单号重复提交不会重复退款
  • sign:见「V1(MD5签名)」「V2(RSA签名)」
  • sign_type:MD5 或 RSA,不传按 MD5;签名方式为「RSA签名」的商户必须传 RSA

提示

建议每次都传 out_refund_no。网络超时等情况下用同一个退款单号重新提交,平台不会重复退款;不传时,每提交一次都是一笔新的退款申请。

请求示例

curl -X POST 'https://z.weixiao.cc/refund' \
  --data-urlencode 'pid=1001' \
  --data-urlencode 'out_trade_no=20260927123456' \
  --data-urlencode 'money=1.00' \
  --data-urlencode 'out_refund_no=RF20260927001' \
  --data-urlencode 'sign=你算出的签名' \
  --data-urlencode 'sign_type=MD5'

返回参数

参数类型说明
codeInt返回码,1 为退款成功
msgString返回信息
refund_noString平台退款单号,本站生成的 19 位退款单号
out_refund_noString商户退款单号,原样返回,没传时为空字符串
trade_noString站长单号,退款的订单
moneyString退款金额
  • money:本次退款的金额,末尾的 0 会省略,如 1.50 返回 1.5

返回示例

退款成功:

{
  "code": 1,
  "msg": "退款成功,退款金额¥1",
  "refund_no": "2026092712100012345",
  "out_refund_no": "RF20260927001",
  "trade_no": "2026092712000012345",
  "money": "1"
}

其他结果

重复提交

同一个 out_refund_no 已经退款成功,再次提交直接返回原来的结果,不会再退一次。这个返回里没有 trade_no,money 保留两位小数:

{"code":1,"msg":"已存在相同退款单号,退款金额¥1.00","refund_no":"2026092712100012345","out_refund_no":"RF20260927001","money":"1.00"}

退款处理中

支付通道暂时没有给出最终结果(如通道超时)。这时 code 是 -1,但退款并没有失败,平台会继续向通道确认:

{"code":-1,"msg":"退款处理中(平台退款单号 2026092712100012345):渠道尚未给出确定结果;请勿重复提交,稍后查询结果","where":""}

不要换一个退款单号重新提交。稍后可以用「退款查询」查询;也可以用同一个 out_refund_no 再次提交:已经成功的返回原结果,仍在处理的再次返回「退款处理中」,已经失败的会用原平台退款单号重新发起。

退款失败

平台检查不通过时:

{"code":-1,"msg":"退款金额超过可退余额"}

支付通道拒绝退款时,msg 是通道给出的原因:

{"code":-1,"msg":"支付通道返回的原因","where":""}

失败原因

返回信息说明
退款金额不合法money 为空,或含有数字和小数点以外的字符
退款金额必须大于 0
退款金额最多两位小数不会替你四舍五入,请传两位以内的小数
订单号不能为空trade_no 和 out_trade_no 都没传
订单不存在
该订单未支付,无法退款订单未付款或已关闭
该订单状态不可退款
该订单已全额退款
该订单没有可退金额
该订单已有退款在处理中,暂无可退金额剩余金额都被还没有结果的退款占着
退款金额超过可退余额本次金额大于订单剩余可退的金额
商户退款单号过长out_refund_no 超过 150 个字符
该退款单号已用于另一笔退款申请(订单或金额不同),请更换退款单号退款单号已被占用
暂不支持退款,请联系站点客服处理;这笔订单所用的支付通道不支持接口退款
  • 「该订单已有退款在处理中,暂无可退金额」:剩余金额都被还没有结果的退款占着,等它们有结果后再申请
  • 「该退款单号已用于另一笔退款申请(订单或金额不同),请更换退款单号」:同一个 out_refund_no 不能用于不同的订单或金额

注意事项

  • 全额退完后订单状态变为 2(已退款);部分退款的订单状态仍是 1,查询订单时 refundmoney 为累计退款金额。
  • 退款处理中的金额会先占住可退金额,结果出来前不能再用这部分金额申请退款。