最近项目有个需求,要对接微信客服,之前也没做过,一脸懵逼~~,我属于那种不知其然,就心里很没底的人,感觉不知道怎么去开发了,所以就趁着后端还没开发完接口,先自己对接一下试试
接下来就是整个流程
这一步是必须的,因为我们需要企业微信管理员是自己,只有管理员才能开通客服账号,以及后续我们进行第三方配置的时候都需要用到管理员账号
个人可以注册企业微信,所以我是一个人的身份注册了一个企业微信
刚开始企业微信的样子是这样的,你会发现并没有工作台之类的,这是因为我们暂时还不是企业管理员,没有设置应用,接下来我们要切换到企业管理员界面
官网地址:https://kf.weixin.qq.com/kf/loginpage
这里我使用nodejs做服务端进行测试,在测试之前我们还要做一下配置
这里我使用的是natapp做的内网穿透工具,使用方式很简单,不明白的可以网上搜一下
需要注意的是,免费隧道是不能进行微信的测试的,所以我们需要购买一个隧道
这里我们买最便宜的VIP_1型即可
然后我们还需要买一个二级域名,绑定到购买的隧道,这样就可以了,二级域名随便,我买了一个3元/年~~
然后在隧道配置里修改二级域名绑定即可
这里我用的是express
快速搭建的node服务器,你也可以使用其他的
然后我们设置好监听端口之后,别忘了在natapp中修改本地端口绑定,然后我们就可以在本地启动natapp了
然后我们在微信客服后台->开发配置,点击开始接入,我这边现在是启用,是因为我已经接入了第三方URL
这里编写的服务端代码非常简单,我们只是需要正确响应微信客服的请求即可
这里我参考了一下这篇博客: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等工具进行微信客服的接口测试
access_token
参考:获取调用凭证access-token
这里需要注意的是,我们的corpsecret这里使用的应该是企业的secret
access_token
之后就可以使用postman进行各个接口测试了比如获取消息事件接口:https://qyapi.weixin.qq.com/cgi-bin/kf/sync_msg?access_token=ACCESS_TOKEN