# 交易类投诉处理
修订记录
时间 | 修订内容 | 备注 |
---|---|---|
2024年3月25日 | 1、新增「平台判定商家责任,平台退款中-312」状态 2、「待商家处理-201」、「平台判定商家责任,待上传处理凭证-206」状态到期时间由72h改为48h | 生效时间为2024年3月25日 |
以下接口提供给小程序开发者用于接收、查询、处理小程序用户交易类投诉。小程序交易类投诉全流程如下:
交易类投诉处理能力包括:
# 投诉信息推送
如有新增投诉、投诉进展变更、投诉信息更新时,平台将把投诉信息推送到小程序开发者配置的消息服务器。查看消息服务器配置
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1546924844</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[complaint_callback]]></Event>
<BussiCallBackInfo>
<appid>123</appid>
<option_type>123</option_type>
<complaint_order_id>123</complaint_order_id>
<status>123</status>
<create_time>123</create_time>
<expire_time>123</expire_time>
<type>123</type>
<order_id>123</order_id>
<out_trade_no>123</out_trade_no>
<phone_number>123</phone_number>
<open_id>123</open_id>
<customer_material_content>123</customer_material_content>
<customer_material_media_id_list>123</customer_material_media_id_list> // 投诉内容图片cdn(出于安全性考虑,目前该图片url有过期时间,如需查看图片,需每次重新调用该接口获取,防止图片过期导致无法查看)
<pay_time>123</pay_time>
<total_cost>123</total_cost>
<product_name>123</product_name>
<history>
<time>123</time>
<content>123</content>
<media_id_list>123</media_id_list>
</history>
<history>
<time>123</time>
<content>123</content>
<media_id_list>123<media_id_list>
</history>
</BussiCallBackInfo>
</xml>
字段名 | 字段说明 |
---|---|
appid | 小程序appid |
option_type | 通知事件类型:首次发起投诉/投诉进度更新 |
complaint_order_id | 投诉单号 |
status | 投诉单状态 |
create_time | 投诉发起时间 |
expire_time | 投诉当前状态到期时间 |
type | 投诉问题类型,枚举值参考下面表格 |
order_id | 被投诉的微信支付单号 |
out_trade_no | 商家订单号 |
phone_number | 投诉人联系方式 |
open_id | 投诉人openid |
customer_material_content | 投诉详情-文本 |
customer_material_media_id_list | 投诉详情-图片(出于安全性考虑,目前该图片url有过期时间,如需查看图片,需每次重新调用该接口获取,防止图片过期导致无法查看) |
pay_time | 被投诉的订单交易时间 |
total_cost | 被投诉的订单金额 |
product_name | 被投诉的订单商品描述 |
history | 投诉进度,time 进度变更时间,content 进度变更文本,media_id_list 进度变更图片 |
# 查询投诉单详情
# 请求方法
GET
# 请求 URL
https://api.weixin.qq.com/wxaapi/minishop/complaintOrderDetail?complaintOrderId=xxx&access_token=xxx
# 返回结果示例
{
errcode: 0,
errmsg: "ok",
complaintOrder: {
complaintOrderId: "sadfasdf",//订单id
openId: "dfasefasefase", //openId
createTime: 1658903527, //投诉发起时间
phoneNumber: 13599125777, //联系方式
type: 12, //投诉问题分类
status: 1,//订单状态,枚举值
customerMaterial:{
content: ", //投诉内容
mediaIdList: ["fsadfasdfsaf"], // 投诉内容图片cdn(出于安全性考虑,目前该图片url有过期时间,如需查看图片,需每次重新调用该接口获取,防止图片过期导致无法查看)
},
orderId: "2342", //微信支付订单号
outTradeNo: "sdfsfd", //商家订单号
productName: "sdf", //商品名称
payTime: 1658903465, //支付时间
totalCost: "¥0.01", //交易金额
expireTime: 1658903564, //投诉单当前状态到期时间,0为不存在
headImgUrl: "http://xxx.xxx/xxx",//头像URL
nickName: "xxxxxx",//微信昵称
appealState: 403, //申诉状态,枚举值
},
// 投诉进度
item:[{
itemType: 1, //投诉节点状态
time: 1658903527, //时间
content: "", //内容
mediaIdList: ["https://asdfasdf"], //图片cdn列表
phoneNumber: 13599125777, //手机号
blameResult: 0,
nickName: "",
appealItemType: 401, // 投诉节点申诉状态(item处于申诉阶段才有)
}],
returnBill: {
returnId: "23234234234", //退货id
waybillId: "YDxxxxd", //运单号
deliveryName: "韵达快递", //运力公司
orderStatus: 4 //运单状态
}
}
# 返回参数含义
订单详情
参数 | 说明 |
---|---|
complaintOrderId | 订单id |
openid | 用户的openid |
createTime | 投诉发起时间 |
phoneNumber | 联系方式 |
type | 投诉问题分类,枚举值参考下面表格 |
customerMaterial.content | 投诉内容 |
customerMaterial.mediaIdList | 投诉内容图片cdn(出于安全性考虑,目前该图片url有过期时间,如需查看图片,需每次重新调用该接口获取,防止图片过期导致无法查看) |
orderId | 微信支付订单号 |
outTradeNo | 商家订单号 |
productName | 商品名称 |
payTime | 支付时间 |
totalCostStr | 交易金额 |
status | 投诉单状态,枚举值参考下面表格 |
returnId | 退货id,通过接口生成 |
orderStatus | 运单状态,枚举值参考下面表格 |
waybillId | 运单号 |
deliveryName | 运力公司 |
appealState | 申诉状态,枚举值参考下面表格:0--未进入申诉阶段,401--待商家申诉,402--超过申诉时间,403--申诉中,117--申诉成功,118--申诉失败 |
投诉单问题类型枚举(type)
值 | 说明 |
---|---|
611 | 发货问题-未按约定时间发货 |
612 | 发货问题-商家拒绝发货 |
613 | 发货问题-少发/错发 |
614 | 发货问题-物流信息长时间不更新 |
621 | 客服问题-客服不回复 |
622 | 客服问题-客服辱骂/骚扰/恐吓 |
631 | 承诺未履行-赠品承诺未履行 |
632 | 承诺未履行-物流承诺未履行 |
633 | 承诺未履行-其他 |
641 | 商品问题-描述不符 |
642 | 商品问题-商品破损 |
643 | 商品问题-其他 |
650 | 收费异常问题-车辆没电或故障 |
651 | 收费异常问题-关锁成功仍计费 |
652 | 收费异常问题-扣费金额不对 |
653 | 收费异常问题-规范停车仍扣调度费 |
654 | 收费异常问题-其他 |
655 | 骑行卡问题-已购买骑行卡,仍扣费 |
656 | 骑行卡问题-骑行卡退款 |
657 | 押金/余额退还问题-押金退还 |
658 | 押金/余额退还问题-余额退还 |
659 | 客服问题-客服不回复 |
660 | 收费异常问题-充电宝未弹出,已扣费 |
661 | 收费异常问题-充电宝无法正常使用 |
662 | 收费异常问题-已归还,仍计费 |
663 | 收费异常问题-不认可计费时长 |
664 | 收费异常问题-其他 |
665 | 押金退还问题-押金退还异常 |
666 | 其他问题-客服不回复 |
667 | 其他问题-归还点少无法归还 |
668 | 其他问题-误操作购买,需消费 |
670 | 欺诈问题-虚假广告 |
671 | 欺诈问题-剧集数量与承诺不符 |
672 | 欺诈问题-付款金额与页面不符 |
673 | 欺诈问题-剧集内容与宣传不符 |
674 | 欺诈问题-营销活动问题 |
675 | 扣费问题-重复扣费 |
676 | 扣费问题-无理由扣费 |
677 | 扣费问题-扣费标准不一致 |
678 | 扣费问题-未成年误付款 |
679 | 其他问题 |
610001 | 可观看数量/时长与承诺不符 |
610002 | 剧集内容与宣传不符 |
610003 | 内容无法播放 |
610004 | 未成年人误付款 |
610005 | 其他 |
投诉单状态枚举(status)
值 | 说明 |
---|---|
101 | 平台客服处理中 |
102 | 用户取消申请 |
103 | 平台客服处理中 |
104 | 平台客服处理中 |
105 | 平台客服处理中 |
106 | 待商家补充凭证 |
107 | 平台客服处理中 |
108 | 待双方补充凭证 |
109 | 平台客服处理中 |
112 | 投诉已完结 |
115 | 投诉已完结 |
116 | 投诉已完结 |
201 | 待处理 |
202 | 商家超时未回应,待用户确认 |
203 | 已回应,待用户确认 |
204 | 已回应,待用户确认 |
205 | 投诉已完结 |
206 | 平台已判定为商责,待上传处理凭证 |
207 | 平台客服核实凭证中 |
208 | 超时未上传凭证 |
209 | 投诉已关闭 |
305 | 平台客服处理中 |
307 | 平台客服处理中 |
308 | 平台已判定为商责,待用户退货中 |
309 | 平台已判定为商责,待用户退货中 |
310 | 平台客服处理中 |
311 | 签收异常 |
312 | 平台判定商家责任,平台退款中 |
运力单状态枚举(orderStatus)
值 | 说明 |
---|---|
0 | 已下单待揽件 |
1 | 已揽件 |
2 | 运输中 |
3 | 派件中 |
4 | 已签收 |
5 | 异常 |
6 | 代签收 |
7 | 揽收失败 |
8 | 签收失败 |
10 | 未下单 |
11 | 已取消 |
12 | 已删除 |
13 | 退件中 |
14 | 已退件 |
15 | 运力方取消 |
99 | 未确认状态 |
申诉状态枚举(appealState):
值 | 说明 |
---|---|
0 | 未进入申诉阶段 |
401 | 待商家申诉 |
402 | 超过申诉时间 |
403 | 申诉中 |
117 | 申诉成功 |
118 | 申诉失败 |
投诉进度(item):
参数 | 说明 |
---|---|
itemType | 每个节点的类型,枚举值 参考下面表格 |
time | 时间 |
content | 内容文本 |
mediaIdList | 图片cdn资源列表 |
phoneNumber | 手机号 |
blameResult | itemType 为(31, 32)时,判断是否经过退货的描述, 1对应文案为待用户退货中,0则对应文案为待上传处理凭证 |
nickName | 操作者昵称 |
appealItemType | 处于申诉阶段节点的申诉状态,枚举值 参考下面表格 |
itemType合法值:
值 | 描述 |
---|---|
1 | 用户发起投诉 |
2 | 用户补充留言 |
3 | 商家补充留言 |
7 | 用户补充凭证 |
8 | 商家补充凭证 |
11 | 用户申请平台客服协助 |
12 | 用户撤销投诉 |
13 | 平台客服处理中 |
14 | 待用户补充凭证 |
16 | 待商家补充凭证 |
18 | 平台要求双方补充凭证 |
26 | 平台核实处理凭证异常,投诉关闭,请商家自行联系用户解决问题,保障用户体验 |
30 | 平台已核实此投诉非商家责任,投诉已完结 |
31 | 平台已核实此投诉为商家责任,待上传处理凭证(blameResult为0)/平台已核实此投诉为商家责任,待用户退货中(blameResult为1) |
32 | 平台已核实此投诉为商家责任,待上传处理凭证(blameResult为0)/平台已核实此投诉为商家责任,待用户退货中(blameResult为1) |
33 | 平台已核实此投诉非商家责任,投诉已完结 |
36 | 平台已核实处理凭证,投诉完结 |
37 | 平台核实处理凭证异常,投诉关闭,请商家自行联系用户解决问题,保障用户体验 |
101 | 商家超时未回应投诉 |
104 | 用户认可处理结果,投诉已完结 |
107 | 商家超时未提交投诉处理凭证,平台客服处理中 |
108 | 用户超时未确认商家回应结果,投诉已完结 |
109 | 商家已回应投诉 |
110 | 商家提交投诉处理凭证 |
111 | 用户补充凭证超时 |
112 | 商家补充凭证超时 |
113 | 双方补充凭证超时 |
118 | 商责自动赔付 |
appealItemType合法值:
值 | 说明 |
---|---|
0 | 未进入申诉阶段 |
401 | 待商家申诉 |
402 | 超过申诉时间 |
403 | 申诉中 |
117 | 申诉成功 |
118 | 申诉失败 |
# 商家回应投诉
# 请求方法
POST
# 请求 URL
https://api.weixin.qq.com/wxaapi/minishop/bussiRespondComplaint?access_token=xxx
# 请求参数示例
{
"content": "", // 回应的内容
"complaintOrderId": 123456, // 单号
"mediaIdList": [], // 图片的id
"bussiHandle": 1,// 操作1是同意和解,2是拒绝和解
}
# 请求参数含义
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
content | string | content跟mediaIdList二选一必填 | 回应的内容(图片数组跟内容二选一必填) |
complaintOrderId | number | 是 | 单号 |
mediaIdList | Array<string> | content跟mediaIdList二选一必填 | 图片id列表,可参考这 https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html |
bussiHandle | number | 是 | 操作:1是同意和解,2是拒绝和解 |
# 正确返回示例
{
"errcode": 0 // 0:成功
}
# 返回参数含义
参数 | 类型 | 说明 |
---|---|---|
errcode | number | 返回码 |
errmsg | string | 错误信息 |
返回码:
返回码 | 说明 |
---|---|
0 | 成功 |
1 | 单号不存在 |
10001 | 参数异常,errmsg字段展示具体描述 |
# 商家补充凭证
# 请求方法
POST
# 请求 URL
https://api.weixin.qq.com/wxaapi/minishop/bussiSupplyProof?access_token=xxx
# 请求参数示例
{
"content": "",
"complaintOrderId": 123456, // 单号
"mediaIdList": [], // 图片的idlist
}
# 请求参数含义
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
content | string | content跟mediaIdList二选一必填 | 回应的内容(图片数组跟内容二选一必填) |
complaintOrderId | number | 是 | 单号 |
mediaIdList | Array<string> | content跟mediaIdList二选一 | 图片id列表,可参考这 https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html |
# 正确返回示例
{
"errcode": 0 // 0:成功
}
# 返回参数含义
参数 | 类型 | 说明 |
---|---|---|
errcode | number | 返回码 |
errmsg | string | 错误信息 |
返回码:
返回码 | 说明 |
---|---|
0 | 成功 |
1 | 单号不存在 |
10001 | 参数异常,errmsg字段展示具体描述 |
# 商家提交退款凭证
# 请求方法
POST
# 请求 URL
https://api.weixin.qq.com/wxaapi/minishop/bussiSupplyRefund?access_token=xxx
# 请求参数示例
//提交退款凭证
{
"content": "",
"complaintOrderId": 123456, // 单号
"mediaIdList": [], // 图片的idlist
}
//退货场景下,提交退款凭证
{
"content": "",
"complaintOrderId": 123456, //单号
"mediaIdList": [], // 图片的idlist
"acceptReturn": 1, //1确认收货,2签收异常(退货状态下必填)
"returnId": '2342342' //退货id,通过查询投诉单详情接口获取(退货状态下必填)
}
# 请求参数含义
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
content | string | content跟mediaIdList二选一必填 | 回应的内容(图片数组跟内容二选一必填) |
complaintOrderId | number | 是 | 单号 |
mediaIdList | Array<string> | content跟mediaIdList二选一必填 | 图片的id list 图片id列表,可参考这 https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html |
acceptReturn | number | 退货状态下必填 | 确认是否收货 |
returnId | number | 退货状态下必填 | 退货单号,需要通过查询投诉单详情接口获取 |
# 正确返回示例
{
"errcode": 0 // 0:成功
}
# 返回参数含义
参数 | 类型 | 说明 |
---|---|---|
errcode | number | 返回码 |
errmsg | string | 错误信息 |
返回码:
返回码 | 说明 |
---|---|
0 | 成功 |
1 | 单号不存在 |
10001 | 参数异常,errmsg字段展示具体描述 |
# 商家申诉
# 请求方法
POST
# 请求 URL
https://api.weixin.qq.com/wxaapi/minishop/busiAppeal?access_token=xxx
# 请求参数示例
// 提交申诉材料
{
"content": "",
"complaintOrderId": 123456, //单号
"mediaIdList": [], // 图片的idlist
}
# 请求参数含义
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
content | string | content跟mediaIdList均必填 | 申诉材料(图片数组跟内容均必填) |
complaintOrderId | number | 是 | 单号 |
mediaIdList | Array<string> | content跟mediaIdList均必填 | 图片的id list 图片id列表,可参考这 https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html |
# 正确返回示例
{
"errcode": 0 // 0:成功
}
# 返回参数含义
参数 | 类型 | 说明 |
---|---|---|
errcode | number | 返回码 |
errmsg | string | 错误信息 |
返回码:
返回码 | 说明 |
---|---|
0 | 成功 |
1 | 单号不存在 |
2 | 传入mediaIdList或content格式有误 |
1002 | 当前状态不支持该操作 |
10001 | 参数异常,errmsg字段展示具体描述 |