# 发送短信

调试诊断

接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南

接口英文名:sendCloudBaseSms

发送支持打开云开发静态网站的短信,该 H5 可以打开小程序。详情可参考静态网站 H5 跳小程序

# 1. 调用方式

# HTTPS 调用

POST https://api.weixin.qq.com/tcb/sendsms?access_token=ACCESS_TOKEN

# 云调用

  • 调用方法:cloudbase.sendSms

  • 出入参和 HTTPS 调用相同,调用方式可查看 云调用 说明文档

# 第三方调用

  • 本接口支持第三方平台代商家调用。

  • 该接口所属的权限集 id 为:49、99

  • 服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。

# 2. 请求参数

# 查询参数 Query String parameters

参数名类型必填说明
access_tokenstring接口调用凭证,可使用 access_tokenauthorizer_access_token

# 请求体 Request Payload

参数名类型必填说明
envstring环境 ID
phone_number_listarray手机号列表,单次请求最多支持 1000 个境内手机号,手机号必须以+86开头
sms_typenumber短信类型,营销类短信:Marketing;通知类短信:Notification
template_idstringsms_type="Notification" 时必填,模版 ID
contentstringsms_type="Marketing" 时必填,自定义短信内容,一条短信最多为70个字。可自定义内容最多为 30 个字符,详情参考短信规则
pathstringsms_type="Marketing" 时必填,云开发静态网站 path,不需要指定域名,例如/index.html
template_param_listarraysms_type="Notification" 时必填,短信模版变量数组
use_short_nameboolean是否使用小程序简称
resource_appidstring资源方appid,第三方代开发时可填第三方appid或小程序appid,应为所填环境所属的账号APPID

# 3. 返回参数

# 返回体 Response Payload

参数名类型说明
errcodenumber错误码
errmsgstring错误信息
send_status_listobjarray开放数据列表

# Res.send_status_list(Array) Object Payload

开放数据列表

参数名类型说明
serial_nostring发送流水号
phone_numberstring手机号码
codestring短信请求错误码
messagestring短信请求错误码描述
iso_codestring国家码或地区码

# 4. 注意事项

短信内容

短信由签名和正文内容组成:

短信签名是位于短信正文前【】中的署名,小程序发送短信时,签名为小程序名称。

  • 正文内容是由短信模板和变量构成,例:{1},跳转小程序 {2} 回T退订,模板参数中 {1},{2} 是变量:
  • {1} :用户可自定义传入的内容,当前最长为30个字。
  • {2} :用户传入的静态托管的地址,例如 /action/index.html?action=double12。 示例:【云开发】能力上新,跳转小程序 https://tcbe.cn/VcdrUJK0 回T退订

短信资源包

前往“开发者工具-云开发-设置-环境设置-资源包”中购买。

第三方代开发

小程序需要将【短信服务】或【云开发】权限集授权给第三方,第三方才可代小程序调用此接口。第三方在调用接口时,可选择使用第三方的环境或小程序的环境,默认使用小程序的环境。在resource_appid填入第三方的appid,在env填入第三方账号下的环境,即可使用第三方的环境。

模版ID

云开发短信模版 ID,填写 2053122,即为当前统一的跳转小程序短信模板。非营销类内容,需要24小时触达,可走通知类短信,当前内测中,可通过提交工单进行申请。例如:【腾讯电子签】您有一份已完成的收据,请登录“腾讯电子签”小程序查看详情。 https://tcbe.cn/9a3vCqlK 工单链接:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/operations/ticket.html

# 5. 代码示例

# 5.1 营销类短信请求数据示例

请求示例

{
  "env": "online-12345678910",
  "phone_number_list": [
    "+8612345678910"
  ],
  "sms_type": "Marketing",
  "content": "发布了新的能力",
  "path": "/index.html",
  "use_short_name": true
}

返回示例

{
  "errcode": 0,
  "send_status_list": [
    {
      "serial_no": "8:gFIqWUHzllUyOFRHgeu20201231",
      "phone_number": "+8612345678910",
      "code": "Ok",
      "message": "send success",
      "iso_code": ""
    }
  ]
}

# 5.2 通知类短信请求数据示例

请求示例

{
  "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": ""
    }
  ]
}

# 5.3 云函数调用示例

请求示例

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 } }

返回示例

{
  "errCode": 0,
  "sendStatusList": [
    {
      "code": "Ok",
      "message": "send success",
      "serialNo": "8:gFIqWUHzllUyOFRHgeu20201231",
      "phoneNumber": "+8612345678910",
      "isoCode": ""
    }
  ],
  "errMsg": "openapi.cloudbase.sendSms:ok"
}

# 6. 错误码

以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。

错误码错误描述解决方案
-607004无效的 URL Link
-607001无效的静态网站 Path检查静态网站 Path 是否填写正确
-601033仅支持非个人主体小程序
-601032小程序昵称不能为空
-601028没有开通静态网站请在微信开发者工具开通静态网站(云开发/设置/拓展功能)
-601027无效的环境
-601027无效的环境 ID检查环境 ID 是否填写正确
-501007参数有误,具体原因参考 errmsg
-501007参数有误,具体原因参考 errmsg
-1system error系统繁忙,此时请开发者稍候再试
40001invalid credential  access_token isinvalid or not latest获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口

# 7. 适用范围

本接口在不同账号类型下的可调用情况:
小程序小游戏
  • ✔:该账号可调用此接口
  • 其他未明确声明的账号类型,如无特殊说明,均不可调用此接口;