微信小程序发送短信验证码完整实例


Posted in Javascript onJanuary 07, 2019

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

微信小程序发送短信验证码完整实例

代码:

index.wxml

<!--index.wxml-->
<view class="container">
 <view class='row'>
   <input placeholder='请输入姓名' bindinput='bindNameInput'/> 
 </view>
 
 <view class='row'>
   <input placeholder='请输入手机号' bindinput='bindPhoneInput'/> 
 </view>
 <view class='row'>
   <input placeholder='请输验证码' bindinput='bindCodeInput' style='width:70%;'/> 
   <button class='codeBtn' bindtap='getCode' hidden='{{hidden}}' disabled='{{btnDisabled}}'>{{btnValue}}</button>
 </view>
 <view>
   <button class='save' bindtap='save' >保存</button>
 </view>
 
</view>

index.js

//index.js
var zhenzisms = require('../../utils/zhenzisms.js');
//获取应用实例
const app = getApp();
 
Page({
 data: {
  hidden: true,
  btnValue:'',
  btnDisabled:false,
  name: '',
  phone: '',
  code: '',
  second: 60
 },
 onLoad: function () {
  
 },
 //姓名输入
 bindNameInput(e) {
  this.setData({
   name: e.detail.value
  })
 },
 //手机号输入
 bindPhoneInput(e) {
  console.log(e.detail.value);
  var val = e.detail.value;
  this.setData({
   phone: val
  })
  if(val != ''){
   this.setData({
    hidden: false,
    btnValue: '获取验证码'
   })
  }else{
   this.setData({
    hidden: true
   })
  }
 },
 //验证码输入
 bindCodeInput(e) {
  this.setData({
   code: e.detail.value
  })
 },
 //获取短信验证码
 getCode(e) {
  console.log('获取验证码');
  var that = this;
  zhenzisms.client.init('https://sms_developer.zhenzikj.com', 'appId', 'appSecret');
  zhenzisms.client.send(function (res) {
   if(res.data.code == 0){
    that.timer();
    return ;
   }
   wx.showToast({
    title: res.data.data,
    icon: 'none',
    duration: 2000
   })
  }, '15801636347', '验证码为:3322');
  
 },
 timer: function () {
  let promise = new Promise((resolve, reject) => {
   let setTimer = setInterval(
    () => {
     var second = this.data.second - 1;
     this.setData({
      second: second,
      btnValue: second+'秒',
      btnDisabled: true
     })
     if (this.data.second <= 0) {
      this.setData({
       second: 60,
       btnValue: '获取验证码',
       btnDisabled: false
      })
      resolve(setTimer)
     }
    }
    , 1000)
  })
  promise.then((setTimer) => {
   clearInterval(setTimer)
  })
 },
 //保存
 save(e) {
  console.log('姓名: ' + this.data.name);
  console.log('手机号: ' + this.data.phone);
  console.log('验证码: ' + this.data.code);
 
   //省略提交过程
 }
})

index.wxss

/**index.wxss**/
page{
 height: 100%;
 width: 100%;
 background: linear-gradient(#5681d7, #486ec3);
 display: flex;
 flex-direction: column;
}
.container{
 display: flex;
 flex-direction: column;
 justify-content: space-around;
 width: 90%;
 margin: 50rpx auto;
}
 
.row{
 position: relative;
 height: 80rpx;
 width: 100%;
 border-radius: 10rpx;
 background: #fff;
 margin-bottom: 20rpx;
 padding-left: 20rpx;
 box-sizing: border-box;
}
.row input{
 width: 100%;
 height:100%;
}
.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;
}

完整下载: 下载

详情参考: http://smsow.zhenzikj.com/doc/sdk.html

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

Javascript 相关文章推荐
javascript实现二分查找法实现代码
Nov 12 Javascript
fckeditor 获取文本框值的实现代码
Feb 09 Javascript
js 三级关联菜单效果实例
Aug 13 Javascript
在javascript中执行任意html代码的方法示例解读
Dec 25 Javascript
原生js获取元素样式的简单方法
Aug 06 Javascript
深入了解JavaScript的逻辑运算符(与、或)
Dec 20 Javascript
Bootstrap3 多选和单选框(checkbox)
Dec 29 Javascript
canvas实现弧形可拖动进度条效果
May 11 Javascript
基于dataset的使用和图片延时加载的实现方法
Dec 11 Javascript
js构建二叉树进行数值数组的去重与优化详解
Mar 26 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 Javascript
在antd4.0中Form使用initialValue操作
Nov 02 Javascript
JS数组求和的常用方法实例小结
Jan 07 #Javascript
Node.js 如何利用异步提升任务处理速度
Jan 07 #Javascript
vue封装一个简单的div框选时间的组件的方法
Jan 06 #Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
Jan 06 #Javascript
浅谈在Vue.js中如何实现时间转换指令
Jan 06 #Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
Jan 06 #Javascript
react-router4按需加载(踩坑填坑)
Jan 06 #Javascript
You might like
php select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
Python 除法小技巧
2008/09/06 Python
Python创建文件和追加文件内容实例
2014/10/21 Python
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
python使用win32com库播放mp3文件的方法
2015/05/30 Python
python实现网站的模拟登录
2016/01/04 Python
深入理解python多进程编程
2016/06/12 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
Python @property及getter setter原理详解
2020/03/31 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
投资协议书范本
2014/04/21 职场文书
国旗下的演讲稿
2014/05/08 职场文书
2015元旦节寄语
2014/12/08 职场文书
贫困生证明范文
2015/06/16 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript