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


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 相关文章推荐
Javascript操作cookie的函数代码
Oct 03 Javascript
在Ubuntu上安装最新版本的Node.js
Jul 14 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
Jan 09 Javascript
在Node.js应用中使用Redis的方法简介
Jun 24 Javascript
jQuery实现选项卡切换效果简单演示
Dec 09 Javascript
基于JavaScript的操作系统你听说过吗?
Jan 28 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
Jan 30 Javascript
JavaScript事件方法(实例讲解)
Jun 27 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
Sep 04 Javascript
Node.js Buffer用法解读
May 18 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
Jun 14 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
Aug 07 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
PHP中的cookie
2006/11/26 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
php抓取页面与代码解析 推荐
2010/07/23 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
PHP身份证校验码计算方法
2016/08/10 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
捕获关闭窗口的脚本
2009/01/10 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
Bootstrap精简教程
2015/11/27 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
使用python实现省市三级菜单效果
2016/01/20 Python
pandas把dataframe转成Series,改变列中值的类型方法
2018/04/10 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
django-allauth入门学习和使用详解
2019/07/03 Python
Django REST framework内置路由用法
2019/07/26 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
python绘制封闭多边形教程
2020/02/18 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
struct与class的区别
2014/02/03 面试题
教师业务学习制度
2014/01/25 职场文书
教师考核评语
2014/04/28 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android