其实微信小程序前端和云端都是能够调用短信平台接口发送短信的,使用云端云函数的好处是无需配置域名,也没有个数限制。html
本文使用的是榛子云短信平台(http://smsow.zhenzikj.com) ,SDK下载: http://smsow.zhenzikj.com/doc/sdk.html前端
1. 安装
下载后的SDK在cloudfunctions文件夹下会包含3个云函数文件夹,以下:json
因为目前IDE没有云函数导入功能,您须要手工建立同名的云函数,而后将云函数下的文件手工拷进去小程序
注:下载的SDK是一个完整的工程,包含SDK和使用示例,可实际运行演示微信小程序
2.申请帐号,获取AppId、AppSecret
免费注册地址: http://sms_developer.zhenzikj.com/zhenzisms_user/register.htmlapi
使用注册帐号登陆用户中心,在"个人应用"-> "详情"中能够查询AppId、AppSecret安全
AppId、AppSecret是用于开发者使用帐号和秘钥, 如下的全部api中都须要用到服务器
3.发送短信微信
wx.cloud.callFunction({ // 云函数名称 name: 'zhenzisms_send', // 传给云函数的参数 data: { apiUrl: '你的apiUrl', appId: '你的appId', appSecret: '你的appSecret', message: '你的验证码为:1234', number: '15811111111', messageId: '' }, success(res) { console.log(res.result.body) }, fail: console.error }) }
apiUrl为请求地址,我的开发者使用https://sms_developer.zhenzikj.com,企业开发者使用https://sms.zhenzikj.comapp
send方法用于单条发送短信
参数message:发送的短信内容
参数number:接收者手机号码
参数messageId:该条信息的惟一标识,可用于查询
返回结果是json格式的字符串, code: 发送状态,0为成功。非0为发送失败,可从data中查看错误信息
4.查看余额
经过该接口可查看当前剩余的短信条数
wx.cloud.callFunction({ // 云函数名称 name: 'zhenzisms_balance', // 传给云函数的参数 data: { apiUrl: '你的apiUrl', appId: '你的appId', appSecret: '你的appSecret' }, success(res) { console.log(res.result.body) }, fail: console.error }) }
返回结果是json格式的字符串, code: 查询状态,0为成功,data为剩余短信条数。非0为查询失败,可从data中查看错误信息
错误代码表
错误码 缘由 解决方案
100 参数格式错误 检查请求参数是否为空
105 appId错误或应用不存在 请联系工做人员申请应用或检查appId是否输入错误
106 应用被禁止 请联系工做人员查看缘由
107 ip错误 若是设置了ip白名单,系统会检查请求服务器的ip地址,已肯定是否为安全的来源访问
110 应用秘钥(AppSecret)错误 检查AppSecret是否输入错误,或是否已在用户中心进行了秘钥重置
1000 系统位置错误 请联系工做人员或技术人员检查缘由
5.查询短信
接口描述
根据messageId查询已发送短信
wx.cloud.callFunction({ // 云函数名称 name: 'zhenzisms_findSmsByMessageId', // 传给云函数的参数 data: { appId: '你的appId', appSecret: '你的appSecret', messageId: 'messageId信息' }, success(res) { console.log(res.result.body) }, fail: console.error })
请求参数
参数名称 必选 类型 描述
messageId 是 string 信息id,对应发送短信接口的messageId字段
返回结果
返回结果是json格式的字符串, code: 查询状态,0为成功。非0为失败,可从data中查看错误信息
{ "code":0, "data":{} } 返回结果是json格式的字符串, code: 查询状态,0为成功,data短信信息的json字符串