# 售后管理
# 开发前准备
- 功能了解:开发前建议先阅读以下运营文档了解完整业务流程
- 权限与凭证:商家自研可直接调用,使用小店 access_token;第三方服务商需获得商家对
权限集 ID:131的授权,使用 authorizer_access_token - 消息推送配置:需配置消息推送回调 URL,详见 消息通知(回调)说明
# 售后体系总览
微信小店的售后体系由三种单据构成:
| 单据 | 说明 | 触发条件 |
|---|---|---|
| 售后单 | 基础单据,商家有同意、拒绝、协商三种操作权,大部分售后在此阶段解决 | 订单在售后期内,且未超过 5 次上限 |
| 纠纷单 | 售后单的升级通道,用户对售后结果不满时申请平台介入仲裁,仅当售后单被拒绝且 7 天内方可发起。详见 纠纷管理开发指南 | 售后单被拒绝且 7 天内 |
| 保障单 | 独立顶层通道(不依赖售后单),用户向平台申诉假冒/坏损,走举证→判定→赔付。内部涵盖纠纷处理能力(售后+纠纷=聚合)。详见 保障单开发指南 | 商品存在假冒或坏损问题 |
售后单中的
complaint_id字段可关联对应的纠纷单 ID。
# 售后单核心概念
# 售后类型
| 类型 | 说明 | 对应 type 值 |
|---|---|---|
| 仅退款 | 用户申请退款不退货 | REFUND |
| 退货退款 | 用户退货并申请退款 | RETURN |
| 换货 | 用户申请换货(含极速换货) | EXCHANGE |
# 发起售后条件
- 该商品没有进行中或已完成的售后单
- 该商品在售后期内
- 该商品发起售后没有超过发起次数上限(5 次)
# 接入流程
所有售后流程的入口统一为:收到 [事件] 售后单更新通知 / channels_ec_aftersale_update 后,调用 [API] 获取售后单 / getaftersaleorder 查询售后单详情,根据 type 字段判断售后类型,再进入对应流程处理。以下各流程图从「商家处理」节点开始展示。
# 仅退款流程
确认 type=REFUND(仅退款)后,商家执行对应操作:
- 同意退款:调用 [API] 同意售后 / acceptapply,平台发起退款
- 协商修改:调用 [API] 商家协商 / merchantupdateaftersale,与买家协商退款方案。协商后系统发送事件通知
status=USER_WAIT_CONFIRM_UPDATE(待用户处理商家协商),商家据此监听用户反馈:用户同意则平台直接发起退款,用户拒绝则回到商家处理阶段。注意:平台要求先协商,协商不成功后方可拒绝 - 拒绝退款:调用 [API] 拒绝售后 / rejectapply,需在协商被用户拒绝后使用,用户可在规定时间内发起纠纷
商家处理超时说明:商家未在规定时间内处理,超时后平台自动同意退款。若已发货,商家可在超时前通过微信小店管理后台或联系快递公司发起物流拦截(状态变为 WAIT_PACKAGE_INTERCEPT),拦截成功则自动退款,拦截失败则退回商家处理。目前物流拦截暂不支持通过 API 操作。
# 退货退款流程
确认 type=RETURN(退货退款)后,商家处理操作:
- 同意退货:调用 [API] 同意售后 / acceptapply,通知买家寄回商品
- 确认收货并退款:买家寄回后,再次调用 [API] 同意售后 / acceptapply,确认收货并退款
- 收货后协商:买家寄回商品后,商家如发现商品有损等情况,可再次调用 [API] 商家协商 / merchantupdateaftersale 协商修改退款金额(如扣除部分款项)
- 收货后拒收:商家可调用 [API] 拒绝售后 / rejectapply 拒绝收货(如商品严重不符),用户可发起纠纷
- 发起前协商:商家收到售后申请后也可先协商方案,协商后系统发送事件通知
status=USER_WAIT_CONFIRM_UPDATE(待用户处理商家协商),商家据此监听用户反馈:用户同意则进入待买家退货阶段,用户拒绝则回到商家处理阶段。注意:平台要求先协商,协商不成功后方可直接拒绝
退货退款关键节点:
- 买家超时未寄回退货,售后单自动关闭(
RETURN_CLOSED) - 商家超时未确认收货,平台自动确认并退款
# 换货流程
确认 type=EXCHANGE(换货)后,商家处理操作:
- 同意换货:调用 [API] 同意售后 / acceptapply,通知买家寄回商品
- 协商修改:调用 [API] 商家协商 / merchantupdateaftersale,与买家协商换货方案。协商后系统发送事件通知
status=USER_WAIT_CONFIRM_UPDATE(待用户处理商家协商),商家据此监听用户反馈:用户同意则进入待买家退货阶段,用户拒绝则回到商家处理阶段。注意:平台要求先协商,协商不成功后方可拒绝 - 拒绝换货:调用 [API] 拒绝售后 / rejectapply,需在协商被用户拒绝后使用,用户可在规定时间内发起纠纷
- 验货后发货:调用 [API] 换货发货 / acceptexchangereship,发出换货商品
- 验货后拒绝发货:调用 [API] 换货拒绝发货 / rejectexchangereship,用户可在规定时间内发起纠纷
换货关键节点:
- 用户超时未确认收货,系统自动确认,换货完成
# 极速换货流程
极速换货是微信小店为符合条件的部分用户(如资深买家等)提供的专属服务,无需商家主动开通,也不可关闭。与普通换货的核心区别:用户退货快递完成揽收后,商家即需提前发货,无需等退货到仓。该功能 2026 年 4 月 20 日正式生效,详见公告:极速换货 API 接口调整公告。
通过 [API] 获取售后单 / getaftersaleorder 返回的 exchange_info.fast_exchange_info.fast_exchange === true 可判断该单为极速换货单(type=EXCHANGE);merchant_confirm == 1 或 merchant_reject == 1 表示商家已操作,无需重复调用。商家处理操作:
- 同意换货:调用 [API] 同意售后 / acceptapply
- 协商修改:调用 [API] 商家协商 / merchantupdateaftersale,与买家协商换货方案。协商后系统发送事件通知
status=USER_WAIT_CONFIRM_UPDATE(待用户处理商家协商),商家据此监听用户反馈:用户同意则进入退货揽收阶段,用户拒绝则回到商家处理阶段。注意:平台要求先协商,协商不成功后方可拒绝 - 拒绝换货:调用 [API] 拒绝售后 / rejectapply,需在协商被用户拒绝后使用,用户可在规定时间内发起纠纷
- 发货:用户退货快递完成揽收后,商家须在规定时间内调用 [API] 换货发货 / acceptexchangereship 发出换货商品。超时未发货,换货申请自动转为退货退款,平台直接退款
- 退货验收:退货包裹签收后,商家须调用 [API] 商家处理极速换货用户退货 / handlefastexchangereceipt 确认或拒绝收货(
act:1确认,2拒绝)。超时未操作,平台视为商家默认同意收货。拒绝收货需提供举证材料(reject_confirm_exchange传入 media_id 列表),拒绝原因使用reject_scene为7的枚举值,用户可在规定时间内发起纠纷
# 其他售后场景
# 商家代用户发起售后
当用户未主动发起售后,但商家需要主动为用户退款(如商品缺货、错发、补偿等),可调用 [API] 代用户发起售后 / genaftersaleorder 代替用户创建售后单。该接口支持仅退款和退货退款两种类型,创建成功后流程与用户自主发起的售后单一致。
# 代用户发起退差价
当商品存在价格波动或促销补差场景时,商家可调用 [API] 代用户发起退差价 / refundpricediff 主动为用户退还差价金额,无需用户发起售后申请。
# 上传退款凭证
商家完成线下退款后,需调用 [API] 上传退款凭证 / uploadrefundcertificate 将退款凭证上传至平台,供用户确认。用户超时未确认,平台将自动确认。
# 售后单兑换虚拟号
在售后沟通过程中,若商家需要通过电话联系用户,可调用 [API] 售后单兑换虚拟号 / applyvirtualtelnum 获取用户的隐私保护虚拟号码,保障用户隐私安全。
# 获取售后原因
- 调用 [API] 获取全量售后原因 / getaftersalereason 获取平台支持的全量售后原因列表,用于商家系统中展示或映射售后原因
- 调用 [API] 获取拒绝售后原因 / getaftersalerejectreason 获取商家可用的拒绝原因列表,在拒绝售后时需传入对应的拒绝原因编码
# 接口全览
# 售后单接口
| 中文名 / 英文名 | 请求方式 | 功能说明 |
|---|---|---|
| 获取售后单列表 / getaftersalelist | POST /channels/ec/aftersale/getaftersalelist | 按时间范围拉取售后单列表 |
| 获取售后单 / getaftersaleorder | POST /channels/ec/aftersale/getaftersaleorder | 根据售后单号获取详情 |
| 同意售后 / acceptapply | POST /channels/ec/aftersale/acceptapply | 同意退款/退货/换货申请 |
| 拒绝售后 / rejectapply | POST /channels/ec/aftersale/rejectapply | 拒绝售后申请 |
| 商家协商 / merchantupdateaftersale | POST /channels/ec/aftersale/merchantupdateaftersale | 与买家协商修改售后方案 |
| 代用户发起售后 / genaftersaleorder | POST /channels/ec/aftersale/genaftersaleorder | 商家主动代用户发起售后 |
| 换货发货 / acceptexchangereship | POST /channels/ec/aftersale/acceptexchangereship | 换货场景商家发货 |
| 换货拒绝发货 / rejectexchangereship | POST /channels/ec/aftersale/rejectexchangereship | 换货场景拒绝发货 |
| 商家处理极速换货用户退货 / handlefastexchangereceipt | POST /channels/ec/aftersale/handlefastexchangereceipt | 极速换货场景确认/拒绝退货 |
| 上传退款凭证 / uploadrefundcertificate | POST /channels/ec/aftersale/uploadrefundcertificate | 上传退款凭证至平台 |
| 获取全量售后原因 / getaftersalereason | POST /channels/ec/aftersale/reason/get | 获取平台全量售后原因列表 |
| 获取拒绝售后原因 / getaftersalerejectreason | POST /channels/ec/aftersale/rejectreason/get | 获取商家可用的拒绝原因列表 |
| 代用户发起退差价 / refundpricediff | POST /channels/ec/aftersale/refundpricediff | 商家代用户发起退差价 |
| 售后单兑换虚拟号 / applyvirtualtelnum | POST /channels/ec/aftersale/applyvirtualtelnum | 售后场景兑换隐私虚拟号 |
# 保障单接口
| 中文名 / 英文名 | 请求方式 | 功能说明 |
|---|---|---|
| 商家获取保障单列表 / searchguaranteeorder | POST /channels/ec/aftersale/searchguaranteeorder | 查询保障单列表 |
| 获取保障单详情 / getguaranteeorder | POST /channels/ec/aftersale/getguaranteeorder | 获取保障单详细信息 |
| 商家同意保障单申请 / merchantacceptguarantee | POST /channels/ec/aftersale/merchantacceptguarantee | 直接同意赔付 |
| 商家拒绝保障单申请 / merchantrefuseguarantee | POST /channels/ec/aftersale/merchantrefuseguarantee | 拒绝并提供凭证,转平台裁决 |
| 商家协商保障单 / merchantmodifyguarantee | POST /channels/ec/aftersale/merchantmodifyguarantee | 仅坏损包退,修改坏损比例 |
| 商家举证保障单 / merchantproofguarantee | POST /channels/ec/aftersale/merchantproofguarantee | 举证阶段提交文字和图片证据 |
# 纠纷单接口
| 中文名 / 英文名 | 请求方式 | 功能说明 |
|---|---|---|
| 获取纠纷单 / getcomplaintorder | POST /channels/ec/aftersale/getcomplaintorder | 获取纠纷单详情 |
| 商家举证 / addcomplaintproof | POST /channels/ec/aftersale/addcomplaintproof | 商家上传纠纷举证材料 |
| 商家补充纠纷单留言 / addcomplaintmaterial | POST /channels/ec/aftersale/addcomplaintmaterial | 商家补充留言说明 |
# 事件通知
| 中文名 / 英文名 | 事件标识 | 功能说明 |
|---|---|---|
| 售后单更新通知 / channels_ec_aftersale_update | Event: channels_ec_aftersale_update | 售后单状态变更回调 |
| 保障单更新通知 / channels_ec_guarantee_update | Event: channels_ec_guarantee_update | 保障单状态变更回调 |
| 纠纷单更新通知 / channels_ec_complaint_update | Event: channels_ec_complaint_update | 纠纷单状态变更回调 |
# 常见问题 FAQ
Q:单笔订单退款请求频率限制是多少? A:单笔订单每分钟申请退款请求次数不超过 1 次(1 qpm)。请勿在一分钟内对同一订单的多个售后单重复发起退款操作。
Q:同意售后接口中 accept_type 参数的作用是什么?
A:在退货退款场景中,[API] 同意售后 / acceptapply 需要调用两次(同意退货 + 确认收货退款),通过 accept_type 参数可以明确指定本次调用的操作类型,避免歧义。