Skip to content

消息中心 ​

站内消息模板维护、消息发送、消息记录与小程序订阅消息推送记录查询。消息模板同时承载站内消息渲染与微信、支付宝、百度、抖音、QQ、快手小程序订阅消息下发配置;推送渠道取值与会员注册来源一致。

消息模板列表 ​

接口地址 ​

text
GET /admin/message/template/list

接口参数说明 ​

无请求参数。

响应示例 ​

json
{
  "code": 0,
  "msg": "success",
  "data": [
    {
      "id": 1,
      "created_at": "2026-09-25T10:00:00+08:00",
      "updated_at": "2026-09-25T10:00:00+08:00",
      "template_code": "order_pay_success",
      "name": "订单支付成功通知",
      "msg_type": "order",
      "title_template": "您的订单 {{order_no}} 支付成功",
      "content_template": "订单金额:¥{{amount}}\n支付时间:{{pay_time}}",
      "cover_image": "uploads/2026/09/cover.png",
      "cover_url": "https://oss.example.com/uploads/2026/09/cover.png",
      "jump_type": 3,
      "jump_url_template": "/pages/order/detail?id={{order_id}}",
      "miniapp_wechat": "{\"template_id\":\"xWX9z...\",\"page\":\"pages/order/detail\",\"data_fields\":{\"thing1\":\"order_no\",\"amount2\":\"amount\"}}",
      "miniapp_alipay": "",
      "miniapp_baidu": "",
      "miniapp_douyin": "",
      "miniapp_qq": "",
      "miniapp_ks": "",
      "push_channels": [1, 6, 8],
      "variables": "[{\"name\":\"order_no\",\"label\":\"订单号\",\"required\":1}]",
      "status": 1,
      "remark": ""
    }
  ]
}

响应参数说明 ​

响应字段类型说明
data[].idinteger主键ID
data[].created_atstring创建时间
data[].updated_atstring更新时间
data[].template_codestring模板编码,业务调用唯一标识
data[].namestring模板名称
data[].msg_typestring消息类型 system 系统通知 / order 订单通知 / marketing 营销消息 / interactive 互动消息 / service 客服消息
data[].title_templatestring站内消息标题模板,支持 占位符
data[].content_templatestring站内消息内容模板,支持 占位符
data[].cover_imagestring默认封面图相对路径
data[].cover_urlstring封面图完整地址(按当前默认存储动态补全)
data[].jump_typeinteger跳转类型 0不跳转 1站内页 2H5链接 3小程序页面
data[].jump_url_templatestring跳转地址模板,支持 占位符
data[].miniapp_wechatstring微信小程序订阅消息配置JSON:{"template_id":"","page":"","data_fields":{"字段":"变量名"}}
data[].miniapp_alipaystring支付宝小程序模板消息配置JSON,结构同微信
data[].miniapp_baidustring百度小程序订阅消息配置JSON,结构同微信
data[].miniapp_douyinstring抖音小程序订阅消息配置JSON,结构同微信
data[].miniapp_qqstringQQ小程序订阅消息配置JSON,结构同微信
data[].miniapp_ksstring快手小程序订阅消息配置JSON,结构同微信
data[].push_channelsarray<integer>启用的推送渠道,取值与会员注册来源一致 1微信小程序 6支付宝小程序 7百度小程序 8抖音小程序 9QQ小程序 10快手小程序
data[].variablesstring模板变量定义JSON数组:[{"name":"order_no","label":"订单号","required":1}]
data[].statusinteger状态 1启用 2禁用
data[].remarkstring备注

新增/修改消息模板 ​

接口地址 ​

text
POST /admin/message/template/save

接口说明 ​

传 id 为修改,不传为新增;模板编码全局唯一。启用的小程序渠道必须在对应 miniapp_* 配置中填写 template_id;变量定义中的变量名不可重复;发送时必填变量(required 为 1)必须传值。

接口参数说明 ​

Body 参数类型必填说明
idinteger否主键ID,新增时不传
template_codestring是模板编码,业务调用唯一标识,最长 64 位
namestring是模板名称
msg_typestring是消息类型 system / order / marketing / interactive / service
title_templatestring是站内消息标题模板,支持 占位符
content_templatestring否站内消息内容模板
cover_imagestring否默认封面图相对路径
jump_typeinteger否跳转类型 0不跳转 1站内页 2H5链接 3小程序页面
jump_url_templatestring否跳转地址模板,支持 占位符
miniapp_wechatstring否微信小程序订阅消息配置JSON,启用微信渠道时必填
miniapp_alipaystring否支付宝小程序模板消息配置JSON,启用支付宝渠道时必填
miniapp_baidustring否百度小程序订阅消息配置JSON,启用百度渠道时必填
miniapp_douyinstring否抖音小程序订阅消息配置JSON,启用抖音渠道时必填
miniapp_qqstring否QQ小程序订阅消息配置JSON,启用QQ渠道时必填
miniapp_ksstring否快手小程序订阅消息配置JSON,启用快手渠道时必填
push_channelsarray<integer>否启用的推送渠道,取值与会员注册来源一致 1微信小程序 6支付宝小程序 7百度小程序 8抖音小程序 9QQ小程序 10快手小程序
variablesstring否模板变量定义JSON数组
statusinteger是状态 1启用 2禁用
remarkstring否备注

响应示例 ​

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "id": 1,
    "created_at": "2026-09-25T10:00:00+08:00",
    "updated_at": "2026-09-25T10:00:00+08:00",
    "template_code": "order_pay_success",
    "name": "订单支付成功通知",
    "msg_type": "order",
    "title_template": "您的订单 {{order_no}} 支付成功",
    "content_template": "订单金额:¥{{amount}}",
    "cover_image": "",
    "cover_url": "",
    "jump_type": 3,
    "jump_url_template": "/pages/order/detail?id={{order_id}}",
    "miniapp_wechat": "",
    "miniapp_alipay": "",
    "miniapp_baidu": "",
    "miniapp_douyin": "",
    "miniapp_qq": "",
    "miniapp_ks": "",
    "push_channels": [1],
    "variables": "",
    "status": 1,
    "remark": ""
  }
}

响应参数说明 ​

响应字段与「消息模板列表」中的单个模板结构一致。

删除消息模板 ​

接口地址 ​

text
POST /admin/message/template/delete

接口说明 ​

已产生站内消息或推送记录的模板不能删除。

接口参数说明 ​

Body 参数类型必填说明
idinteger是主键ID

响应示例 ​

json
{
  "code": 0,
  "msg": "success",
  "data": null
}

响应参数说明 ​

成功时 data 为 null。

发送消息 ​

接口地址 ​

text
POST /admin/message/send

接口说明 ​

两种模式二选一:传 template_code 时按模板发送,使用 variables 渲染标题、内容与跳转地址,并按模板启用的渠道执行小程序订阅推送;不传 template_code 时为自定义发送,必须填写 msg_type 与 title,仅发送站内消息(小程序推送需模板配置,自定义发送不支持)。

小程序订阅推送下发前按平台字段类型前缀做本地适配(字段名如 thing1、amount2):thing/name/phrase/letter/symbol/character_string/string/status/car_number/phone_number 等文本类超长自动截断(如 thing 20 字符);number/amount 校验必须为数字,不合法时该渠道记录失败原因。time/date/enum 等格式类字段由平台侧校验,失败原因同样落推送记录。

支持批量:receiver_sns 最多 100 个会员编号(去重后),每个接收会员各落一条站内消息;任一编号不存在时整体失败并提示不存在的编号。会员未绑定某渠道小程序身份、对应配置未启用或未订阅时,该渠道记录推送失败及原因,不影响站内消息本身。

小程序订阅推送执行前会先查询会员订阅记录(sys_message_subscription)预检:未订阅或剩余可推送次数用尽时,该渠道直接记录失败原因「该会员未订阅此模板或订阅次数已用尽」,不再请求平台接口;推送成功后剩余次数扣减一。订阅记录由用户端在订阅授权成功后上报累加,见用户端「上报订阅结果」接口与「订阅记录列表」查询接口。

接口参数说明 ​

Body 参数类型必填说明
template_codestring否模板编码,填写后按模板发送
receiver_snsarray<string>是接收会员编号列表(sys_member.sn),最多 100 个
variablesobject否模板变量值,键为变量名,如 {"order_no":"ORD202610010001"}
msg_typestring否自定义消息类型 system / order / marketing / interactive / service,不按模板发送时必填
titlestring否自定义消息标题,不按模板发送时必填
contentstring否自定义消息内容
jump_typeinteger否自定义跳转类型 0不跳转 1站内页 2H5链接 3小程序页面
jump_urlstring否自定义跳转地址或小程序页面路径

响应示例 ​

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "total": 2,
    "pushes": [
      {
        "channel": 1,
        "success": 1,
        "failed": 1
      }
    ]
  }
}

响应参数说明 ​

响应字段类型说明
data.totalinteger站内消息发送条数(等于去重后的接收会员数)
data.pushes[]array各渠道推送结果汇总
data.pushes[].channelinteger推送渠道 1微信小程序 6支付宝小程序 7百度小程序 8抖音小程序 9QQ小程序 10快手小程序
data.pushes[].successinteger该渠道推送成功数
data.pushes[].failedinteger该渠道推送失败数,失败明细见「推送记录列表」

消息记录列表 ​

接口地址 ​

text
GET /admin/message/list

接口参数说明 ​

Query 参数类型必填说明
receiver_snstring否按接收会员编号精确筛选
msg_typestring否消息类型 system / order / marketing / interactive / service
pageinteger否页码,默认 1
page_sizeinteger否每页数量,默认 20,最大 100

响应示例 ​

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "list": [
      {
        "id": 100,
        "created_at": "2026-09-25T10:00:00+08:00",
        "updated_at": "2026-09-25T10:00:00+08:00",
        "receiver_sn": "M202609251754509918",
        "receiver_nickname": "张三",
        "receiver_avatar": "https://oss.example.com/uploads/2026/09/avatar.png",
        "msg_type": "order",
        "title": "您的订单 ORD202610010001 支付成功",
        "content": "订单金额:¥99.00",
        "cover_image": "uploads/2026/09/cover.png",
        "cover_url": "https://oss.example.com/uploads/2026/09/cover.png",
        "jump_type": 3,
        "jump_url": "/pages/order/detail?id=123456",
        "is_read": 0,
        "read_at": null,
        "biz_type": "order",
        "biz_id": "123456",
        "template_id": 1,
        "send_source": 2
      }
    ],
    "total": 1
  }
}

响应参数说明 ​

响应字段类型说明
listarray消息列表
list[].idinteger主键ID
list[].created_atstring发送时间
list[].updated_atstring更新时间
list[].receiver_snstring接收会员编号
list[].receiver_nicknamestring接收会员昵称
list[].receiver_avatarstring接收会员头像地址
list[].msg_typestring消息类型 system / order / marketing / interactive / service
list[].titlestring消息标题
list[].contentstring消息内容
list[].cover_imagestring封面图相对路径
list[].cover_urlstring封面图完整地址
list[].jump_typeinteger跳转类型 0不跳转 1站内页 2H5链接 3小程序页面
list[].jump_urlstring跳转地址或小程序页面路径
list[].is_readinteger是否已读 0未读 1已读
list[].read_atstring已读时间,未读为 null
list[].biz_typestring关联业务类型
list[].biz_idstring关联业务ID
list[].template_idinteger来源模板ID,0表示无模板
list[].template_namestring来源模板名称,模板已删除时为空
list[].send_sourceinteger发送来源 1系统自动 2后台手动发送 3业务触发
totalinteger数据总数

推送记录列表 ​

接口地址 ​

text
GET /admin/message/push_record/list

接口参数说明 ​

Query 参数类型必填说明
message_idinteger否按站内消息ID筛选
receiver_snstring否按接收会员编号筛选
channelinteger否推送渠道 1微信小程序 6支付宝小程序 7百度小程序 8抖音小程序 9QQ小程序 10快手小程序
statusinteger否推送状态 1待发送 2成功 3失败
pageinteger否页码,默认 1
page_sizeinteger否每页数量,默认 20,最大 100

响应示例 ​

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "list": [
      {
        "id": 1,
        "created_at": "2026-09-25T10:00:00+08:00",
        "updated_at": "2026-09-25T10:00:00+08:00",
        "message_id": 100,
        "template_id": 1,
        "receiver_sn": "M202609251754509918",
        "channel": 1,
        "openid": "oXyz123...",
        "template_data": "{\"thing1\":{\"value\":\"ORD202610010001\"}}",
        "status": 2,
        "fail_reason": "",
        "third_party_msg_id": "",
        "sent_at": "2026-09-25T10:00:01+08:00"
      }
    ],
    "total": 1
  }
}

响应参数说明 ​

响应字段类型说明
listarray推送记录列表
list[].idinteger主键ID
list[].created_atstring记录创建时间
list[].updated_atstring更新时间
list[].message_idinteger关联站内消息ID
list[].template_idinteger来源模板ID,0表示无模板
list[].receiver_snstring接收会员编号
list[].channelinteger推送渠道 1微信小程序 6支付宝小程序 7百度小程序 8抖音小程序 9QQ小程序 10快手小程序
list[].openidstring小程序openid快照,便于排查
list[].template_datastring推送模板数据快照JSON,变量替换后的值
list[].statusinteger推送状态 1待发送 2成功 3失败
list[].fail_reasonstring失败原因
list[].third_party_msg_idstring第三方平台返回的消息ID
list[].sent_atstring发送时间
totalinteger数据总数

订阅记录列表 ​

接口地址 ​

text
GET /admin/message/subscription/list

接口说明 ​

查询会员的小程序订阅授权记录:每条记录按「会员+渠道+模板」唯一,subscribe_count 为累计订阅次数,remain_count 为剩余可推送次数(推送成功后自动扣减),subscribed_at 为最近订阅时间。

接口参数说明 ​

Query 参数类型必填说明
template_codestring否按模板编码筛选
receiver_snstring否按会员编号筛选
channelinteger否订阅渠道 1微信小程序 6支付宝小程序 7百度小程序 8抖音小程序 9QQ小程序 10快手小程序
pageinteger否页码,默认 1
page_sizeinteger否每页数量,默认 20,最大 100

响应示例 ​

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "list": [
      {
        "id": 1,
        "created_at": "2026-09-25T10:00:00+08:00",
        "updated_at": "2026-09-25T10:00:00+08:00",
        "member_sn": "M202609251754509918",
        "member_nickname": "张三",
        "member_avatar": "https://oss.example.com/uploads/2026/09/avatar.png",
        "channel": 1,
        "template_code": "order_pay_success",
        "template_id": 1,
        "platform_template_id": "xWX9z...",
        "platform_subscribe_id": "",
        "subscribe_count": 2,
        "remain_count": 1,
        "subscribed_at": "2026-09-25T10:00:00+08:00"
      }
    ],
    "total": 1
  }
}

响应参数说明 ​

响应字段类型说明
listarray订阅记录列表
list[].idinteger主键ID
list[].member_snstring会员编号
list[].member_nicknamestring会员昵称
list[].member_avatarstring会员头像地址
list[].channelinteger订阅渠道 1微信小程序 6支付宝小程序 7百度小程序 8抖音小程序 9QQ小程序 10快手小程序
list[].template_codestring模板编码
list[].template_idinteger来源模板ID
list[].platform_template_idstring平台订阅消息模板ID快照
list[].platform_subscribe_idstring平台订阅ID快照,百度渠道发送时必传
list[].subscribe_countinteger累计订阅次数
list[].remain_countinteger剩余可推送次数
list[].subscribed_atstring最近订阅时间
totalinteger数据总数