forked from wechat-miniprogram/miniprogram-demo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
65 lines (55 loc) · 1.64 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
async function sendTemplateMessage(event) {
const {OPENID} = cloud.getWXContext()
// 接下来将新增模板、发送模板消息、然后删除模板
// 注意:新增模板然后再删除并不是建议的做法,此处只是为了演示,模板 ID 应在添加后保存起来后续使用
const addResult = await cloud.openapi.templateMessage.addTemplate({
id: 'AT0002',
keywordIdList: [3, 4, 5]
})
const templateId = addResult.result.templateId
const sendResult = await cloud.openapi.templateMessage.send({
touser: OPENID,
templateId,
formId: event.formId,
page: 'page/cloud/pages/scf-openapi/scf-openapi',
data: {
keyword1: {
value: '未名咖啡屋',
},
keyword2: {
value: '2019 年 1 月 1 日',
},
keyword3: {
value: '拿铁',
},
}
})
await cloud.openapi.templateMessage.deleteTemplate({
templateId,
})
return sendResult
}
async function getWXACode() {
const {result} = await cloud.openapi.wxacode.getUnlimited({
scene: 'x=1',
})
// 此处返回 Base64 图片仅作为演示用,在实际开发中,
// 应上传图片至云文件存储,然后在小程序中通过云文件 ID 使用
return `data:${result.contentType};base64,${result.buffer.toString('base64')}`
}
// 云函数入口函数
// eslint-disable-next-line
exports.main = async (event) => {
switch (event.action) {
case 'sendTemplateMessage': {
return sendTemplateMessage(event)
}
case 'getWXACode': {
return getWXACode(event)
}
default: break
}
}