查询投诉单协商历史

更新时间:2025.08.28

商户可通过调用此接口,查询指定投诉单的用户与商户的协商历史,以分页输出查询结果,方便商户根据处理历史来制定后续处理方案。

接口说明

支持商户:【普通服务商】 【从业机构(银行)】 【从业机构(支付机构)】 【渠道商】 【清算机构】

请求方式:【GET】/v3/merchant-service/complaints-v2/{complaint_id}/negotiation-historys

请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点

     【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看

请求参数

Header  HTTP头参数

 Authorization  必填 string

请参考签名认证生成认证信息


 Accept  必填 string

请设置为application/json


path  路径参数

 complaint_id  必填   string(64)

【投诉单号】 投诉单对应的投诉单号


query  查询参数

 limit  选填   integer

【分页大小】 设置该次请求返回的最大协商历史条数,范围[1,300]


 offset  选填   integer

【分页开始位置】 该次请求的分页开始位置,从0开始计数,例如offset=10,表示从第11条记录开始返回。

请求示例

curl
Java
Go

GET

1curl -X GET \
2  https://api.mch.weixin.qq.com/v3/merchant-service/complaints-v2/200201820200101080076610000/negotiation-historys?limit=50&offset=10 \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" 
5

应答参数
折叠全部参数

200 OK

 data  选填   array[object]

【投诉协商历史】 投诉协商历史

属性

 log_id  必填   string(64)

【操作流水号】 操作流水号


 operator  必填   string(64)

【操作人】 当前投诉协商记录的操作人


 operate_time  必填   string(64)

【操作时间】 当前投诉协商记录的操作时间


 operate_type  必填   string

【操作类型】 当前投诉协商记录的操作类型,对应枚举ComplaintNegotiationOperateType

可选取值

  • USER_CREATE_COMPLAINT:  用户提交投诉

  • USER_CONTINUE_COMPLAINT:  用户继续投诉

  • USER_RESPONSE:  用户留言

  • PLATFORM_RESPONSE:  平台留言

  • MERCHANT_RESPONSE:  商户留言

  • MERCHANT_CONFIRM_COMPLETE:  商户申请结单

  • USER_CREATE_COMPLAINT_SYSTEM_MESSAGE:  用户提交投诉系统通知

  • COMPLAINT_FULL_REFUNDED_SYSTEM_MESSAGE:  投诉单发起全额退款系统通知

  • USER_CONTINUE_COMPLAINT_SYSTEM_MESSAGE:  用户继续投诉系统通知

  • USER_REVOKE_COMPLAINT:  用户主动撤诉(只存在于历史投诉单的协商历史中)

  • USER_COMFIRM_COMPLAINT:  用户确认投诉解决(只存在于历史投诉单的协商历史中)

  • PLATFORM_HELP_APPLICATION:  平台催办

  • USER_APPLY_PLATFORM_HELP:  用户申请平台协助

  • MERCHANT_APPROVE_REFUND:  商户同意退款申请

  • MERCHANT_REFUSE_RERUND:  商户拒绝退款申请, 此时操作内容里展示拒绝原因

  • USER_SUBMIT_SATISFACTION:  用户提交满意度调查结果,此时操作内容里会展示满意度分数

  • SERVICE_ORDER_CANCEL:  服务订单已取消

  • SERVICE_ORDER_COMPLETE:  服务订单已完成

  • COMPLAINT_PARTIAL_REFUNDED_SYSTEM_MESSAGE:  投诉单发起部分退款系统通知

  • COMPLAINT_REFUND_RECEIVED_SYSTEM_MESSAGE:  投诉单退款到账系统通知

  • COMPLAINT_ENTRUSTED_REFUND_SYSTEM_MESSAGE:  投诉单受托退款系统通知

  • USER_APPLY_PLATFORM_SERVICE:  用户申请平台协助

  • USER_CANCEL_PLATFORM_SERVICE:  用户取消平台协助

  • PLATFORM_SERVICE_FINISHED:  客服结束平台协助

  • USER_CLICK_RESPONSE:  用户因点击产生留言


 operate_details  选填   string(500)

【操作内容】 当前投诉协商记录的具体内容


 image_list  选填   array[string]

【图片凭证】 商户或微信支付客服上传的图片,以URL形式返回。注:此字段不包含用户提交的图片凭证,建议统一使用complaint_media_list字段接收和请求资料凭证,未来该字段将废弃


 complaint_media_list  选填   object

【操作资料列表】 对投诉单执行操作时上传的资料凭证,包含用户、商户、微信支付客服等角色操作

属性

 media_type  必填   string

【媒体文件业务类型】 媒体文件对应的业务类型

可选取值

  • USER_COMPLAINT_IMAGE:  用户提交投诉时上传的图片凭证

  • OPERATION_IMAGE:  用户、商户、微信支付客服在协商解决投诉时,上传的图片凭证


 media_url  必填   array[string(512)]

【媒体文件请求url】 微信返回的媒体文件请求url,详细调用请参考:图片请求接口
示例 "https://api.mch.weixin.qq.com/v3/merchant-service/images/xxxxx" 中 "xxxxx" 代表媒体文件标识 ID(meida_id)


 user_appy_platform_service_reason  选填   string

【用户申请平台协助原因】 用户此次申请平台协助时选择的申请协助原因(已废弃)


 user_appy_platform_service_reason_description  选填   string

【用户申请平台协助原因描述】 用户此次申请平台协助时填写的具体申请协助原因描述(已废弃)


 normal_message  选填   object

【普通消息内容】 当operate_type为MERCHANT_RESPONSE且商户使用即时服务回复接口ResponseComplaintImmediateService发送商户回复时,此字段有值。与发送消息的结构一致

属性

 blocks  选填   array[object]

【消息内容】 消息内容块列表,支持文本、图片、链接、推荐FAQ、按钮和按钮组等多种类型的消息块

属性

 type  选填   string

【消息块类型】 消息块类型,用于标识当前消息块的内容类型

可选取值

  • TEXT:  文本

  • IMAGE:  图片

  • LINK:  链接

  • FAQ_LIST:  FAQ列表

  • BUTTON:  按钮

  • BUTTON_GROUP:  按钮组


 text  选填   object

【文本】 文本消息块,当type为TEXT时使用

属性

 text  选填   string

【文字内容】 文字内容


 color  选填   string

【文本颜色】 文本颜色

可选取值

  • DEFAULT:  默认文本内容颜色

  • SECONDARY:  次要文本内容颜色


 is_bold  选填   boolean

【是否粗体】 是否粗体


 image  选填   object

【图片】 图片消息块,当type为IMAGE时使用

属性

 media_id  选填   string

【媒体ID】 媒体ID


 image_style_type  选填   string

【图片样式类型】 图片样式类型

可选取值

  • IMAGE_STYLE_TYPE_NARROW:  窄图

  • IMAGE_STYLE_TYPE_WIDE:  宽图


 link  选填   object

【链接】 链接消息块,当type为LINK时使用

属性

 text  选填   string

【链接文案】 链接文案


 action  选填   object

【动作】 动作

属性

 action_type  选填   string

ActionType 动作类型

可选取值

  • ACTION_TYPE_SEND_MESSAGE:  回复消息,用户点击后会发送消息,此时message_info必填

  • ACTION_TYPE_JUMP_URL:  链接,用户点击后跳转链接,此时jump_url必填

  • ACTION_TYPE_JUMP_MINI_PROGRAM:  小程序,用户点击后跳转到小程序页面,此时


 jump_url  选填   string

跳转链接


 mini_program_jump_info  选填   object

跳转的小程序

属性

 appid  选填   string

小程序appid


 path  选填   string

小程序path


 message_info  选填   object

回复消息内容

属性

 content  必填   string

回复的消息内容


 custom_data  选填   string

自定义透传字段


 action_id  选填   string

动作id


 invalid_info  选填   object

【失效配置】 失效配置

属性

 expired_time  选填   string

过期时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日13点29分35秒。


 multi_clickable  选填   boolean

是否可以多次点击


 faq_list  选填   object

【FAQ列表】 FAQ列表,当type为FAQ_LIST时使用

属性

 faqs  选填   array[object]

【FAQ列表】 FAQ列表

属性

 faq_id  选填   string

【faq的id】 faq的id


 faq_title  选填   string

【faq内容】 faq内容


 action  选填   object

【动作】 动作

属性

 action_type  选填   string

ActionType 动作类型

可选取值

  • ACTION_TYPE_SEND_MESSAGE:  回复消息,用户点击后会发送消息,此时message_info必填

  • ACTION_TYPE_JUMP_URL:  链接,用户点击后跳转链接,此时jump_url必填

  • ACTION_TYPE_JUMP_MINI_PROGRAM:  小程序,用户点击后跳转到小程序页面,此时


 jump_url  选填   string

跳转链接


 mini_program_jump_info  选填   object

跳转的小程序

属性

 appid  选填   string

小程序appid


 path  选填   string

小程序path


 message_info  选填   object

回复消息内容

属性

 content  必填   string

回复的消息内容


 custom_data  选填   string

自定义透传字段


 action_id  选填   string

动作id


 button  选填   object

【按钮】 按钮消息块,当type为BUTTON时使用

属性

 text  选填   string

【按钮文本】 按钮文本


 action  选填   object

【动作】 动作

属性

 action_type  选填   string

ActionType 动作类型

可选取值

  • ACTION_TYPE_SEND_MESSAGE:  回复消息,用户点击后会发送消息,此时message_info必填

  • ACTION_TYPE_JUMP_URL:  链接,用户点击后跳转链接,此时jump_url必填

  • ACTION_TYPE_JUMP_MINI_PROGRAM:  小程序,用户点击后跳转到小程序页面,此时


 jump_url  选填   string

跳转链接


 mini_program_jump_info  选填   object

跳转的小程序

属性

 appid  选填   string

小程序appid


 path  选填   string

小程序path


 message_info  选填   object

回复消息内容

属性

 content  必填   string

回复的消息内容


 custom_data  选填   string

自定义透传字段


 action_id  选填   string

动作id


 invalid_info  选填   object

【失效配置】 失效配置

属性

 expired_time  选填   string

过期时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日13点29分35秒。


 multi_clickable  选填   boolean

是否可以多次点击


 button_group  选填   object

【按钮组】 按钮组消息块,当type为BUTTON_GROUP时使用

属性

 buttons  选填   array[object]

【按钮组】 按钮组

属性

 text  选填   string

【按钮文本】 按钮文本


 action  选填   object

【动作】 动作

属性

 action_type  选填   string

ActionType 动作类型

可选取值

  • ACTION_TYPE_SEND_MESSAGE:  回复消息,用户点击后会发送消息,此时message_info必填

  • ACTION_TYPE_JUMP_URL:  链接,用户点击后跳转链接,此时jump_url必填

  • ACTION_TYPE_JUMP_MINI_PROGRAM:  小程序,用户点击后跳转到小程序页面,此时


 jump_url  选填   string

跳转链接


 mini_program_jump_info  选填   object

跳转的小程序

属性

 appid  选填   string

小程序appid


 path  选填   string

小程序path


 message_info  选填   object

回复消息内容

属性

 content  必填   string

回复的消息内容


 custom_data  选填   string

自定义透传字段


 action_id  选填   string

动作id


 button_layout  选填   string

【按钮布局方式】 按钮布局方式,默认 LAYOUT_HORIZONTAL

可选取值

  • LAYOUT_UNKNOWN

  • LAYOUT_HORIZONTAL:  水平排列

  • LAYOUT_VERTICAL:  垂直排列


 invalid_info  选填   object

【失效配置】 失效配置

属性

 expired_time  选填   string

过期时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日13点29分35秒。


 multi_clickable  选填   boolean

是否可以多次点击


 sender_identity  选填   string

【发送者身份类别】 发送者身份类别,标识消息是由人工还是机器发送

可选取值

  • UNKNOWN:  未知

  • MANUAL:  人工

  • MACHINE:  机器


 custom_data  选填   string(4096)

【自定义透传信息】 商户自定义的透传数据,用于传递业务相关信息


 click_message  选填   object

【用户点击回复消息】 用户点击回复消息,当operate_type为USER_CLICK_RESPONSE时,此字段有值

属性

 message_content  选填   string(1024)

【回复的消息内容】 


 action_id  选填   string(4096)

【自定义透传数据】 动作id


 clicked_log_id  选填   string(128)

【被点击的操作流水号】 唯一标识本次点击事件所关联的操作或消息的流水号,用于事件追踪和溯源


 limit  必填   integer

【分页大小】 设置该次请求返回的最大协商历史条数,范围[1,300]


 offset  必填   integer

【分页开始位置】 设置该次请求返回的最大协商历史条数,范围[1,300]


 total_count  选填   integer

【投诉协商历史总条数】 投诉协商历史总条数,当offset=0时返回

应答示例

200 OK

1{
2  "data" : [
3    {
4      "log_id" : "300285320210322170000071077",
5      "operator" : "投诉人",
6      "operate_time" : "2015-05-20T13:29:35.120+08:00",
7      "operate_type" : "USER_CREATE_COMPLAINT",
8      "operate_details" : "已与用户电话沟通解决",
9      "image_list" : [
10        "https://qpic.cn/xxx"
11      ],
12      "complaint_media_list" : {
13        "media_type" : "USER_COMPLAINT_IMAGE",
14        "media_url" : [
15          "https://api.mch.weixin.qq.com/v3/merchant-service/images/xxxxx"
16        ]
17      },
18      "user_appy_platform_service_reason" : "商家响应不及时",
19      "user_appy_platform_service_reason_description" : "一周前就提交咨询了,到现在商家还没理我",
20      "normal_message" : {
21        "blocks" : [
22          {
23            "type" : "TEXT",
24            "text" : {
25              "text" : "example_text",
26              "color" : "DEFAULT",
27              "is_bold" : false
28            },
29            "image" : {
30              "media_id" : "example_media_id",
31              "image_style_type" : "IMAGE_STYLE_TYPE_NARROW"
32            },
33            "link" : {
34              "text" : "example_text",
35              "action" : {
36                "action_type" : "ACTION_TYPE_SEND_MESSAGE",
37                "jump_url" : "example_jump_url",
38                "mini_program_jump_info" : {
39                  "appid" : "example_appid",
40                  "path" : "example_path"
41                },
42                "message_info" : {
43                  "content" : "example_content",
44                  "custom_data" : "example_custom_data"
45                },
46                "action_id" : "example_action_id"
47              },
48              "invalid_info" : {
49                "expired_time" : "example_expired_time",
50                "multi_clickable" : false
51              }
52            },
53            "faq_list" : {
54              "faqs" : [
55                {
56                  "faq_id" : "example_faq_id",
57                  "faq_title" : "example_faq_title",
58                  "action" : {
59                    "action_type" : "ACTION_TYPE_SEND_MESSAGE",
60                    "jump_url" : "example_jump_url",
61                    "mini_program_jump_info" : {
62                      "appid" : "example_appid",
63                      "path" : "example_path"
64                    },
65                    "message_info" : {
66                      "content" : "example_content",
67                      "custom_data" : "example_custom_data"
68                    },
69                    "action_id" : "example_action_id"
70                  }
71                }
72              ]
73            },
74            "button" : {
75              "text" : "example_text",
76              "action" : {
77                "action_type" : "ACTION_TYPE_SEND_MESSAGE",
78                "jump_url" : "example_jump_url",
79                "mini_program_jump_info" : {
80                  "appid" : "example_appid",
81                  "path" : "example_path"
82                },
83                "message_info" : {
84                  "content" : "example_content",
85                  "custom_data" : "example_custom_data"
86                },
87                "action_id" : "example_action_id"
88              },
89              "invalid_info" : {
90                "expired_time" : "example_expired_time",
91                "multi_clickable" : false
92              }
93            },
94            "button_group" : {
95              "buttons" : [
96                {
97                  "text" : "example_text",
98                  "action" : {
99                    "action_type" : "ACTION_TYPE_SEND_MESSAGE",
100                    "jump_url" : "example_jump_url",
101                    "mini_program_jump_info" : {
102                      "appid" : "example_appid",
103                      "path" : "example_path"
104                    },
105                    "message_info" : {
106                      "content" : "example_content",
107                      "custom_data" : "example_custom_data"
108                    },
109                    "action_id" : "example_action_id"
110                  }
111                }
112              ],
113              "button_layout" : "LAYOUT_UNKNOWN",
114              "invalid_info" : {
115                "expired_time" : "example_expired_time",
116                "multi_clickable" : false
117              }
118            }
119          }
120        ],
121        "sender_identity" : "UNKNOWN",
122        "custom_data" : "example_custom_data"
123      },
124      "click_message" : {
125        "message_content" : "example_message_content",
126        "action_id" : "12345",
127        "clicked_log_id" : "example_clicked_log_id"
128      }
129    }
130  ],
131  "limit" : 50,
132  "offset" : 50,
133  "total_count" : 1000
134}
135

 

错误码

以下是本接口返回的错误码列表。详细错误码规则,请参考微信支付接口规则-错误码和错误提示

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

请根据错误提示正确传入参数

400

INVALID_REQUEST

HTTP 请求不符合微信支付 APIv3 接口规则

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

 

元宝AI
反馈
目录
置顶