专栏首页薛定喵君小程序云函数实现客服消息回复

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

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

# 背景:

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

# 实验环境:

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

# 演示效果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小程序云函数访问第三方服务器错误解决

    1.报以下错误大概率是因为got版本问题 我是直接npm install的,got版本是10.x

    薛定喵君
  • 统一服务消息接口报48001错误

    之前基于统一服务消息做过小程序的消息推送,那时候小程序模板消息还没下线。 最近新项目里和一个后端同学对接公众号模板消息发送的问题。后端同学就沿用了之前的统一服...

    薛定喵君
  • 开源一个博客小程序

    之前就一直想做一个博客小程序方便在手机上查阅,遇到了一些问题迟迟没有推进。前一段时间才把丑陋的初版做出来ಥ_ಥ。

    薛定喵君
  • 使用鼠标

    C语言Windows程序设计 -> 第十一天 -> 使用鼠标 鼠标的使用同样是通过获取Windows鼠标消息来获取用户当前的鼠标状态的。 一、鼠标的介绍 ...

    猿人谷
  • 机器人模块化关节详解

    模块化关节对于大都数关节机器人来说至关重要,没有模块化关节就很难完成机器人的设计与控制。模块化关节较为成熟的德国宇航局的技术。

    ZC_Robot机器人技术
  • 机器学习之决策树二-C4.5原理与代码实现

    本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9435712.html

    用户7225427
  • HTML DOM clearInterval() 方法

    clearInterval() 方法可取消由 setInterval() 设置的 timeout。 clearInterval() 方法的参数必须是由 set...

    一个会写诗的程序员
  • 手写mybatis彻底搞懂框架原理

    mybatis的前身是iBatis,其源于“Internet”和“abatis”的组合,是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。myb...

    全菜工程师小辉
  • 3-系统方案A(Activity界面跳转,携带数据,显示曲线界面)

    https://www.cnblogs.com/yangfengwu/p/9970387.html

    杨奉武
  • 分布式任务框架实现原理

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    林老师带你学编程

扫码关注云+社区

领取腾讯云代金券