如果项目只接入一个微信账号,直接在代码里配置账号信息,基本就能满足需求。
但当账号数量增加后,问题就来了:每个账号的联系人、消息记录和发送任务都不一样,怎么避免数据混在一起?
账号信息单独管理
不建议在业务代码里到处写死账号标识。
可以在数据库里建立账号配置表,记录账号 ID、备注名称、连接状态和创建时间等信息。
业务调用时,根据账号 ID 获取对应配置。
需要注意,具体能获取哪些账号状态,要以实际接口提供的能力为准。
消息记录一定要区分账号
比如两个微信账号都收到了一位昵称叫“张三”的用户发来的消息。
如果系统只根据昵称保存记录,就可能把两边的数据混在一起。
比较稳妥的方式是同时保存账号标识和联系人标识,建立明确的关联关系。
这样查询聊天记录时,才能准确知道消息属于哪个账号。
发送任务也要绑定账号
假设后台同时管理多个微信账号,客服创建发送任务时,就应该明确选择发送账号。
任务表可以保存以下字段:
账号 ID
接收对象
消息内容
任务状态
执行时间
执行任务前,再检查账号配置和当前连接状态。
如果账号不可用,就记录原因并暂停任务,不要无限重试。
多账号不等于无限并发
账号数量增加以后,也不要简单地把所有发送任务同时启动。
可以根据服务器资源、接口响应和实际业务情况设置并发上限。
另外,消息记录、任务状态和账号配置最好分开管理。以后新增账号、修改任务规则时,就不需要频繁调整整个业务系统。
多账号开发的关键不是把账号数量堆上去,而是把数据隔离、任务调度和异常处理做好。
API文档:GeWe API - GeWe API|微信 API 开发文档