# 短信发送(聚合版)
# 调用示例
# 发送通知类短信(非验证码)
/**
* 发送短信(聚合版)
* @param {String} provider 服务供应商
* @param {String} smsKey 密钥ID,若不传,则自动从config公共模块中获取
* @param {String} smsSecret 密钥密码,若不传,则自动从config公共模块中获取
* @param {String} signName 短信签名,若不传,则自动从config公共模块中获取
* @param {String} phone 多个手机号用,号隔开 目前unicloud不支持多个手机号,阿里云支持
* @param {String} templateId 发送的短信模板ID
* @param {object} data 短信模板内的参数数据
*/
// unicloud调用示例
let sendSmsRes = await vk.system.smsUtil.sendSms({
provider: "unicloud",
phone: "15200000001",
templateId: "11558",
data: {
orderNo: "DD8888888888",
expressCom: "顺丰快递",
expressNo: "SF88888888"
}
});
// 阿里云调用示例
let sendSmsRes = await vk.system.smsUtil.sendSms({
provider: "aliyun",
phone: "15200000001",
templateId: "SMS_202470413",
data: {
orderNo: "DD8888888888",
expressCom: "顺丰快递",
expressNo: "SF88888888"
}
});
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
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
# 发送短信验证码
此写法会自动将验证码保存到数据库,可用于
- 手机号登录 type: "login"
- 绑定手机 type: "bind"
- 解绑手机 type: "unbind"
- 重置账号密码 type: "reset-pwd"
调用示例
let sendSmsVerifyCodeRes = await vk.system.smsUtil.sendSmsVerifyCode({
provider: "短信供应商", // unicloud 内置验证码; aliyun 阿里云验证码
code: "1234", // 验证码
type: "login", // login 手机号登录; bind 绑定手机; unbind 解绑手机; reset-pwd 重置账号密码;
phone: "15200000001",
expiresIn: 180, // 验证码实际有效时间,必须是60的倍数
});
console.log('sendSmsVerifyCodeRes: ', sendSmsVerifyCodeRes);
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 配置unicloud短信
定位到文件 uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json
的 service.sms
"sms": {
"name": "重要",
"codeExpiresIn": 180, // 验证码过期时间,单位为秒,注意一定要是60的整数倍
"templateId": "", // 发送验证码的短信模板ID(此模板id仅配合vk.system.smsUtil.sendSmsVerifyCode API需要)
"smsKey": "", // 可不填,短信密钥key,开通短信服务处可以看到 https://dev.dcloud.net.cn/uniSms
"smsSecret": "" // 可不填,短信密钥secret,开通短信服务处可以看到 https://dev.dcloud.net.cn/uniSms
},
1
2
3
4
5
6
7
2
3
4
5
6
7
配置完需要上传 uni-config-center
这个公共模块才会生效
# 配置阿里云短信
定位到文件 uniCloud/cloudfunctions/common/uni-config-center/vk-unicloud/index.js
的 vk.service.sms
// 短信服务
"sms": {
// 阿里云短信服务
"aliyun": {
"enable": true, // 是否启用阿里云短信
"accessKeyId": "", // 短信密钥key
"accessKeySecret": "", // 短信密钥secret
"signName": "", // 默认签名
"templateCode": {
"verifyCode": "" // 验证码短信模板 - 此模板id仅配合vk.system.smsUtil.sendSmsVerifyCode API需要
}
}
},
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
配置完需要上传 uni-config-center
这个公共模块才会生效
# 常见问题
# 发送短信失败,报错uniCloud.sendSms由uni-cloud-sms扩展库提供,请确保云函数/云对象/clientDB依赖了此扩展库
需要右键云函数,管理依赖,添加uni-cloud-sms扩展库,如下图所示