记一下云函数实现模板消息发送
接着上文小程序云函数实现客服消息回复
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.测试
小程序里使用支付功能发起订单,不用支付,然后会收到待支付订单的模板消息