在企业微信二次开发中,消息发送不一定要由客户主动触发,也可以由企业自己的业务系统发起。
比如订单状态发生变化后,自动通知对应客户;后台任务执行完成后,将结果推送到指定外部群;库存不足时,自动向相关负责人发送提醒。
通过星云API对接企业微信消息收发能力,可以将业务系统与指定客户、群聊建立关联,实现业务事件触发后的主动消息推送。
相关接口参考顶部星云官网卡片里的接口文档 。
一、建立客户与群聊的映射关系
业务系统主动发送消息时,首先需要确定消息应该发送给谁。
建议保存以下字段:
| 字段 | 作用 |
|---|---|
| instanceId | 企业微信实例ID |
| customerId | 目标客户ID |
| roomId | 目标外部群ID |
| chatType | 单聊或群聊类型 |
| businessId | 关联业务编号 |
| notifyStatus | 消息通知状态 |
其中,instanceId用于确定发送账号,customerId和roomId分别用于定位客户与群聊。
同一个客户可能存在于多个外部群,因此不能只根据客户ID确定发送目标。
二、根据业务事件自动触发消息
可以在企业自有系统中配置不同的消息触发规则。
| 业务事件 | 推送目标 | 消息内容 |
|---|---|---|
| 订单发货 | 指定客户 | 订单及物流状态 |
| 售后完成 | 对应客户 | 售后处理结果 |
| 任务执行完成 | 指定外部群 | 任务执行结果 |
| 项目进度更新 | 项目客户群 | 最新项目进度 |
例如订单系统检测到订单1001已经发货,就可以根据订单关联的客户ID,找到对应企业微信会话并发送通知。
三、主动消息推送流程
业务系统产生状态变化
↓
识别消息触发规则
↓
查询客户或群聊映射
↓
确定发送实例与目标会话
↓
生成消息内容
↓
校验目标及发送权限
↓
调用星云API消息发送接口
↓
记录接口返回结果
↓
更新消息通知状态
例如后台任务完成后,主动向指定外部群发送:
任务编号:TASK1001
处理状态:已完成
成功:98条
失败:2条
整个过程不需要客户再次发送查询指令。
四、实际开发需要注意什么
1. 不要通过昵称匹配发送对象
客户昵称和群名称可能重复,建议使用接口提供的稳定客户ID和群ID。
2. 区分单聊与群聊
发送给指定客户时,需要使用对应的客户会话;发送到外部群时,则需要匹配群ID及所属实例。
3. 防止消息重复发送
可以通过业务编号和通知类型生成唯一标识,避免同一业务事件重复触发通知。
4. 做好发送前校验
发送消息前,应检查目标会话是否有效、实例是否在线,以及当前账号是否具备发送权限。涉及敏感业务信息时,还需要校验数据归属。
5. 记录消息发送状态
建议分别记录待发送、已提交、发送失败等状态。接口受理成功不一定代表客户已经收到消息,实际投递状态应以接口支持的回执能力为准。
五、总结
企业微信消息自动收发与业务系统联动,关键是建立业务数据、发送实例和目标会话之间的准确映射。
通过业务事件触发、客户与群聊ID绑定、主动发送接口和通知状态管理,可以实现订单通知、任务结果推送、项目进度提醒等自动化场景。
本文介绍企业微信二次开发中业务系统主动向指定客户及外部群发送消息的实现方法,涵盖客户与群聊ID映射、业务事件触发机制、消息推送流程及关键开发注意事项,包括避免昵称匹配、区分单聊/群聊、防重复发送、发送前校验和状态记录等,核心依赖企业微信API与稳定标识符管理。
794

被折叠的 条评论
为什么被折叠?



