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


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 相关文章推荐
对YUI扩展的Gird组件 Part-1
Mar 10 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
Jan 27 Javascript
js原型继承的两种方法对比介绍
Mar 30 Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 Javascript
javascript计时器详解
Feb 28 Javascript
jQuery对JSON数据进行排序输出的方法
Jun 24 Javascript
jquery实现手风琴效果
Nov 20 Javascript
jQuery 遍历map()方法详解
Nov 04 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
Dec 27 Javascript
vue中v-for加载本地静态图片方法
Mar 03 Javascript
vue组件入门知识全梳理
Sep 21 Javascript
微信小程序实现倒计时功能
Nov 19 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
重量级动漫纷纷停播!唯独OVERLORD第四季正在英魂之刃继续更新
2020/05/06 日漫
substr()函数中文版
2006/10/09 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
javascript常见用法总结
2014/05/22 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
班会关于环保演讲稿
2013/12/29 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
学生会部长竞聘书
2014/03/31 职场文书
学校安全责任书
2014/04/14 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
早上好问候语大全
2015/11/10 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL