其实微信小程序前端和云端都是可以调用短信平台接口发送短信的,使用云端云函数的好处是无需配置域名,也没有个数限制。

本文使用的是榛子云短信平台(http://smsow.zhenzikj.com) ,SDK下载: http://smsow.zhenzikj.com/doc/sdk.html

1. 安装
下载后的SDK在cloudfunctions文件夹下会包含3个云函数文件夹,如下:

由于目前IDE没有云函数导入功能,您需要手工创建同名的云函数,然后将云函数下的文件手工拷进去

注:下载的SDK是一个完整的工程,包含SDK和使用示例,可实际运行演示

2.申请账号,获取AppId、AppSecret
免费注册地址: http://sms_developer.zhenzikj.com/zhenzisms_user/register.html

使用注册账号登录用户中心,在"我的应用"-> "详情"中可以查询AppId、AppSecret

AppId、AppSecret是用于开发者使用账号和秘钥, 以下的所有api中都需要用到

3.发送短信

wx.cloud.callFunction({
// 云函数名称
name: 'zhenzisms_send',
// 传给云函数的参数
data: {
apiUrl: '你的apiUrl',
appId: '你的appId',
appSecret: '你的appSecret',
message: '你的验证码为:1234',
number: '',
messageId: ''
},
success(res) {
console.log(res.result.body)
},
fail: console.error
})
}

apiUrl为请求地址,个人开发者使用https://sms_developer.zhenzikj.com,企业开发者使用https://sms.zhenzikj.com

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字符串

最新文章

  1. JSONP实现
  2. Xamarin Android 所见即所得问题
  3. sasscore22
  4. bzoj1691[Usaco2007 Dec]挑剔的美食家 平衡树treap
  5. C++调用matlab实例
  6. Linux 获取文件夹下的所有文件
  7. MVC文件上传-使用jQuery.FileUpload和Backload组件实现文件上传
  8. AngularJs(一) MVC 模式的应用
  9. PHP脚本实现凯撒加(解)密
  10. ubuntu 下搭建apache+python的运行环境
  11. java集合(2)- java中HashMap详解
  12. maven依赖jar包更新,业务jar需同步更新(业务jar依赖API)
  13. 阿里云RDS SQL Server 2008 R2 使用本地SQL备份文件还原全过程
  14. NEO智能合约开发(一)不可能完成的任务
  15. 使用Visual Studio Team Services敏捷规划和项目组合管理(三)——使用Kanban板
  16. [20171113]修改表结构删除列相关问题2.txt
  17. oracle 恢复误删数据
  18. react-music React全家桶项目,精品之作!
  19. Apache 隐藏 index.php,如将 tp5.com/index.php/hello/123 变成 tp5.com/hello/123
  20. Kibana查询说明

热门文章

  1. Hutool工具里,POST方法,body中传参的几种调用方法
  2. 记录一个nginx的配置
  3. Keil相关问题
  4. Mybatis自定义分布式二级缓存实现与遇到的一些问题解决方案!
  5. JDBC url连接字符串错误1
  6. JS,JQ实现模拟暂停FOR循环,间隔几秒后再继续执行
  7. 这篇通俗实用的Vlookup函数教程,5分钟就可以包你一学就会
  8. tensorflow优化器-【老鱼学tensorflow】
  9. hbase_2
  10. 小程序即时聊天(仅页面功能,未接websocket)