# 启动订单退款任务
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南。
接口英文名:refund_order
对使用jsapi接口下的单进行退款,此接口只是启动退款任务成功,启动后需要调用query_order接口来查询退款单状态,等状态变成退款完成后即为最终成功
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/xpay/refund_order?access_token=ACCESS_TOKEN&pay_sig=PAY_SIG
# 云调用
- 本接口不支持云调用。
# 第三方调用
本接口支持第三方平台代商家调用。
该接口所属的权限集 id 为:157
服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。
# 2. 请求参数
# 查询参数 Query String Parameters
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| access_token | string | 是 | ACCESS_TOKEN | 接口调用凭证,可使用 access_token、authorizer_access_token |
| pay_sig | string | 是 | - | 支付签名 |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| openid | string | 是 | 下单时的用户openid |
| order_id | string | 否 | 下单时的单号,即jsapi接口传入的OutTradeNo,与wx_order_id字段二选一 |
| wx_order_id | string | 否 | 支付单对应的微信侧单号,与order_id字段二选一 |
| refund_order_id | string | 是 | 本次退款时需要传的单号,长度为[8,32],字符只允许使用字母、数字、'\_'、'-' |
| left_fee | number | 是 | 当前单剩余可退金额,单位分,可以通过调用query_order接口查到 |
| refund_fee | number | 是 | 本次退款金额,单位分,需要(0,left_fee] |
| biz_meta | string | 是 | 商家自定义数据,传入后可在query_order接口查询时原样返回,长度需要[0,1024] |
| refund_reason | string | 是 | 退款原因,当前仅支持以下值 0-暂无描述 1-产品问题,影响使用或效果不佳 2-售后问题,无法满足需求 3-意愿问题,用户主动退款 4-价格问题 5:其他原因 |
| req_from | string | 是 | 退款来源,当前仅支持以下值 1-人工客服退款,即用户电话给客服,由客服发起退款流程 2-用户自己发起退款流程 3-其它 |
| env | number | 是 | 0-正式环境 1-沙箱环境 |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 说明 |
|---|---|---|
| errcode | number | 错误码 |
| errmsg | string | 错误信息 |
| refund_order_id | string | 退款单号 |
| refund_wx_order_id | string | 退款单的微信侧单号 |
| pay_order_id | string | 该退款单对应的支付单单号 |
| pay_wx_order_id | string | 该退款单对应的支付单微信侧单号 |
# 4. 注意事项
使用用户态签名与支付签名
# 支付签名
签名参数为 pay_sig,加在 query 后面
例如接口地址是:https://api.weixin.qq.com/xpay/query_user_balance?access_token=xxxx
加上签名后则需要传 https://api.weixin.qq.com/xpay/query_user_balance?access_token=xxxx&pay_sig=xxx
# 5. 代码示例
本接口无代码示例
# 6. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 |
|---|---|
| -1 | 系统错误 |
| 268490001 | openid错误 |
| 268490002 | 请求参数字段错误,具体看errmsg |
| 268490003 | 签名错误 |
| 268490004 | 重复操作(赠送和代币支付和充值广告金相关接口会返回,表示之前的操作已经成功) |
| 268490005 | 订单已经通过cancel_currency_pay接口退款,不支持再退款 |
| 268490006 | 代币的退款/支付操作金额不足 |
| 268490007 | 图片或文字存在敏感内容,禁止使用 |
| 268490008 | 代币未发布,不允许进行代币操作 |
| 268490009 | 用户session_key不存在或已过期,请重新登录 |
| 268490011 | 数据生成中,请稍后调用本接口获取 |
| 268490012 | 批量任务运行中,请等待完成后才能再次运行 |
| 268490013 | 禁止对核销状态的单进行退款 |
| 268490014 | 退款操作进行中,稍后可以使用相同参数重试 |
| 268490015 | 频率限制 |
| 268490016 | 退款的left_fee字段与实际不符,请通过query_order接口查询确认 |
| 268490018 | 广告金充值帐户行业 id 不匹配 |
| 268490019 | 广告金充值帐户 id已绑定其他 appid |
| 268490020 | 广告金充值帐户主体名称错误 |
| 268490021 | 账户未完成进件 |
| 268490022 | 广告金充值账户无效 |
| 268490023 | 广告金余额不足 |
| 268490024 | 广告金充值金额必须大于 0 |
# 7. 适用范围
本接口暂未明确可调用账号类型,或在业务中根据调用传参自行确定是否可调用,请以实际调用情况为准。