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


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 给汉字排序实例代码
Jun 28 Javascript
javascript indexOf函数使用说明
Jul 03 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
Jan 24 Javascript
JQuery实现表格动态增加行并对新行添加事件
Jul 30 Javascript
简单了解JavaScript操作XPath的一些基本方法
Jun 03 Javascript
微信小程序 登录实例详解
Jan 16 Javascript
javascript显示动态时间的方法汇总
Jul 06 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
Mar 06 Javascript
webpack4 optimization使用总结
Nov 10 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
Apr 27 Javascript
如何使用vue slot创建一个模态框的实例代码
May 24 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 jQuery
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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
PHP HTML代码串 截取实现代码
2009/06/29 PHP
PHP里的单例类写法实例
2015/06/25 PHP
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
AngularJS的Filter的示例详解
2017/03/07 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
国际花店:Pickup Flowers
2020/04/10 全球购物
高中学生评语大全
2014/04/25 职场文书
留守儿童工作方案
2014/06/02 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
婚庆公司计划书
2014/09/15 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
Redis Cluster 字段模糊匹配及删除
2021/05/27 Redis
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
Python字符串的转义字符
2022/04/07 Python