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

2019-08-27 08:37:46

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

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

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

2.微信开发者工具中点击云开发,打开云开发控制台
选择云函数->新建云函数->输入名称(这里使用pay_success)->确定

添加之后在开发者工具中云函数根目录上右键选择同步云函数列表
云函数目录上右键选择下载云函数
我们可以看到新建的pay_success函数已经下载下来了
打开pay_success文件夹下面的index.js修改为以下内容


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文件并加入以下内容

{
  "permissions": {
    "openapi": [
      "templateMessage.send"
    ]
  }
}

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

3.部署
在云函数文件夹上右击选择「上传并部署:云端安装依赖」或者「上传并部署:所有文件」
*也可以本地生成package.json然后npm install一下

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

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

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

浏览器、微信扫码
微信小程序

评 论:

好文推荐
微信扫码关注
加入百人技术交流群
探讨前端、小程序开发及逆向、微信开发...
一起学习,共同成长
微信情报 更多 >
    每天进步一点点~