请求分账回退API
订单已经分账, 在退款时, 可以先调此接口, 将已分账的资金从分账接收方的账户回退给分账方, 再发起退款。
注意:
- 分账回退以原分账单为依据, 支持多次回退, 申请回退总金额不能超过原分账单分给该接收方的金额。
- 此接口采用同步处理模式, 即在接收到商户请求后, 会实时返回处理结果。
- 此功能需要接收方在商户平台开启同意分账回退后, 才能使用。
- 对同一笔分账单最多能发起 20 次分账回退请求。
接口说明
适用对象: 电商平台
请求 URL: https://api.mch.weixin.qq.com/v3/ecommerce/profitsharing/returnorders
请求方式: POST
接口规则: https://wechatpay-api.gitbook.io/wechatpay-api-v3
path 指该参数需在请求 URL 传参query 指该参数需在请求 JSON 传参
请求参数
| 变量 | 类型 | 必填 | 参数名/描述/示例值 |
|---|---|---|---|
| sub_mchid | string(32) | 是 | 二级商户号 query 分账出资的电商平台二级商户, 填写微信支付分配的商户号。 |
| 1900000109 | |||
| order_id | string(64) | 二 | 微信分账单号 query 微信系统返回的唯一标识。微信分账单号和商户分账单号二选一填写。 |
| 选 | 3008450740201411110007820472 | ||
| out_order_no | string(64) | 一 | 商户分账单号 query 商户系统内部的分账单号, 在商户系统内部唯一(单次分账、多次分账、完结分账应使用不同的商户分账单号), 同一分账单号多次请求等同一次。 |
| P20150806125346 | |||
| out_return_no | string(64) | 是 | 商户回退单号 query 此回退单号是商户在自己后台生成的一个新的回退单号, 在商户后台唯一。 |
| R20190516001 | |||
| return_mchid | string(32) | 是 | 回退商户号 query 只能对原分账请求中成功分给商户接收方进行回退。 |
| 86693852 | |||
| amount | int | 是 | 回退金额 query 需要从分账接收方回退的金额, 单位为分, 只能为整数, 不能超过原始分账单分出给该接收方的金额。 |
| 10 | |||
| description | string(80) | 是 | 回退描述 query 分账回退的原因描述 |
| 分账回退 |
请求示例
{
"sub_mchid": "1900000109",
"order_id": "3008450740201411110007820472",
"out_order_no": "P20150806125346",
"out_return_no": "R20190516001",
"return_mchid": "86693852",
"amount": 10,
"description": "分账回退"
}
返回参数
| 变量 | 类型 | 必填 | 参数名/描述/示例值 |
|---|---|---|---|
| sub_mchid | string(32) | 是 | 二级商户号 分账出资的电商平台二级商户, 填写微信支付分配的商户号。 |
| 1900000109 | |||
| order_id | string(64) | 是 | 微信分账单号 原发起分账请求时, 微信返回的微信分账单号, 与商户分账单号一一对应。 微信分账单号与商户分账单号二选一填写。 |
| 3008450740201411110007820472 | |||
| out_order_no | string(64) | 是 | 商户分账单号 商户系统内部的分账单号, 在商户系统内部唯一(单次分账、多次分账、完结分账应使用不同的商户分账单号), 同一分账单号多次请求等同一次。 |
| P20150806125346 | |||
| out_return_no | string(64) | 是 | 商户回退单号 此回退单号是商户在自己后台生成的一个新的回退单号, 在商户后台唯一 只能是数字、大小写字母*-*@ , 同一回退单号多次请求等同一次。 |
| R20190516001 | |||
| return_mchid | string(32) | 是 | 回退商户号 只能对原分账请求中成功分给商户接收方进行回退。 |
| 86693852 | |||
| amount | int | 是 | 回退金额 需要从分账接收方回退的金额, 单位为分, 只能为整数, 不能超过原始分账单分出给该接收方的金额。 |
| 10 | |||
| return_no | string(64) | 是 | 微信回退单号 微信分账回退单号, 微信系统返回的唯一标识。 |
| 3008450740201411110007820472 | |||
| result | string(32) | 是 | 回退结果 如果请求返回为处理中, 则商户可以通过调用回退结果查询接口获取请求的最终处理结果, 枚举值:PROCESSING: 处理中 SUCCESS: 已成功 FAIL: 已失败 注意: 如果返回为处理中, 请勿变更商户回退单号, 使用相同的参数再次发起分账回退, 否则会出现资金风险 在处理中状态的回退单如果 5 天没有成功, 会因为超时被设置为已失败 |
| SUCCESS | |||
| fail_reason | string(32) | 否 | 失败原因 回退失败的原因, 此字段仅回退结果为 FAIL 时存在, 枚举值:ACCOUNT_ABNORMAL: 分账接收方账户异常 TIME_OUT_CLOSED:: 超时关单 |
| TIME_OUT_CLOSED | |||
| finish_time | string(64) | 是 | 完成时间 分账回退完成时间, 遵循 rfc3339 标准格式格式为 YYYY-MM-DDTHH:mm:ss:sss+TIMEZONE, YYYY-MM-DD 表示年月日, T 出现在字符串中, 表示 time 元素的开头, HH:mm:ss:sss 表示时分秒毫秒, TIMEZONE 表示时区(+08:00 表示东八区时间, 领先 UTC 8 小时, 即北京时间)。例如: 2015-05-20T13:29:35.120+08:00 表示, 北京时间 2015 年 5 月 20 日 13 点 29 分 35 秒。 |
| 2015-05-20T13:29:35.120+08:00 |
返回示例
正常示例
{
"sub_mchid": "1900000109",
"order_id": "3008450740201411110007820472",
"out_order_no": "P20150806125346",
"out_return_no": "R20190516001",
"return_mchid": "86693852",
"amount": 10,
"return_no": "3008450740201411110007820472",
"result": "SUCCESS",
"fail_reason": "TIME_OUT_CLOSED",
"finish_time": "2015-05-20T13:29:35.120+08:00"
}
错误码公共错误码
| 状态码 | 错误码 | 描述 | 解决方案 |
|---|---|---|---|
| 500 | SYSTEM_ERROR | 系统错误 | 系统异常, 请使用相同参数稍后重新调用 |
| 403 | NOT_ENOUGH | 剩余可回退的金额不足 | 调整回退金额 |
| 400 | PARAM_ERROR | 订单号格式不正确 | 请使用正确的参数重新调用 |
| 400 | INVALID_REQUEST | 回退方不存在 | 请根据返回的错误信息确认违反的业务规则 |
| 429 | FREQUENCY_LIMITED | 商户发起分账回退的频率过高 | 请降低频率后重试 |
| 403 | NO_AUTH | 回退方未开通分账回退功能 | 请先让回退方开通分账回退功能 |
Feedback
Was this page helpful?
很高兴听到! 请告诉我们,我们如何才能改善.
很遗憾听到这个消息。 请告诉我们,我们如何才能改善.
最后修改 April 12, 2020: 整理文档 (f36b91e)