支付宝小程序注册完整实例,发送短信验证码,带60秒倒计时功能,无需服务器端。效果图:

代码:

index.axml

<view class="container"><view class='row'><input placeholder='请输入手机号' onInput='bindPhoneInput'/> </view><view class='row'><input placeholder='请输验证码' onInput='bindCodeInput'/> <button class='codeBtn' onTap="getSmsCaptcha" disabled='{{captchaDisabled}}'>{{captchaTxt}}</button></view><view><button class="subBtn" onTap='save'>保存</button></view>
</view>复制代码

index.js

var CountDown = require('../../utils/countdown.js');
var zhenzisms = require('../../utils/zhenzisms.js');
Page({data: {mobile: '',code: ''},onLoad(query) {this.countdown = new CountDown(this);my.clearStorage();},//手机号输入bindPhoneInput(e) {console.info(e.detail.value);var val = e.detail.value;this.setData({mobile: val})},//验证码输入bindCodeInput(e) {this.setData({code: e.detail.value})},getSmsCaptcha(e) {var that = this;var mobile = that.data.mobile;if(mobile == ''){my.showToast({type: 'none',content: '请输入手机号码',duration: 3000,});return ;}that.countdown.start();zhenzisms.client.init('https://sms_developer.zhenzikj.com', '你的榛子云appID', '你的榛子云appSecret');zhenzisms.client.sendCode(function (res) {my.showToast({type: 'none',content: res.data.data,duration: 2000})}, mobile, '验证码为:{code}', '', 60 * 5, 4);//获得余额// zhenzisms.client.balance(function(res){//   console.info(res);//   console.info('余额: '+res.data.data)// });//获得短信详情// zhenzisms.client.findSmsByMessageId(function(res){//   console.info(res);//   console.info('详情: '+res.data.data)// }, 'aaaabbbbba');},//保存save(e) {console.info('手机号: ' + this.data.mobile);console.info('验证码: ' + this.data.code);//检验验证码var result = zhenzisms.client.validateCode(this.data.mobile, this.data.code);if (result == 'ok'){console.info('验证正确');} else if (result == 'empty'){console.info('验证错误, 未生成验证码!');} else if (result == 'number_error') {console.info('验证错误,手机号不一致!');} else if (result == 'code_error') {console.info('验证错误,验证码不一致!');} else if (result == 'code_expired') {console.info('验证错误,验证码已过期!');}}});
复制代码

引入一个自己写的countdown.js 倒计时的插件。

index.acss

/**index.wxss**/
page{height: 100%;width: 100%;background: linear-gradient(#5681d7, #486ec3);display: flex;flex-direction: column;align-items: center;
}
.container{display: flex;flex-direction: column;justify-content: space-around;align-items: center;width: 90%;padding-top: 50rpx;
}.row{position: relative;height: 80rpx;width: 100%;background: #fff;box-sizing: border-box;margin: 0 0 50rpx  0;
}
.row input{width: 100%;height:100%;font-size: 24rpx;padding: 0;
}
.codeBtn{position: absolute;right: 0;top: 0;color: #bbb;width: 30%;font-size: 26rpx;height: 80rpx;line-height: 80rpx;
}
.subBtn{width: 200rpx;height: 80rpx;background: #fff;color: #000;border-radius: 50rpx;line-height: 80rpx;
}复制代码

完整demo下载: 下载地址

支付宝小程序发送短信验证码完整实例相关推荐

  1. 小程序发送短信验证码完整工具

    第一家提供小程序发送短信sdk的平台,支持小程序前端发送.云函数.带路由的云函数,以及60秒倒计时插件. 微信小程序(验证码)版,你完全不用生成.存储.校验 验证码,SDK都帮你去实现了. 微信小程序 ...

  2. 微信小程序---发送短信验证码时间限制次数

    1.wxml页面 <view class="container"><view class="title">登录</view> ...

  3. 微信小程序之短信验证码

    目录 1.前提 2.开通静态 2.1.点击云开发中更多->静态网站 2.2.点击开通,使用管理员验证即可 3.短信发送规则 3.1.短信内容 3.2.短信规则 3.3.短信内容长度计算规则 3. ...

  4. thinkphp+小程序手机短信验证码(防止恶意调用短信接口)

    thinkphp+小程序手机短信验证码 前言 一.短信轰炸是什么? 二.小程序准备 1.wxml 2.wxss 3.js(使用小程序定时器限制) 三.后台接口(ThinkPHP) 前言 一.短信轰炸是 ...

  5. 小程序 获取短信验证码 功能实现

    实现功能 验证手机号的合法性 请求获取验证码 发送短信验证码60S倒计时 判断验证码是否正确 在Page文件设置data // 获取验证码phone: '',//手机号code: '',//验证码is ...

  6. 【开发测试个人小微接入短信验证码】thinkphp5.1+小程序使用短信验证码登录

    最近写一个小项目需要用到短信验证码登录,本来打算用阿里云的短信,但是各种审核什么的太麻烦,偶然间发现一个对个人开发测试比较友好的短信平台,注册就送100条验证码,测试用妥妥的够用.而且个人认证处理速度 ...

  7. Java调用腾讯云短信API实现发送短信验证码完整。(详细,内附工具类)

    此先声明,本博文并不是为了推销腾讯云短信产品. 只是因为腾讯云短信SDK的使用指南讲的不是很详细,觉得肯定有很多人像我一样被搞的一头雾水.所以专门发一篇关于使用短信接口的博文,为了记录,也为了帮助和我 ...

  8. 程序君带你畅聊发送短信验证码

    现在不管是网站,还是app等互联网和移动互联网产品,绝大部分注册都是直接用手机号注册登录的,方式就是给手机发送短信验证码,然后把验证码填入,后台程序去匹配判断用户填入的验证码和发送的是否一致. 我最近 ...

  9. 小程序短信验证码登录,1分钟实现小程序发短信功能,借助云开发10行代码实现短信验证码登录小程序

    老规矩先看效果图 普通短信 验证码短信 今天被云开发官方告知,云开发支持发短信功能了,然后就迫不及待的来尝下鲜. 进入官方文档一看,云开发给咱们开发者的福利还真不小. 不仅仅可以很方便的使用短信功能, ...

最新文章

  1. mds聚类matlab,MDS图示聚类结果
  2. 如何使用logminer查看日志内容
  3. Linux不得不知道的目录和文件
  4. linux进程的高级管理,Linux高级程序设计(第2版) PDF扫描版[94MB]
  5. 谈谈结构体部分成员排序(重载的利用/sort)
  6. 信息学奥赛一本通 1356:计算(calc)
  7. java bean状态_无状态和有状态的企业Java Bean
  8. 技巧 | 如何使用R语言的常用工具包绘制双变量填充地图
  9. 浅谈SQL Server identity列的操作方法
  10. 通过wifi使用nfs把ubuntu挂载到android
  11. [UWP]不怎么实用的Shape指南:自定义Shape
  12. C++ 双声道PCM音频分成单声道音频
  13. 关于ABAP调试中的F5,F6,F7,F8的区别和用法
  14. B02 - 025、使用Hive配置mysql作为元数据库
  15. Quorum企业以太坊搭建区块链记录系列
  16. 温州话的歌曲也很好听
  17. 大数据、云计算、元宇宙——吉吉拍的探索之路
  18. 又发福利!日历小程序源码
  19. PHP乱码问题,UTF-8(乱码)
  20. 京剧《断密涧》中李密和王伯当的唱段

热门文章

  1. 项目进度管理:估算活动资源
  2. IPVS调度算法之SED
  3. HttpUtility.HtmlEncode(防止用户强行注入JavaScript语句)
  4. 小猫爪:PMSM之FOC控制15-MRAS法
  5. 软件测试之面试题(一)
  6. 修改wince系统识别的SD卡和U盘的名字
  7. MySQL的字符串拼接函数
  8. python 图论算法(一)
  9. Android 固定View在键盘上方
  10. 让你的办公更简单的这些电脑软件分享