• 通过NodeJS对接微信客服实现第三方API管理消息


    最近项目有个需求,要对接微信客服,之前也没做过,一脸懵逼~~,我属于那种不知其然,就心里很没底的人,感觉不知道怎么去开发了,所以就趁着后端还没开发完接口,先自己对接一下试试
    接下来就是整个流程

    首先我们先注册一个企业微信

    这一步是必须的,因为我们需要企业微信管理员是自己,只有管理员才能开通客服账号,以及后续我们进行第三方配置的时候都需要用到管理员账号
    个人可以注册企业微信,所以我是一个人的身份注册了一个企业微信
    刚开始企业微信的样子是这样的,你会发现并没有工作台之类的,这是因为我们暂时还不是企业管理员,没有设置应用,接下来我们要切换到企业管理员界面

    在这里插入图片描述

    1. 我们打开企业微信,并点击左上角的小图标

    在这里插入图片描述

    1. 然后点击第一个用户,这样就把你自己设置成了管理员

    在这里插入图片描述

    1. 然后你就会发现,你的企业微信变成了下面的样子,这时候我们就可以看到工作台了,而我们微信客服也就在这里边能找到
      在这里插入图片描述

    在这里插入图片描述

    1. 然后我们点击开始使用就可以了,默认第一个客服就是你自己,然后我们可以添加多个客服,我们测试的话就不需要太多了,自己酌情添加即可

    在这里插入图片描述

    登录微信客服体验客服功能

    1. 登录微信客服

    官网地址:https://kf.weixin.qq.com/kf/loginpage

    1. 登入之后我们可以扫码进行体验,通过右上角的客户咨询消息,进行收发消息

    在这里插入图片描述

    1. 这样我们就实现了微信内置的客服功能

    进行第三方配置

    这里我使用nodejs做服务端进行测试,在测试之前我们还要做一下配置

    1. 首先我们需要做一个内网穿透,将线上的地址映射到本地,这是为了后续的微信客服回调配置准备的

    这里我使用的是natapp做的内网穿透工具,使用方式很简单,不明白的可以网上搜一下
    需要注意的是,免费隧道是不能进行微信的测试的,所以我们需要购买一个隧道
    这里我们买最便宜的VIP_1型即可

    在这里插入图片描述


    然后我们还需要买一个二级域名,绑定到购买的隧道,这样就可以了,二级域名随便,我买了一个3元/年~~
    然后在隧道配置里修改二级域名绑定即可

    在这里插入图片描述

    1. 绑定好二级域名之后,我们就可以在本地启动一个node服务器

    这里我用的是express快速搭建的node服务器,你也可以使用其他的

    1. 然后我们设置好监听端口之后,别忘了在natapp中修改本地端口绑定,然后我们就可以在本地启动natapp
      在这里插入图片描述
      在这里插入图片描述

    2. 然后我们在微信客服后台->开发配置,点击开始接入,我这边现在是启用,是因为我已经接入了第三方URL

    在这里插入图片描述

    1. 然后我们进入回调配置页面,将在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')
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    这里用到了@wecom/crypto这个库,这是微信专门给微信客服用于加密解密签名校验用的库
    我们只需要通过decrypt这个方法将message解密出来,然后作为响应返回即可
    这个时候我们在点击回调配置中的完成按钮,应该就可以通过了

    在这里插入图片描述

    通过postman等工具进行接口测试

    接下来的事情就好办了,我们可以直接通过postman等工具进行微信客服的接口测试

    1. 首先我们需要获取access_token

    参考:获取调用凭证access-token
    这里需要注意的是,我们的corpsecret这里使用的应该是企业的secret

    在这里插入图片描述

    在这里插入图片描述

    1. 我们获取到access_token之后就可以使用postman进行各个接口测试了

    比如获取消息事件接口:https://qyapi.weixin.qq.com/cgi-bin/kf/sync_msg?access_token=ACCESS_TOKEN

    在这里插入图片描述

    1. 这样我们就已经将微信客服对接到了我们自己的服务器,可以自己进行管理消息的收发了
    2. 最后需要注意的是,我们在发送消息的时候msgid非必填,但是不要将msgid设置为空,直接去掉这个字段就好了,不然的话会报参数错误
  • 相关阅读:
    【python】二分查找算法
    设计模式之单例模式(1)
    MySQL用户也可以是个角色
    69: 偷菜时间表(python)
    世微 AP2400 宽电压降压恒流驱动IC 过EMC认证线路方案
    c语言写逆置数
    jvm 内存模型介绍
    数据库——创建和管理表
    常见React Hooks 钩子函数用法
    【Linux常用命令15】shell脚本
  • 原文地址:https://blog.csdn.net/xuefeng11111/article/details/125555107