# 售后管理

# 开发前准备

# 售后体系总览

微信小店的售后体系由三种单据构成:

单据 说明 触发条件
售后单 基础单据,商家有同意、拒绝、协商三种操作权,大部分售后在此阶段解决 订单在售后期内,且未超过 5 次上限
纠纷单 售后单的升级通道,用户对售后结果不满时申请平台介入仲裁,仅当售后单被拒绝且 7 天内方可发起。详见 纠纷管理开发指南 售后单被拒绝且 7 天内
保障单 独立顶层通道(不依赖售后单),用户向平台申诉假冒/坏损,走举证→判定→赔付。内部涵盖纠纷处理能力(售后+纠纷=聚合)。详见 保障单开发指南 商品存在假冒或坏损问题

售后单中的 complaint_id 字段可关联对应的纠纷单 ID。

# 售后单核心概念

# 售后类型

类型 说明 对应 type 值
仅退款 用户申请退款不退货 REFUND
退货退款 用户退货并申请退款 RETURN
换货 用户申请换货(含极速换货) EXCHANGE

# 发起售后条件

  • 该商品没有进行中或已完成的售后单
  • 该商品在售后期内
  • 该商品发起售后没有超过发起次数上限(5 次)

# 接入流程

所有售后流程的入口统一为:收到 [事件] 售后单更新通知 / channels_ec_aftersale_update 后,调用 [API] 获取售后单 / getaftersaleorder 查询售后单详情,根据 type 字段判断售后类型,再进入对应流程处理。以下各流程图从「商家处理」节点开始展示。

# 仅退款流程

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#0ab8a6', 'primaryTextColor': '#ffffff', 'primaryBorderColor': '#089e8d', 'lineColor': '#0ab8a6', 'secondaryColor': '#07827a', 'secondaryTextColor': '#ffffff', 'secondaryBorderColor': '#055f59', 'tertiaryColor': '#0ab8a6', 'tertiaryTextColor': '#ffffff', 'tertiaryBorderColor': '#089e8d', 'edgeLabelBackground': '#888888', 'fontColor': '#888888'}}}%% flowchart LR B{"商家处理"} -->|同意| C["[API] 同意售后<br/>acceptapply"] B -->|协商| E["[API] 商家协商<br/>merchantupdateaftersale"] B -->|超时| F E --> L[待用户确认协商] L -->|同意| F L -->|拒绝| B C --> F[退款中] F -->|成功| G[退款完成] F -->|失败| H[失败] B -->|商家拒绝| D["[API] 拒绝售后<br/>rejectapply"] D --> I{可发起纠纷} I -->|发起| J[纠纷介入] I -->|取消| K[售后单关闭] style B fill:#ffffff,stroke:#0ab8a6,color:#666666 style L fill:#ffffff,stroke:#0ab8a6,color:#666666 style F fill:#ffffff,stroke:#0ab8a6,color:#666666 style G fill:#ffffff,stroke:#0ab8a6,color:#666666 style H fill:#ffffff,stroke:#0ab8a6,color:#666666 style I fill:#ffffff,stroke:#0ab8a6,color:#666666 style J fill:#ffffff,stroke:#0ab8a6,color:#666666 style K fill:#ffffff,stroke:#0ab8a6,color:#666666

确认 type=REFUND(仅退款)后,商家执行对应操作:

  • 同意退款:调用 [API] 同意售后 / acceptapply,平台发起退款
  • 协商修改:调用 [API] 商家协商 / merchantupdateaftersale,与买家协商退款方案。协商后系统发送事件通知 status=USER_WAIT_CONFIRM_UPDATE(待用户处理商家协商),商家据此监听用户反馈:用户同意则平台直接发起退款,用户拒绝则回到商家处理阶段。注意:平台要求先协商,协商不成功后方可拒绝
  • 拒绝退款:调用 [API] 拒绝售后 / rejectapply,需在协商被用户拒绝后使用,用户可在规定时间内发起纠纷

商家处理超时说明:商家未在规定时间内处理,超时后平台自动同意退款。若已发货,商家可在超时前通过微信小店管理后台或联系快递公司发起物流拦截(状态变为 WAIT_PACKAGE_INTERCEPT),拦截成功则自动退款,拦截失败则退回商家处理。目前物流拦截暂不支持通过 API 操作。

# 退货退款流程

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#0ab8a6', 'primaryTextColor': '#ffffff', 'primaryBorderColor': '#089e8d', 'lineColor': '#0ab8a6', 'secondaryColor': '#07827a', 'secondaryTextColor': '#ffffff', 'secondaryBorderColor': '#055f59', 'tertiaryColor': '#0ab8a6', 'tertiaryTextColor': '#ffffff', 'tertiaryBorderColor': '#089e8d', 'edgeLabelBackground': '#888888', 'fontColor': '#888888'}}}%% flowchart LR B{"商家处理"} -->|同意| C["[API] 同意售后<br/>acceptapply"] B -->|协商| E["[API] 商家协商<br/>merchantupdateaftersale"] B -->|超时| F E --> L[待用户确认协商] L -->|同意| F L -->|拒绝| B C --> F[待买家退货] F -->|寄回| G{"商家收货"} F -->|超时| H[售后单关闭] G -->|确认收货| C2["[API] 同意售后<br/>acceptapply"] G -->|协商| E2["[API] 商家协商<br/>merchantupdateaftersale"] G -->|拒收| D G -->|超时/自动确认| J E2 --> L2[待用户确认协商] L2 -->|同意| J L2 -->|拒绝| G C2 --> J[退货退款完成] B -->|商家拒绝| D["[API] 拒绝售后<br/>rejectapply"] D --> K{可发起纠纷} K -->|发起| KJ[纠纷介入] K -->|取消| KK[售后单关闭] style B fill:#ffffff,stroke:#0ab8a6,color:#666666 style L fill:#ffffff,stroke:#0ab8a6,color:#666666 style L2 fill:#ffffff,stroke:#0ab8a6,color:#666666 style F fill:#ffffff,stroke:#0ab8a6,color:#666666 style G fill:#ffffff,stroke:#0ab8a6,color:#666666 style H fill:#ffffff,stroke:#0ab8a6,color:#666666 style J fill:#ffffff,stroke:#0ab8a6,color:#666666 style K fill:#ffffff,stroke:#0ab8a6,color:#666666 style KJ fill:#ffffff,stroke:#0ab8a6,color:#666666 style KK fill:#ffffff,stroke:#0ab8a6,color:#666666

确认 type=RETURN(退货退款)后,商家处理操作:

  • 同意退货:调用 [API] 同意售后 / acceptapply,通知买家寄回商品
  • 确认收货并退款:买家寄回后,再次调用 [API] 同意售后 / acceptapply,确认收货并退款
  • 收货后协商:买家寄回商品后,商家如发现商品有损等情况,可再次调用 [API] 商家协商 / merchantupdateaftersale 协商修改退款金额(如扣除部分款项)
  • 收货后拒收:商家可调用 [API] 拒绝售后 / rejectapply 拒绝收货(如商品严重不符),用户可发起纠纷
  • 发起前协商:商家收到售后申请后也可先协商方案,协商后系统发送事件通知 status=USER_WAIT_CONFIRM_UPDATE(待用户处理商家协商),商家据此监听用户反馈:用户同意则进入待买家退货阶段,用户拒绝则回到商家处理阶段。注意:平台要求先协商,协商不成功后方可直接拒绝

退货退款关键节点:

  • 买家超时未寄回退货,售后单自动关闭(RETURN_CLOSED
  • 商家超时未确认收货,平台自动确认并退款

# 换货流程

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#0ab8a6', 'primaryTextColor': '#ffffff', 'primaryBorderColor': '#089e8d', 'lineColor': '#0ab8a6', 'secondaryColor': '#07827a', 'secondaryTextColor': '#ffffff', 'secondaryBorderColor': '#055f59', 'tertiaryColor': '#0ab8a6', 'tertiaryTextColor': '#ffffff', 'tertiaryBorderColor': '#089e8d', 'edgeLabelBackground': '#888888', 'fontColor': '#888888'}}}%% flowchart LR B{"商家处理"} -->|同意| C["[API] 同意售后<br/>acceptapply"] B -->|协商| E["[API] 商家协商<br/>merchantupdateaftersale"] B -->|超时| TR E --> L[待用户确认协商] L -->|同意| TR L -->|拒绝| B C --> TR[待买家退货] TR -->|寄回| F{"商家验货"} TR -->|超时| G[售后单关闭] F -->|发货| H["[API] 换货发货<br/>acceptexchangereship"] F -->|拒发| RI["[API] 换货拒绝发货<br/>rejectexchangereship"] F -->|超时| RF[自动退款] H --> UR[待用户收货] --> Y[换货完成] B -->|商家拒绝| D["[API] 拒绝售后<br/>rejectapply"] D --> K{可发起纠纷} RI --> K K -->|发起| KJ[纠纷介入] K -->|取消| KK[售后单关闭] style B fill:#ffffff,stroke:#0ab8a6,color:#666666 style L fill:#ffffff,stroke:#0ab8a6,color:#666666 style TR fill:#ffffff,stroke:#0ab8a6,color:#666666 style F fill:#ffffff,stroke:#0ab8a6,color:#666666 style G fill:#ffffff,stroke:#0ab8a6,color:#666666 style UR fill:#ffffff,stroke:#0ab8a6,color:#666666 style Y fill:#ffffff,stroke:#0ab8a6,color:#666666 style RF fill:#ffffff,stroke:#0ab8a6,color:#666666 style K fill:#ffffff,stroke:#0ab8a6,color:#666666 style KJ fill:#ffffff,stroke:#0ab8a6,color:#666666 style KK fill:#ffffff,stroke:#0ab8a6,color:#666666

确认 type=EXCHANGE(换货)后,商家处理操作:

换货关键节点:

  • 用户超时未确认收货,系统自动确认,换货完成

# 极速换货流程

极速换货是微信小店为符合条件的部分用户(如资深买家等)提供的专属服务,无需商家主动开通,也不可关闭。与普通换货的核心区别:用户退货快递完成揽收后,商家即需提前发货,无需等退货到仓。该功能 2026 年 4 月 20 日正式生效,详见公告:极速换货 API 接口调整公告

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#0ab8a6', 'primaryTextColor': '#ffffff', 'primaryBorderColor': '#089e8d', 'lineColor': '#0ab8a6', 'secondaryColor': '#07827a', 'secondaryTextColor': '#ffffff', 'secondaryBorderColor': '#055f59', 'tertiaryColor': '#0ab8a6', 'tertiaryTextColor': '#ffffff', 'tertiaryBorderColor': '#089e8d', 'edgeLabelBackground': '#888888', 'fontColor': '#888888'}}}%% flowchart LR B{"商家处理"} -->|同意| C["[API] 同意售后<br/>acceptapply"] B -->|协商| E["[API] 商家协商<br/>merchantupdateaftersale"] B -->|超时| FE E --> L[待用户确认协商] L -->|同意| FE L -->|拒绝| B C --> FE[退货揽收] --> F{"按时发货?"} F -->|是| G["[API] 换货发货<br/>acceptexchangereship"] --> I[待用户收货] F -->|超时| H[自动转退款] I --> J2[旧品退回] --> V{"商家验货"} V -->|"确认(act=1)"| VL["[API] 处理极速换货用户退货<br/>handlefastexchangereceipt"] --> O[换货完成] V -->|"拒绝(act=2)"| VR["[API] 处理极速换货用户退货<br/>handlefastexchangereceipt"] --> K{可发起纠纷} V -->|超时| VN[默认收货] --> O B -->|商家拒绝| D["[API] 拒绝售后<br/>rejectapply"] D --> K K -->|发起| KJ[纠纷介入] K -->|取消| KK[售后单关闭] style B fill:#ffffff,stroke:#0ab8a6,color:#666666 style L fill:#ffffff,stroke:#0ab8a6,color:#666666 style FE fill:#ffffff,stroke:#0ab8a6,color:#666666 style F fill:#ffffff,stroke:#0ab8a6,color:#666666 style H fill:#ffffff,stroke:#0ab8a6,color:#666666 style I fill:#ffffff,stroke:#0ab8a6,color:#666666 style J2 fill:#ffffff,stroke:#0ab8a6,color:#666666 style V fill:#ffffff,stroke:#0ab8a6,color:#666666 style O fill:#ffffff,stroke:#0ab8a6,color:#666666 style VN fill:#ffffff,stroke:#0ab8a6,color:#666666 style K fill:#ffffff,stroke:#0ab8a6,color:#666666 style KJ fill:#ffffff,stroke:#0ab8a6,color:#666666 style KK fill:#ffffff,stroke:#0ab8a6,color:#666666

通过 [API] 获取售后单 / getaftersaleorder 返回的 exchange_info.fast_exchange_info.fast_exchange === true 可判断该单为极速换货单(type=EXCHANGE);merchant_confirm == 1merchant_reject == 1 表示商家已操作,无需重复调用。商家处理操作:

  • 同意换货:调用 [API] 同意售后 / acceptapply
  • 协商修改:调用 [API] 商家协商 / merchantupdateaftersale,与买家协商换货方案。协商后系统发送事件通知 status=USER_WAIT_CONFIRM_UPDATE(待用户处理商家协商),商家据此监听用户反馈:用户同意则进入退货揽收阶段,用户拒绝则回到商家处理阶段。注意:平台要求先协商,协商不成功后方可拒绝
  • 拒绝换货:调用 [API] 拒绝售后 / rejectapply,需在协商被用户拒绝后使用,用户可在规定时间内发起纠纷
  • 发货:用户退货快递完成揽收后,商家须在规定时间内调用 [API] 换货发货 / acceptexchangereship 发出换货商品。超时未发货,换货申请自动转为退货退款,平台直接退款
  • 退货验收:退货包裹签收后,商家须调用 [API] 商家处理极速换货用户退货 / handlefastexchangereceipt 确认或拒绝收货(act1 确认,2 拒绝)。超时未操作,平台视为商家默认同意收货。拒绝收货需提供举证材料reject_confirm_exchange 传入 media_id 列表),拒绝原因使用 reject_scene7 的枚举值,用户可在规定时间内发起纠纷

# 其他售后场景

# 商家代用户发起售后

当用户未主动发起售后,但商家需要主动为用户退款(如商品缺货、错发、补偿等),可调用 [API] 代用户发起售后 / genaftersaleorder 代替用户创建售后单。该接口支持仅退款和退货退款两种类型,创建成功后流程与用户自主发起的售后单一致。

# 代用户发起退差价

当商品存在价格波动或促销补差场景时,商家可调用 [API] 代用户发起退差价 / refundpricediff 主动为用户退还差价金额,无需用户发起售后申请。

# 上传退款凭证

商家完成线下退款后,需调用 [API] 上传退款凭证 / uploadrefundcertificate 将退款凭证上传至平台,供用户确认。用户超时未确认,平台将自动确认。

# 售后单兑换虚拟号

在售后沟通过程中,若商家需要通过电话联系用户,可调用 [API] 售后单兑换虚拟号 / applyvirtualtelnum 获取用户的隐私保护虚拟号码,保障用户隐私安全。

# 获取售后原因

# 接口全览

# 售后单接口

中文名 / 英文名 请求方式 功能说明
获取售后单列表 / 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 参数可以明确指定本次调用的操作类型,避免歧义。

文档变更日志(1条)
2026 年 04 月 17 日
新增 售后管理 开发指南