小程序云函数实现发送模板消息

2019-11-05 16:50:18 浏览数 (1)

记一下云函数实现模板消息发送

接着上文小程序云函数实现客服消息回复

1.准备工作

需要在微信小程序管理后台添加好模板,本示例使用的待支付消息模板

2.微信开发者工具中点击云开发,打开云开发控制台

选择云函数->新建云函数->输入名称(这里使用pay_success)->确定

添加之后在开发者工具中云函数根目录上右键选择同步云函数列表

云函数目录上右键选择下载云函数

我们可以看到新建的pay_success函数已经下载下来了

打开pay_success文件夹下面的index.js修改为以下内容

代码语言:javascript复制
const cloud = require('wx-server-sdk');
cloud.init();

exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext();
  try {
    let page_url =
      '/pages/sure_buy/sure_buy?device=2&out_trade_no='  
      event.out_trade_no;
    if (event.curriculum_id != undefined) {
      page_url  = '&curriculum_id='   event.curriculum_id;
    }
    const result = await cloud.openapi.templateMessage.send({
      touser: wxContext.OPENID,
      page: page_url,
      data: {
        keyword1: {
          value: event.order_time
        },
        keyword2: {
          value: event.out_trade_no//订单编号
        },
        keyword3: {
          value: event.name//支付时间
        },
        keyword4: {
          value: '¥'   event.total_fee//订单金额
        },
        keyword5: {
          value: '¥'   event.name//商品名称
        },
        keyword6: {
          value: '¥'   event.pay_fee//支付金额
        },
        keyword7: {
          value: '微信支付'
        }
      },
      templateId: 'L6q13bxY3NuA38KNQKbTnMqYT-ViC8lLgfyh5sJU0bo',//待支付模板的模板ID(可在小程序管理后台查看)
      formId: event.form_id//支付统一下单时的prepay_id
    });
    console.log(JSON.stringify(event));
    return result;
  } catch (err) {
    console.log(err);
    return err;
  }
};

然后在云函数目录下新建config.json文件并加入以下内容

代码语言:javascript复制
{
  "permissions": {
    "openapi": [
      "templateMessage.send"
    ]
  }
}

配置templateMessage.send API的云调用权限

3.部署

在云函数文件夹上右击选择「上传并部署:云端安装依赖」或者「上传并部署:所有文件」

*也可以本地生成package.json然后npm install一下

4.测试

小程序里使用支付功能发起订单,不用支付,然后会收到待支付订单的模板消息

0 人点赞