云开发 /sendSms
cloudbase.sendSms
本接口应在服务器端调用,详细说明参见服务端API。
本接口支持云调用。需开发者工具版本 >=
1.02.1904090
(最新稳定版下载),wx-server-sdk
>=0.4.0
发送支持打开云开发静态网站的短信,该 H5 可以打开小程序。详情可参考静态网站 H5 跳小程序
短信内容
短信由签名和正文内容组成:
短信签名是位于短信正文前【】中的署名,小程序发送短信时,签名为小程序名称。
- 正文内容是由短信模板和变量构成,例:{1},跳转小程序 {2} 回 T 退订,模板参数中 {1},{2} 是变量:
- {1} :用户可自定义传入的内容,当前最长为30个字。
- {2} :用户传入的静态托管的地址,例如 /action/index.html?action=double12。 示例:【云开发】能力上新,跳转小程序 https://tcbe.cn/VcdrUJK0 回 T 退订
短信资源包
前往“开发者工具 - 云开发 - 设置 - 环境设置 - 资源包”中购买。
第三方代开发
小程序需要将【短信服务】或【云开发】权限集授权给第三方,第三方才可代小程序调用此接口。第三方在调用接口时,可选择使用第三方的环境或小程序的环境,默认使用小程序的环境。在resource_appid填入第三方的appid,在 env 填入第三方账号下的环境,即可使用第三方的环境。
调用方式:
HTTPS 调用
请求地址
POST https://api.weixin.qq.com/tcb/sendsms?access_token=TOKEN
请求参数
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
access_token / cloudbase_access_token | string | 是 | 接口调用凭证 | |
env | string | 是 | 环境 ID | |
phone_number_list | Array. | 是 | 手机号列表,单次请求最多支持 1000 个境内手机号,手机号必须以+86 开头
|
|
sms_type | string | Marketing | 是 | 短信类型,营销类短信:Marketing;通知类短信:Notification |
content | string | 是 | sms_type="Marketing" 时必填,自定义短信内容,一条短信最多为70个字。可自定义内容最多为 30 个字符,详情参考短信规则 | |
path | string | 是 | sms_type="Marketing" 时必填,云开发静态网站 path,不需要指定域名,例如/index.html
|
|
template_id | string | 是 | sms_type="Notification" 时必填,模版 ID | |
template_param_list | Array. | 是 | sms_type="Notification" 时必填,短信模版变量数组 | |
use_short_name | bool | false | 否 | 是否使用小程序简称 |
resource_appid | string | 否 | 资源方appid,第三方代开发时可填第三方 appid 或小程序appid,应为所填环境所属的账号APPID |
返回值
Object
返回的 JSON 数据包
属性 | 类型 | 说明 |
---|---|---|
errcode | number | 错误码 |
errmsg | string | 错误信息 |
send_status_list | Array. | 开放数据列表 |
errcode 的合法值
值 | 说明 | 最低版本 |
---|---|---|
0 | 请求成功 | |
-1 | 系统繁忙,此时请开发者稍候再试 | |
-501007 | 参数有误,具体原因参考 errmsg | |
-601027 | 无效的环境 | |
-601032 | 小程序昵称不能为空 | |
-601033 | 仅支持非个人主体小程序 | |
-607004 | 无效的 URL Link |
send_status_list 的结构
属性 | 类型 | 说明 |
---|---|---|
serial_no | string | 发送流水号 |
phone_number | string | 手机号码 |
code | string | 短信请求错误码 |
message | string | 短信请求错误码描述 |
iso_code | string | 国家码或地区码 |
营销类短信请求数据示例
{
"env":"online-12345678910",
"phone_number_list":[
"+8612345678910"
],
"sms_type": "Marketing",
"content":"发布了新的能力",
"path":"/index.html",
"use_short_name": true
}
通知类短信请求数据示例
{
"env":"online-12345678910",
"phone_number_list":[
"+8612345678910"
],
"sms_type": "Notification",
"template_id": "923584",
"template_param_list": ["商品", "/index.html"]
}
返回数据示例
{
"errcode":0,
"send_status_list":[
{
"serial_no":"8:gFIqWUHzllUyOFRHgeu20201231",
"phone_number":"+8612345678910",
"code":"Ok",
"message":"send success",
"iso_code":""
}
]
}
云调用
云调用是微信云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过
wx-server-sdk
使用。
接口方法
openapi.cloudbase.sendSms
需在
config.json
中配置cloudbase.sendSms
API 的权限,详情
请求参数
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
env | string | 是 | 环境 ID | |
phoneNumberList | Array. | 是 | 手机号列表,单次请求最多支持 1000 个境内手机号,手机号必须以+86 开头
|
|
smsType | string | Marketing | 是 | 短信类型,营销类短信:Marketing;通知类短信:Notification |
content | string | 是 | sms_type="Marketing" 时必填,自定义短信内容,一条短信最多为70个字。可自定义内容最多为 30 个字符,详情参考短信规则 | |
path | string | 是 | sms_type="Marketing" 时必填,云开发静态网站 path,不需要指定域名,例如/index.html
|
|
templateId | string | 是 | sms_type="Notification" 时必填,模版 ID | |
templateParamList | Array. | 是 | sms_type="Notification" 时必填,短信模版变量数组 | |
useShortName | bool | false | 否 | 是否使用小程序简称 |
resourceAppid | string | 否 | 资源方appid,第三方代开发时可填第三方 appid 或小程序appid,应为所填环境所属的账号APPID |
返回值
Object
返回的 JSON 数据包
属性 | 类型 | 说明 |
---|---|---|
errCode | number | 错误码 |
errMsg | string | 错误信息 |
sendStatusList | Array. | 开放数据列表 |
errCode 的合法值
值 | 说明 | 最低版本 |
---|---|---|
0 | 成功 |
sendStatusList 的结构
属性 | 类型 | 说明 |
---|---|---|
serialNo | string | 发送流水号 |
phoneNumber | string | 手机号码 |
code | string | 短信请求错误码 |
message | string | 短信请求错误码描述 |
isoCode | string | 国家码或地区码 |
异常
Object
抛出的异常
属性 | 类型 | 说明 |
---|---|---|
errCode | number | 错误码 |
errMsg | string | 错误信息 |
errCode 的合法值
值 | 说明 | 最低版本 |
---|---|---|
-1 | 系统繁忙,此时请开发者稍候再试 | |
-501007 | 参数有误,具体原因参考 errmsg | |
-601027 | 无效的环境 | |
-601032 | 小程序昵称不能为空 | |
-601033 | 仅支持非个人主体小程序 | |
-607004 | 无效的 URL Link |
营销类短信请求数据示例
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.cloudbase.sendSms({
"env": 'online-12345678910',
"content": '发布了新的能力',
"path": '/index.html',
"phoneNumberList": [
"+8612345678910"
],
"smsType": 'Marketing',
"useShortName": true
})
return result
} catch (err) {
return err
}
}
通知类短信请求数据示例
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.cloudbase.sendSms({
"env": 'online-12345678910',
"phoneNumberList": [
"+8612345678910"
],
"smsType": 'Notification',
"templateId": '923584',
"templateParamList": [
"商品",
"/index.html"
]
})
return result
} catch (err) {
return err
}
}
返回数据示例
{
"errCode": 0,
"sendStatusList": [
{
"code": "Ok",
"message": "send success",
"serialNo": "8:gFIqWUHzllUyOFRHgeu20201231",
"phoneNumber": "+8612345678910",
"isoCode": ""
}
],
"errMsg": "openapi.cloudbase.sendSms:ok"
}