记一下云函数实现客服消息回复
# 背景:
负责的小程序最近上线了支付功能,但是因为虚拟支付规范
,不能直接购买
所以退而求其次,采用了客服消息自动回复购买链接的方式
# 实验环境:
- MacOS(10.13.6)
- 微信开发者工具(Nightly v1.02.1908222)
# 实现方法
1.项目配置修改
项目根目录新建文件夹functions作为云函数根目录
project.config.json文件追加配置
"cloudfunctionRoot": "functions/",
"cloud": true,
2.微信开发者工具中点击云开发,打开云开发控制台
云开发控制台->设置->全局设置->添加消息推送配置
参考官方文档:消息推送服务接入步骤
- 客服消息文本消息对应的消息类型为 text,事件类型为空
添加之后在开发者工具中云函数根目录上右键选择同步云函数列表
云函数目录上右键选择下载云函数
本示例的云函数名字为reply
打开reply文件夹下面的index.js修改为以下内容
// 云函数入口文件
const cloud = require('wx-server-sdk');
cloud.init();
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext();
if (event.Content == '1' || event.Content == '购买') {
await cloud.openapi.customerServiceMessage.send({
touser: wxContext.OPENID,
msgtype: 'link',
link: {
title: '课程名称',
description: '课程描述',
url: 'http://xxx.com/xxx'
}
});
} else {
await cloud.openapi.customerServiceMessage.send({
touser: wxContext.OPENID,
msgtype: 'text',
text: {
content: '您好,很高兴为您服务。回复1:购买课程'
}
});
}
return 'success';
};
然后在云函数目录下新建config.json文件并加入以下内容
{
"permissions": {
"openapi": [
"customerServiceMessage.send"
]
}
}
作用是为了配置customerServiceMessage.send API的云调用权限,不然无法自动回复消息
3.部署
在云函数文件夹上右击选择「上传并部署:云端安装依赖」或者「上传并部署:所有文件」
4.部署成功之后,小程序页面上追加客服按钮进行测试
<button open-type="contact">客服</button>
5.手机预览
点击客服按钮,进入客服会话,发送任意消息即会收到推送的消息,按消息提示操作,可以获取课程的购买链接