最近项目有个需求,要对接微信客服,之前也没做过,一脸懵逼~~,我属于那种不知其然,就心里很没底的人,感觉不知道怎么去开发了,所以就趁着后端还没开发完接口,先自己对接一下试试
接下来就是整个流程
首先我们先注册一个企业微信
这一步是必须的,因为我们需要企业微信管理员是自己,只有管理员才能开通客服账号,以及后续我们进行第三方配置的时候都需要用到管理员账号
个人可以注册企业微信,所以我是一个人的身份注册了一个企业微信
刚开始企业微信的样子是这样的,你会发现并没有工作台之类的,这是因为我们暂时还不是企业管理员,没有设置应用,接下来我们要切换到企业管理员界面
- 我们打开企业微信,并点击左上角的小图标
- 然后点击第一个用户,这样就把你自己设置成了管理员
- 然后你就会发现,你的企业微信变成了下面的样子,这时候我们就可以看到工作台了,而我们微信客服也就在这里边能找到
- 然后我们点击开始使用就可以了,默认第一个客服就是你自己,然后我们可以添加多个客服,我们测试的话就不需要太多了,自己酌情添加即可
登录微信客服体验客服功能
- 登录微信客服
官网地址:https://kf.weixin.qq.com/kf/loginpage
- 登入之后我们可以扫码进行体验,通过右上角的客户咨询消息,进行收发消息
- 这样我们就实现了微信内置的客服功能
进行第三方配置
这里我使用nodejs做服务端进行测试,在测试之前我们还要做一下配置
- 首先我们需要做一个内网穿透,将线上的地址映射到本地,这是为了后续的微信客服回调配置准备的
这里我使用的是natapp做的内网穿透工具,使用方式很简单,不明白的可以网上搜一下
需要注意的是,免费隧道是不能进行微信的测试的,所以我们需要购买一个隧道
这里我们买最便宜的VIP_1型即可
然后我们还需要买一个二级域名,绑定到购买的隧道,这样就可以了,二级域名随便,我买了一个3元/年~~
然后在隧道配置里修改二级域名绑定即可
- 绑定好二级域名之后,我们就可以在本地启动一个node服务器
这里我用的是express
快速搭建的node服务器,你也可以使用其他的
-
然后我们设置好监听端口之后,别忘了在natapp中修改本地端口绑定,然后我们就可以在本地启动natapp了
-
然后我们在微信客服后台->开发配置,点击开始接入,我这边现在是启用,是因为我已经接入了第三方URL
- 然后我们进入回调配置页面,将在natapp中申请的二级域名填到下面的回调URL中,然后下面的Token/EncodingAESKey我们直接点击随机获取即可,这时候我们点击完成,应该是会提示openapi回调地址请求不通过,所以我们还需要进行Node服务器配置
编写服务端代码
这里编写的服务端代码非常简单,我们只是需要正确响应微信客服的请求即可
这里我参考了一下这篇博客:https://blog.csdn.net/qq_35577655/article/details/123388612
这篇博客写的非常详细,但是他可能是对接的企业微信客服,而我这边是微信客服,所以还是有出入的
我的服务端代码如下:
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: false }))
const { decrypt } = require('@wecom/crypto');
const encodingAESKey = '你的encodingAESKey'
app.get('/', function(req, res) {
const params = req.query
const { message } = decrypt(encodingAESKey, params.echostr)
res.send(message)
})
app.listen(3001, () => {
console.log('server is running')
})
这里用到了@wecom/crypto
这个库,这是微信专门给微信客服用于加密解密签名校验用的库
我们只需要通过decrypt
这个方法将message
解密出来,然后作为响应返回即可
这个时候我们在点击回调配置中的完成按钮,应该就可以通过了
通过postman等工具进行接口测试
接下来的事情就好办了,我们可以直接通过postman等工具进行微信客服的接口测试
- 首先我们需要获取
access_token
参考:获取调用凭证access-token
这里需要注意的是,我们的corpsecret这里使用的应该是企业的secret
- 我们获取到
access_token
之后就可以使用postman进行各个接口测试了
比如获取消息事件接口:https://qyapi.weixin.qq.com/cgi-bin/kf/sync_msg?access_token=ACCESS_TOKEN
- 这样我们就已经将微信客服对接到了我们自己的服务器,可以自己进行管理消息的收发了
- 最后需要注意的是,我们在发送消息的时候msgid非必填,但是不要将msgid设置为空,直接去掉这个字段就好了,不然的话会报参数错误