有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

腾讯云短信小程序体验版



前提条件

在使用 SDK 前,您需要准备以下信息:
获取 SDKAppID 和 AppKey 云短信应用 SDKAppIDAppKey 可在 短信控制台 的应用信息里获取。如您尚未添加应用,请登录 短信控制台 添加应用。
申请签名并确认审核通过 一个完整的短信由短信签名短信正文内容两部分组成,短信签名需申请和审核,签名可在 短信控制台 的相应服务模块内容配置中进行申请,详细申请操作请参见 创建签名。发送国际/港澳台短信时,允许不携带签名。
申请模板并确认审核通过 短信正文内容模板需申请和审核,模板可在 短信控制台 的相应服务模块内容配置中进行申请,详细申请操作请参见 创建正文模板

参考文档

各个接口及其参数的详情介绍请参考 API 文档SDK 文档错误码微信小程序·云开发

使用指南

1. 安装微信开发者工具 IDE

根据 微信小程序云开发·起步 注册并获取小程序 AppID,同时安装 微信开发者工具

2. 新建小程序

1. 选择小程序项目 > 小程序,单击【+】。


2. 根据实际需求,填写以下参数:
项目名称:请填写项目的名称。
目录:请选择项目文件夹。
AppID:请输入注册时获取的正确 AppID。
注意
小程序.云开发场景不支持测试号和无 AppID。
开发模式:请选择【小程序】
后端服务:支持【不使用云服务】、【小程序.云开发】和【腾讯云】三种选择,本文以选择【小程序.云开发】为例。
说明
当使用【不使用云服务】或【腾讯云】时需自建后端 Server,由后端 Server 再调用云短信 API,相关 API 以及 SDK 请参考 腾讯云短信 API 以及 腾讯云短信 SDK

3. 新建云函数

1. 右键单击【cloudfunctions】文件夹,选择【新建 Node.js 云函数】。
2. 输入sendsms,按Enter确认。

4. 添加云函数依赖库

打开/cloudfunctions/sendsms/package.json文件,在dependencies中添加qcloudsms_js库,如下所示:
{
"name": "sendsms",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \\"Error: no test specified\\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"wx-server-sdk": "latest",
"qcloudsms_js": "^0.1.1"
}
}

5. 编写云函数处理逻辑

/cloudfunctions/sendsms/index.js文件中添加处理发送短信实现逻辑,本部分主要调用 qcloudsms_js 库相关接口。

// 云函数入口文件
const cloud = require('wx-server-sdk')
const QcloudSms = require("qcloudsms_js")
const appid = 140000001 // 替换成您申请的云短信 AppID 以及 AppKey
const appkey = "abcdefghijkl123445"
const templateId = 1234 // 替换成您所申请模板 ID
const smsSign = "腾讯云" // 替换成您所申请的签名

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => new Promise((resolve, reject) => {
/*单发短信示例为完整示例,更多功能请直接替换以下代码*/
var qcloudsms = QcloudSms(appid, appkey);
var ssender = qcloudsms.SmsSingleSender();
var params = ["5678"];
// 获取发送短信的手机号码
var mobile = event.mobile
// 获取手机号国家/地区码
var nationcode = event.nationcode
ssender.sendWithParam(nationcode, mobile, templateId, params, smsSign, "", "", (err, res, resData) => {
/*设置请求回调处理, 这里只是演示,您需要自定义相应处理逻辑*/
if (err) {
console.log("err: ", err);
reject({ err })
} else {
resolve({ res: res.req, resData })
}
}
);

})

6. 部署云函数

右键单击/cloudfunctions/sendsms文件夹,选择创建并部署:云端安装依赖

7. 调用云函数

小程序提供 callfunction 进行云函数调用,您可以根据实际需求在任意JS逻辑处理函数中添加如下代码进行云函数调用。 例如,需要在页面小程序首页加载完成后发送短信,则可以在miniprogram/pages/index/index.js的 onLoad 函数中添加如下代码。
if(!wx.cloud) {
wx.redirectTo({
url: '../chooseLib/chooseLib',
})
return
}
wx.cloud.callFunction({
name: 'sendsms',
data: {
mobile: '19012345678',
nationcode: '86'
},
success: res => {
console.log('[云函数] [sendsms] 调用成功')
console.log(res)
},
fail: err => {
console.error('[云函数] [sendsms] 调用失败', err)
}
})
最后编译您的小程序,进行预览,至此您的小程序已可进行短信下发。
说明
如果程序中调用失败可以参考接口 错误码 说明,更多常见问题可参阅 FAQ
如需使用更多功能,例如指定内容单发短信,指定模板群发短信以及拉取短信回执状态等,请参考 qcloudsms_js 库或自行封装 HTTP 接口
无论单发/群发短信还是指定模板 ID 单发/群发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败。