前提条件
在使用 SDK 前,您需要准备以下信息:
申请签名并确认审核通过
一个完整的短信由短信签名和短信正文内容两部分组成,短信签名需申请和审核,签名可在 短信控制台 的相应服务模块内容配置中进行申请,详细申请操作请参见 创建签名。发送国际/港澳台短信时,允许不携带签名。
参考文档
使用指南
1. 安装微信开发者工具 IDE
2. 新建小程序
1. 选择小程序项目 > 小程序,单击【+】。
2. 根据实际需求,填写以下参数:
项目名称:请填写项目的名称。
目录:请选择项目文件夹。
AppID:请输入注册时获取的正确 AppID。
注意
小程序.云开发场景不支持测试号和无 AppID。
开发模式:请选择【小程序】
后端服务:支持【不使用云服务】、【小程序.云开发】和【腾讯云】三种选择,本文以选择【小程序.云开发】为例。
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 以及 AppKeyconst appkey = "abcdefghijkl123445"const templateId = 1234 // 替换成您所申请模板 IDconst 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.nationcodessender.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)}})
最后编译您的小程序,进行预览,至此您的小程序已可进行短信下发。
说明
如需使用更多功能,例如指定内容单发短信,指定模板群发短信以及拉取短信回执状态等,请参考 qcloudsms_js 库或自行封装 HTTP 接口。
无论单发/群发短信还是指定模板 ID 单发/群发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败。