详解如何使用微信小程序云函数发送短信验证码


Posted in Javascript onMarch 13, 2019

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

本文使用的是榛子云短信平台(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: '15811111111',
    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字符串

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Sample script that deletes a SQL Server database
Jun 16 Javascript
Javascript中call和apply函数的比较和使用实例
Feb 03 Javascript
深入理解node exports和module.exports区别
Jun 01 Javascript
bootstrap监听滚动实现头部跟随滚动
Nov 08 Javascript
浅谈Javascript中的Label语句
Dec 14 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
Dec 24 Javascript
原生js实现放大镜
Feb 20 Javascript
微信小程序 五星评分的实现实例
Aug 04 Javascript
基于datepicker定义自己的angular时间组件的示例
Mar 14 Javascript
JavaScript实现的简单加密解密操作示例
Jun 01 Javascript
vue中v-for通过动态绑定class实现触发效果
Dec 06 Javascript
layui数据表格 table.render 报错的解决方法
Sep 29 Javascript
vue计算属性computed的使用方法示例
Mar 13 #Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
Mar 13 #Javascript
vue生命周期与钩子函数简单示例
Mar 13 #Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
Mar 13 #Javascript
vue实现百度下拉列表交互操作示例
Mar 12 #Javascript
vue基础之使用get、post、jsonp实现交互功能示例
Mar 12 #Javascript
深入理解Node内建模块和对象
Mar 12 #Javascript
You might like
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
javascript object array方法使用详解
2012/12/03 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
wxPython 入门教程
2008/10/07 Python
深入理解Python 代码优化详解
2014/10/27 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python----数据预处理代码实例
2019/03/20 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
标准毕业生自荐信范文
2013/11/04 职场文书
实习报告怎么写
2019/06/20 职场文书
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL
redis数据一致性的实现示例
2022/03/18 Redis