多商户的在线客服系统,直接在小程序的商家中嵌入我们的商家聊天链接
vx: llike620
1. 客服系统架构
-
一个云端客服系统:您开发一个统一的客服平台
-
商户区分:通过URL参数识别不同商户
-
数据隔离:后端根据商户ID自动过滤数据
2. 商户嵌入方式
商户只需在小程序页面中添加:
<web-view src="https://您的域名.com/chat?mch_id=商户ID&user_id=用户ID"></web-view>
3. 服务端极简实现(Node.js示例)
// server.js
const express = require('express');
const app = express();
// 模拟商户数据
const merchants = {
'mch_001': { name: "商户A", cs_list: ["客服1", "客服2"] },
'mch_002': { name: "商户B", cs_list: ["客服3", "客服4"] }
};
// WebView入口
app.get('/chat', (req, res) => {
const { mch_id, user_id } = req.query;
const merchant = merchants[mch_id];
if (!merchant) {
return res.status(403).send('商户不存在');
}
// 返回带商户标识的HTML页面
res.send(`
<!DOCTYPE html>
<html>
<head>
<title>${merchant.name}客服</title>
</head>
<body>
<h2>${merchant.name}客服系统</h2>
<div id="chat-box"></div>
<script>
// 在这里初始化客服聊天界面
const merchantId = "${mch_id}";
const userId = "${user_id}";
console.log("当前商户:", merchantId);
</script>
</body>
</html>
`);
});
app.listen(3000, () => console.log('Server running on port 3000'));
4. 数据隔离关键点
// 所有数据库操作必须带上mch_id
// 例如获取聊天记录
app.get('/api/messages', (req, res) => {
const { mch_id } = req.query;
// 伪代码示例
db.query(
'SELECT * FROM messages WHERE merchant_id = ?',
[mch_id],
(err, results) => {
res.json(results);
}
);
});
5. 商户接入流程
-
您为商户生成唯一ID(如
mch_001) -
商户在小程序任意页面插入:
<web-view src="https://您的域名.com/chat?mch_id=mch_001&user_id={{用户ID}}"></web-view> -
客服对话自动归属到对应商户
6. 进阶优化(可选)
-
URL签名:防止参数篡改
<web-view src="https://域名.com/chat?mch_id=xxx&user_id=yyy&sign=MD5加密签名"></web-view> -
自定义样式:通过URL参数传递主题色
<web-view src="https://域名.com/chat?mch_id=xxx&theme=FF0000"></web-view>
方案优势
-
极简接入:商户只需添加一行代码
-
零成本维护:您只需维护一套系统
-
天然隔离:通过URL参数自动区分商户
-
快速迭代:所有商户同步更新功能
这种方案完全满足您"WebView嵌入"的核心需求,且能在2小时内上线基础版。如需更多功能(如客服分配策略、消息推送),可在现有基础上逐步扩展。
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网
浙公网安备 33010602011771号