# 交易评价-评价管理接口

「小程序交易评价」是小程序官方提供的真实公正的评价系统。在小程序的交易用户可针对某次交易体验进行评价打分、发表建议和感受。 以下接口提供给小程序开发者用于查询、回复、处理小程序用户交易评价。

  1. 查询
  1. 评论
  1. 回复
  1. 差评客服会话
  1. 确认和解

# 1、查询

使用该接口可以查询某小程序下,所有评价相关内容。

# 1.1查询评价列表

查询某小程序下面所有的评价。

# 请求方式

GET

# 请求 URL

https://api.weixin.qq.com/wxaapi/comment/mpcommentlist/get

# 请求参数示例: Javascript

https://api.weixin.qq.com/wxaapi/comment/mpcommentlist/get?filterType=1&offset=0&limit=8&startTime=1588237130&endTime=1588237131&access_token=xxxx

query 参数包括

{
    startTime: "1588237130",  
    endTime: "1588237131",    
    filterType: 1,
    offset: 0,
    limit: 8,
    access_token: 'xxxx'
}

# 请求参数含义

参数 类型 必填 说明
startTime String 查询时间段的开始时间
endTime String 查询时间段的结束时间
filterType Number 过滤的数据类型,枚举参考下方表格
offset Number 查询的偏移数(从offset开始计数拉取),默认值为 0 代表首页拉取
limit Number 查询每页中的数量,默认值为 8

# 评价类型筛选枚举(filterType)

说明
1 全部差评,所有评价分数为1星、2星的评价
2 全部好评,所有评价分数为4星、5星的评价
3 差评待处理,所有未提交「和解挽回」的评价
4 开发者待回复,所有待开发者回复的评价
5 差评已改评
6 全部评价,所有好评、差评、中评(3星)部评价

# 正确返回示例

{
  errcode: 0,
  success: true,
  commentList: [{
    commentId: "2797755680173111111",
    amount: 100,
    orderId: "payorder@_4200001761202302096311111111",
    payTime: "1675915718",
    wxPayId: "4200001761202302096311111111",
    orderInfo: {
      busiOrderId: 'xxxxxx'
    },
    userInfo: {
      openid: "xxxxxxxxxx",
      headImg: "http://wx.qlogo.cn/mmhead/xxxxxxxxxxx",
      nickName: "test"
    },
    bizInfo: {
        appid: "wx1234567890",
        headImg: "http://wx.qlogo.cn/mmhead/xxxxxxxxxxxx",
        nickName: "xxx"
    },
    score: 200, // 200分对应2星,每100分就是1星
    createTime: "1676351504",
    content: {
      media: [{img: 'http://xxx', thumbImg: 'http://xxx'}],
      txt: "一般吧 我总感觉这个成分很伤皮肤,用了之后一直很干燥,不是很喜欢这款产品"
    },
    extInfo: {
      isAlreadySendTmpl: false,
    },
    productInfo: {
      productList: [
        {
            name: "纸巾一张",
            picUrl: "https://xxxxxx",
        }
      ]
    }
  }],
  total: 3,
  offset: 0,
}

# 返回参数含义

属性 类型 说明
errcode Number 错误码
offset Number 查询的偏移数(从offset开始计数拉取)
total Number 评价总数
commentList Array < Object > 评价的列表具体如下
属性 类型 说明
commentId String 评价id
amount Number 金额,单位是分
orderId String 订单id
createTime String 创建时间,单位是秒
payTime String 支付时间,单位是秒
wxPayId String 微信支付交易单号,一般以420开头,是微信支付接口文档中的transaction_id
orderInfo Object 商家订单信息,详情看下表
userInfo Object 评价用户信息
bizInfo Object 商家小程序信息
score Number 评价分数(每100分对应1星)
content Object 评价内容
extInfo Object 评价额外信息
productInfo Object 评价商品信息

userInfo 的具体参数

参数 类型 说明
openid String 评价用户openid
headImg String 评价用户的头像
nickName String 评价用户的昵称

orderInfo 的具体参数

参数 类型 说明
busiOrderId String 商户单号:商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一;是微信支付接口文档中的 out_trade_no

bizInfo 的具体参数

参数 类型 说明
appid String 商家小程序的appid
headImg String 商家小程序的头像
nickName String 商家小程序的昵称

content 的具体参数

属性 类型 说明
txt String 评价内容
media Array< Object > 评价的媒体文件,如图片、视频, 视频跟图片只能存在一种,不同时存在,如果是图片可以有多张图,如果是视频只会有一个视频
属性 类型 说明
img String 图片cdn
thumbImg String 缩略图cdn
video String 视频资源cdn(有img的时候没有video)
videoCover String 缩略图cdn(有img的时候没有videoCover)
videoDuration Number 视频时长,单位秒(有img的时候没有videoDuration)

extInfo 的具体参数

参数 类型 说明
isAlreadySendTmpl Boolean 是否已发过「差评客服会话」

productInfo 的具体参数

参数 类型 说明
productList Array< Object > 商品列表
productList.name String 商品名
productList.picUrl String 商品图片

# 1.2查询评论列表

查询某评价下面所有的评论和回复。(目前开发者创建的第一条回复定义为评论,之后的回复都是基于这条评论去做回复的,未来会进行评论回复的展开)

# 请求方式

GET

# 请求 URL

https://api.weixin.qq.com/wxaapi/comment/replyandcommentreplylist/get

# 请求参数示例: Javascript

https://api.weixin.qq.com/wxaapi/comment/replyandcommentreplylist/get?commentId=123456&access_token=xxxx

query 参数包括

{
  commentId: '123456',
  access_token: 'xxxx' // 登录凭证
}

# 请求参数含义

参数 类型 必填 说明
commentId String 评价的 id

# 正确返回示例

{
  errcode: 0,
  list: {
    reply: {  // 评论(评论回复第一条内容)
      commentId: '123', 
      replyId: '1'
      createTime: '1669032337',
      updateTime: '1669032341',
      replyContent: { content: '999' },
      replyObject: {
        nickname: '小程序名称',
        imgUrl: 'http://xxx/xx'
      },
    },
    commentReplyList: [ // 回复(评论回复第二条及之后的所有集合)
      {
        commentId: '12345',
        commentReplyId: '1'
        createTime: '1669032388',
        updateTime: '1669032392',
        commentReplyContent: { content: 'uuuuuuuuu' },
        commentReplyObject: { nickname: '啊哈', imgUrl: 'xxx' },
      }
    ]
  }
}

# 返回参数含义

reply (评论) 下的参数含义

属性 类型 说明
commentId String 评价id
replyId String 评论id
createTime String 创建时间,单位是秒
updateTime String 更新时间,单位是秒
replyContent.content String 回复的内容
replyObject Object 评论的内容
属性 类型 说明
nickname String 用户的昵称
imgUrl String 用户的头像

commentReplyList(回复列表) 下的参数含义

属性 类型 说明
commentId String 评价id
commentReplyId String 回复id
createTime String 评价创建时间,单位是秒
updateTime String 更新时间,单位是秒
commentReplyContent.content String 回复的内容
commentReplyObject Object 评论的内容
属性 类型 说明
nickname String 用户的昵称
imgUrl String 用户的头像

# 1.3查询评价详情

查询某条评价的详细内容。

# 请求方式

GET

# 请求 URL

https://api.weixin.qq.com/wxaapi/comment/commentinfo/get

# 请求参数示例: Javascript

https://api.weixin.qq.com/wxaapi/comment/commentinfo/get?commentId=123456&access_token=xxxxxx

query 参数示例

{
  commentId: '123456',
  access_token: 'xxxxxx'
}

# 请求参数含义

参数 类型 必填 说明
commentId String 评价的 id

# 正确返回示例

{
  info: {
    content: {
      commentId: '123',
      createTime: '1669031402',
      userInfo: { openid: 'xxx', headImg: '', nickName: '啊哈' },
      content: {
        txt: '突突突突突突有',
        media: [
          {
            video:
              'https://xxx/xx',
            videoCover: 'http://xxx/xx',
            videoDuration: 11
          }
        ]
      },
      bizInfo: {
        appid: "wx1234567890",
        headImg: "http://wx.qlogo.cn/mmhead/xxxxxx",
        nickName: "xxx的小商店"
      },
      score: 200, // 评价分数、星级,这里200分对应2星
      orderId: 'payorder@xxxx',
      wxPayId: 'xxxx',
      orderInfo: {
        busiOrderId: 'xxxxxx'
      },
      productInfo: {
        productList: [{
          name: "我是描述",
          picUrl: "https://xxxxx/x"
        }]
      },
      payTime: '1669030760',
      amount: 1,
    }
  },
  processInfo: { // 订单处理进度数据
    commentId: 'xxx',
    actionList: [
      {
        type: 1,
        updateTime: 1669031402,
      },
      { type: 2 },
      { type: 3 }
    ]
  },
  oldComment: {
    commentId: 'xxx',
    content: {},
    score: 100,
    createTime: 11111
  },
}

# 返回参数含义

返回的具体参数

参数 类型 说明
info Object 评价的信息
processNnfo Object 进度条的信息(只有差评才会有)
oldComment Object 旧评价的信息(只有改评的新评价才有)

info 里的具体信息

属性 类型 说明
content Object 评价具体如下
属性 类型 说明
commentId String 评价id
amount Number 金额,单位是分
orderId String 订单id
createTime String 创建时间,单位是秒
payTime String 支付时间,单位是秒
orderInfo Object 商家订单信息,详情看下表
productInfo Object 评价商品信息
wxPayId String 微信支付交易单号,一般以420开头,是微信支付接口文档中的transaction_id
userInfo Object 评价用户信息
bizInfo Object 商家小程序信息
score Number 评价分数,每100分对应1星
content Object 评价内容

bizInfo 的具体参数

参数 类型 说明
appid String 商家小程序的appid
headImg String 商家小程序的头像
nickName String 商家小程序的昵称

userInfo 的具体参数

参数 类型 说明
openid String 评价用户openid
headImg String 评价用户的头像
nickName String 评价用户的昵称

orderInfo 的具体参数

参数 类型 说明
busiOrderId String 商户单号:商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一;是微信支付接口文档中的 out_trade_no

info.content.content 的具体参数

参数 类型 说明
media Array< Object > 评价的媒体文件,如图片、视频
txt String 评价内容

productInfo 的具体参数

参数 类型 说明
productList Array< Object > 商品列表
productList.name String 商品名
productList.picUrl String 商品链接

processInfo 进度的具体参数

参数 类型 说明
actionList Array< actionListItem > 进度的具体状态,数组类型,从数组最后往前数有updateTime的就是当前状态
commentId String 评价进度对应的评价id

actionListItem(processInfo.actionList里的每个元素)具体参数

属性 类型 说明
processInfo.actionList Object 评价具体如下
属性 类型 说明
type String 进度的类型,枚举值:1是发表差评,2是开发者处理,3是用户调研,4是用户改评
updateTime Number 更新时间,processInfo.actionList里从后往前数第一个有更新时间的就是当前状态

oldComment 旧评论的具体参数

属性 类型 说明
commentId String 评价id
createTime String 创建时间,单位是秒
score Number 用户评价的打分,每100对应1分以及1颗星
content Object 评论的内容
属性 类型 说明
text String 评价的文本内容
media Array< Object > 评价的多媒体内容,跟上面提到的媒体结构一致

# 2、评论

目前开发者创建的第一条回复定义为评论。

# 2.1创建评论

# 请求方式

POST

# 请求 URL

https://api.weixin.qq.com/wxaapi/comment/reply/add

# 请求参数示例:Javascript

https://api.weixin.qq.com/wxaapi/comment/reply/add?access_token=xxxx

query 参数包括

{
  access_token: 'xxxx' // 登录凭证  
}

body 参数包括

{
  commentId: "xxxxxxxxxx",
  content: "我是内容"
}

# 请求参数含义

参数 类型 必填 说明
commentId String 评价的 id
content String 评论的内容

# 正确返回示例

{
  errcode: 0,
  success: true
}

# 返回参数含义

参数 类型 说明
errcode Number 请求的状态码
success Boolean 请求是否成功状态
errmsg String 错误信息

# 2.2删除评论

目前开发者创建的第一条回复定义为评论,如果删除该条评论,基于这条评论的所有回复将会被一并删除。

# 请求方式

POST

# 请求 URL

https://api.weixin.qq.com/wxaapi/comment/reply/delete

# 请求参数示例:Javascript

https://api.weixin.qq.com/wxaapi/comment/reply/delete?access_token=xxxx

query 参数包括

{
  access_token: 'xxxx'
}

body 参数包括

{
  commentId: "xxxxxxxxxx",
  replyId: "xxxxx"
}

# 请求参数含义

参数 类型 必填 说明
commentId String 评价的 id
replyId String 评论的 id

# 正确返回示例

{
  errcode: 0,
  success: true
}

# 返回参数含义

参数 类型 说明
errcode Number 请求的状态码
success Boolean 请求是否成功状态
errmsg String 错误信息

# 3、回复

# 3.1创建回复

# 请求方式

POST

# 请求 URL

https://api.weixin.qq.com/wxaapi/comment/commentreply/add

# 请求参数示例:Javascript

https://api.weixin.qq.com/wxaapi/comment/commentreply/add?access_token=xxxx

query 参数包括

{
  access_token: 'xxxx'
}

body 参数包括

{
  commentId: "xxxxxxxxxx",
  replyId: "xxxxx",
  content: "我是内容"
}

# 请求参数含义

参数 类型 必填 说明
commentId String 评价的 id
replyId String 评论的 id
content String 回复评论的内容

# 正确返回示例

{
  errcode: 0,
  success: true
}

# 返回参数含义

参数 类型 说明
errcode Number 请求的状态码
success Boolean 请求是否成功状态
errmsg String 错误信息

# 3.2删除回复

# 请求方式

POST

# 请求 URL

https://api.weixin.qq.com/wxaapi/comment/commentreply/delete

# 请求参数示例:Javascript

http://api.weixin.qq.com/wxaapi/comment/commentreply/delete?access_token=xxxx

query 参数包括

{
  access_token: 'xxxx'
}

body 参数包括

{
  commentId: "xxxxxxxxxx",
  replyId: "xxxxx",
  commentReplyId: "xxxxx"
}

# 请求参数含义

参数 类型 必填 说明
commentId String 评价的 id
replyId String 评论的 id
commentReplyId String 回复评论的 id

# 正确返回示例

{
  errcode: 0,
  success: true
}

# 返回参数含义

参数 类型 说明
errcode Number 请求的状态码
success Boolean 请求是否成功状态
errmsg String 错误信息

# 4、差评客服会话

使用微信小程序客服消息能力的开发者,针对用户差评,平台提供了「差评客服会话」能力,开发者可使用该能力主动下发一条客服消息给差评用户;当用户回复后,开发者可继续用小程序客服消息能力与用户沟通。

使用流程: 1.用户发起差评 2.微信服务器会推送callback请求通知开发者,详情可看4.1 差评通知CallBack 3.开发者可以选择调用重置客服quota的api,详情可看4.2 重置api客服quota 4.重置客服quota后,可以直接使用微信小程序客服的api能力去下发客服消息

# 4.1差评通知CallBack

# 请求方式

POST

# 请求 URL

开发者在微信开放平台配置的callback服务器地址

# 请求参数含义

参数 类型 必填 说明
ToUserName string 商家小程序名称
FromUserName string 微信团队的 OpenID(固定值)
CreateTime number 事件时间,Unix时间戳
MsgType string 消息类型,固定为event
Event string 事件类型,固定为 wxa_comment_bad_score
result object 结果对象
result.comment_id string 评价 ID

# 请求示例

<xml>
    <ToUserName><![CDATA[gh_abcdefg]]></ToUserName> 
    <FromUserName><![CDATA[oABCD]]></FromUserName> 
    <CreateTime>1704038400</CreateTime>
    <MsgType><![CDATA[event]]></MsgType> 
    <Event><![CDATA[wxa_comment_bad_score]]></Event>
    <result>
        <comment_id>2272502024443330610</comment_id>
    </result>
</xml>

# 正确返回示例

{
  errcode: 0,
  success: true
}

# 4.2重置Api客服quota

# 请求方式

POST

# 请求 URL

https://api.weixin.qq.com/wxaapi/comment/apikfquota/reset

# 请求参数示例:Javascript

https://api.weixin.qq.com/wxaapi/comment/apikfquota/reset?access_token=xxxx

query 参数包括

{
  access_token: 'xxxx'
}

body 参数包括

{
  commentId: "xxxxxxxxxx"
}

# 请求参数含义

参数 类型 必填 说明
commentId String 评价的 id

# 正确返回示例

{
  errcode: 0,
  success: true
}

# 返回参数含义

参数 类型 说明
errcode Number 请求的状态码
success Boolean 请求是否成功状态

# 5、确认和解

# 请求方式

POST

# 请求 URL

https://api.weixin.qq.com/wxaapi/comment/confirmcompromise

# 请求参数示例:Javascript

https://api.weixin.qq.com/wxaapi/comment/confirmcompromise?access_token=xxxx

query 参数包括

{
  "access_token": 'xxxx'
}

body 参数包括

{
  commentId: "xxxxxxxxxx",
  picList: ['mediaid', 'mediaid'],
  content: "我是和解的内容"
}

# 请求参数含义

参数 类型 必填 说明
commentId String 评价的 id
picList Array< String > 和解的图片mediaId集合,可参考这 https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html
content String 和解的文本内容

# 正确返回示例

{
  errcode: 0,
  success: true
}

# 返回参数含义

参数 类型 说明
errcode Number 请求的状态码
success Boolean 请求是否成功状态
errmsg String 错误信息

# ERRORCODE

说明
-10007 无权限调用接口
-10008 服务异常
-10001 参数异常
-10003 参数不匹配
-10403 无权限操作该评价/评论/回复
10000 和解:不是差评/发送过模板消息;其它:参数异常