小程序云函数实现客服消息回复

2019-08-23 17:37:46

记一下云函数实现客服消息回复

背景:

负责的小程序最近上线了支付功能,但是因为虚拟支付规范,不能直接购买
所以退而求其次,采用了客服消息自动回复购买链接的方式

实验环境:

  • 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.手机预览
点击客服按钮,进入客服会话,发送任意消息即会收到推送的消息,按消息提示操作,可以获取课程的购买链接

演示效果

本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

扫描下方二维码阅读当前文章

浏览器、微信扫码

评 论:

好文推荐
每天进步一点点~