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

本文使用的是榛子云短信平台(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. 微信小程序+laravel 7+ Redis +短信宝 实现手机号验证码登录

    以下代码可以进行优化和封装:这里我实现功能为主,就不封装啦.小伙伴可以自己试着封装一下. 1:书写登录表单 <view class="container"> <v ...

  2. python-在python3中使用容联云通讯发送短信验证码

    容联云通讯是第三方平台,能够提供短信验证码和语音通信等功能,这里只测试使用短信验证码的功能,因此只需完成注册登录(无需实名认证等)即可使用其短信验证码免费测试服务,不过免费测试服务只能给控制台中指定的 ...

  3. 微信小程序云函数 添加数据到数据库

    1.新建小程序,建立云开发快速启动模板 这里和普通小程序的区别有三点 一是 project.config.json写上云函数所在目录"cloudfunctionRoot": &qu ...

  4. 微信小程序云函数Windows下安装wx-server-sdk

    第一次上传部署云函数时,会提示这个,建议在这之前先安装一下node.js. https://nodejs.org/en/ 下载nodejs,然后直接安装,在cmd控制台输入node -v和npm -v ...

  5. 微信小程序云函数中有以下未安装的依赖,如果未安装即全量上传

    云函数中有以下未安装的依赖,如果未安装即全量上传 在新建的云函数,右击终端打开->cmd,安装依赖 npm install --production 依赖安装成功之后,文件里面会出现 packa ...

  6. 微信小程序-云函数、云存储

    云函数是运行在服务器端的 创建一个目录cloud project.config.json配置云函数目录 cloud目录有个云朵.代表云函数 初始化成功了 新建一个云函数 cloud目录右击 新建一个N ...

  7. 个微信小程序云开发云函数

    1. project.config.json写上云函数所在目录"cloudfunctionRoot": "cloudfunctions/",如图 2. app. ...

  8. 微信小程序如何发送短信验证码,无需搭建服务器

    自从微信小程序提供云开发支持,开发者无需搭建后台服务器,使用微信提供的核心API就可以实现应用功能,此时就需要小程序能够自己发送短信,比如短信验证码,榛子云短信(http://smsow.zhenzi ...

  9. 技本功丨收藏!斜杠青年与你共探微信小程序云开发(下篇)

    2019年2月26日,人们为了一个杯子疯了一天. 星巴克猫爪杯,一场已经与猫无关了的“圣杯战争“.网上的倒卖价格,已炒至近千元! 求而不得,舍而不能,得而不惜.这是人最大的悲哀... 所以,请珍惜以下 ...

随机推荐

  1. ABP架构学习系列四:集成Dapper

    之前,一直想集成Dapper到项目中,但是一直没成功,今天把abp升级到最新版,然后按教程来,就可以了,呵呵    现在,基于上一篇的源码进行升级和集成dapper,将abp升级到3.8.2   官方 ...

  2. 在JavaScript中,如何判断数组是数组?

    如果你没有注意过这个问题,那么这个标题应该会让你感到困惑,判断数据类型这么基础的问题能有什么坑呢? 少年,你不能太天真了,我们朝夕面对的这门语言,可是JavaScript呀,任何你觉得已经习以为常的东 ...

  3. 【easy】235. Lowest Common Ancestor of a Binary Search Tree

    题意大概是,找两个节点的最低公共祖先 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNod ...

  4. Go语言--数组、切片、

    3.1 数组--固定大小的连续空间 3.1.1 声明数组 写法 var 数组变量名 [元素数量]T 说明: 变量名就是使用时的变量 元素的数量可以是表达式,最后必须为整型数值 T 可是是任意基本类型, ...

  5. 数据库入门-pymysql模块的使用

    一.pymysql模块安装 由于本人的Python版本为python3.7,所以用pymysql来连接数据库(mysqldb不支持python3.x) 方法一: #在cmd输入 pip3 instal ...

  6. 明确MangoDB在企业中应用

    目录 1.MongoDB是什么? 2.为什么要用MongoDB? 3.主要特性 4.C/S服务模型 5.完善的命令行工具 6.几个shell实操 7.在Java中使用MongoDB 明确MongoDB ...

  7. Docker----起步(2)----在Ubuntu上安装最新版的Docker CE

    之前写了一篇文章关于Docker安装的博客,最近再次使用的时候,在docker的官方文档上发现最新版本的Docker(V18.03)的安装方式和之前有点区别,有一些命令发现不能用了.(真的是一天不学习 ...

  8. gradle 编译kafka源码慢

    我前提已经在环境变量中将GRADLE_HOME设置到了gradle的目录(在E盘),并且在环境变量里设置了本地仓库GRADLE_USER_HOME. 编译kafka源码时候,很慢很慢.百度了一下,有说 ...

  9. 操作Excel

    1.成面积计算(比如一块区域的数据统一除1000) (1).选一个空格单元格输入公式 回车 (2).复制改单元格 >选中所有要计算的面积 >右键 >选择性粘贴 >选择数值 &g ...

  10. Hive学习笔记 --Permission denied: user=anonymous, access=READ

    执行select语句报错 Error: java.io.IOException: org.apache.hadoop.security.AccessControlException: Permissi ...