精华内容
下载资源
问答
  • 获取验证码

    千次阅读 2019-08-04 17:31:46
    5:业务层:先引用第三方项目,先调用第三方类,发送验证码,然后将验证码存储到短信信息对象,最后调用数据访问层的插入短信的方法。 using System; using System.Collections.Generic; using System....

    1:创建一个项目用来调用第三方的类,右键Nuget添加第三方的引用类库 qcloudsms_csharp

      点击解决方案然后添加新建解决方案文件夹在里面添加用来调用第三方的项目。

    2.把第三方的公共类放入到我们的项目里。

    
    using qcloudsms_csharp;
    using qcloudsms_csharp.httpclient;
    using qcloudsms_csharp.json;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace MyStudent.Remote
    {
        public class TenXunYunSMS
        {
            /// <summary>
            /// 
            /// </summary>      
                //appId
                public int appId;
                //appKey
                public string appKey = "";
                //短信模板ID
                private int tmplateId = 379257;
                //签名内容
                private string smsSign = "7hhhcn";
                /// <summary>
                /// 验证码
                /// </summary>
                public int Code { get; set; }
                /// <summary>
                /// 发送验证码
                /// </summary>
                /// <param name="phone"></param>
                /// <returns></returns>
                public void SetSMS(string phone)
                {
                    Random random = new Random();
                    int code = random.Next(100000, 999999);
                    try
                    {
                        SmsSingleSender ssender = new SmsSingleSender(appId, appKey);
                        var result = ssender.sendWithParam("86", phone,
                            tmplateId, new[] { code.ToString() }, smsSign, "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
                    }
                    catch (JSONException ex)
                    {
                    }
                    catch (HTTPException ex)
                    {
                    }
                    catch (Exception ex)
                    {
     
                    }
                    Code = code;
                }
     
            }
        }
    
    

    3:创建一张短信发送记录表。

    
    Create table SMSInfo(
     Id int identity primary key,
     Code int,
     TelPhone bigint,
     CreateTime datetime,
     ExpireTime datetime
    

    编写实体类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace MyStudent.Mode
    {
      public class SMSInfo
        {
            public int Id { get; set; }
            public int Code { get; set; }
            public Int64 TelPhone { get; set; }
            public DateTime CreateTime { get; set; }
            public DateTime ExpireTime { get; set; }
        }
    
    

    4:数据访问层写插入短信信息表方法。

    
    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using MyStudent.Core;
    using MyStudent.Mode;
     
    namespace Student.DAL
    {
     
        public class SMSInfoRepository
        {
            //添加验证码
            public int AddSmsInfo(SMSInfo sMSInfo)
            {
                DBHelper dbh = new DBHelper();
                int result = -1;
                string sql = @"insert into [dbo].[SMSInfo]([Code],[TelPhone],[CreateTime],[ExpireTime])" +
                        "values(@Code,@TelPhone,@CreateTime,@ExpireTime)";
                SqlParameter[] parameters =
                   {
                    new SqlParameter()
                    {
                        DbType = System.Data.DbType.Int32,
                        ParameterName = "@Code",
                        Value = sMSInfo.Code
                    },
                    new SqlParameter()
                    {
                        DbType = System.Data.DbType.Int64,
                        ParameterName = "@TelPhone",
                        Value = sMSInfo.TelPhone
                    },
                    new SqlParameter()
                    {
                        DbType = System.Data.DbType.DateTime,
                        ParameterName = "@CreateTime",
                        Value = DateTime.Now
                    },
                     new SqlParameter()
                    {
                        DbType = System.Data.DbType.DateTime,
                        ParameterName = "@ExpireTime",
                        Value =DateTime.Now.AddMinutes(5)
                    },
                };
                result = dbh.ExcuteNoQuery(sql, parameters);
                return result;
            }
          //查询验证码
            public int QuerySmsInfo(SMSInfo sMSInfo)
            {
                DBHelper dbh = new DBHelper();
                int result = -1;
                try
                {
                    string sql = @"select count(1) from dbo.SMSInfo where Code=@Code and TelPhone=@TelPhone and ExpireTime>@ExpireTime";
                    SqlParameter[] parameters =
                       {
                        new SqlParameter()
                        {
                            DbType = System.Data.DbType.Int32,
                            ParameterName = "@Code",
                            Value = sMSInfo.Code
                        },
                        new SqlParameter()
                        {
                            DbType = System.Data.DbType.Int32,
                            ParameterName = "@TelPhone",
                            Value = sMSInfo.TelPhone
                        },
                        new SqlParameter()
                        {
                            DbType = System.Data.DbType.DateTime,
                            ParameterName = "@CreateTime",
                            Value = DateTime.Now
                        },
                    };
                    result = dbh.ExcuteScalar(sql, parameters);
                    return result;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return result;
                }
            }
    }
    

    5:业务层:先引用第三方项目,先调用第三方类,发送验证码,然后将验证码存储到短信信息对象,最后调用数据访问层的插入短信的方法。

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using MyStudent.Mode;
    using MyStudent.Remote;
    using Student.DAL;
     
    namespace MyStudent.BLL
    {
      public  class SMSInfoService
        {
            public bool SendCode(string telphone)
            {
                //new第三方类        
                TenXunYunSMS tenXunYunSMS = new TenXunYunSMS();
                try
                {       
                    //设置开发者账号
                    tenXunYunSMS.appId = Convert.ToInt32(ConfigurationManager.AppSettings["appId"]);
                    tenXunYunSMS.appKey = ConfigurationManager.AppSettings["appKey"];
                    //发送验证码
                    tenXunYunSMS.SetSMS(telphone);
                }
                catch (Exception)
                {
                    return false;
                }
                SMSInfoRepository infoRepository = new SMSInfoRepository();
                SMSInfo sMSInfo = new SMSInfo();
                sMSInfo.Code = tenXunYunSMS.Code;
                sMSInfo.TelPhone = Convert.ToInt64(telphone);
                return infoRepository.AddSmsInfo(sMSInfo)>0;
            }
    }
    

    6:控制器写一个JsonResult的发送验证码方法需要接收手机号 。

    public JsonResult SendCode(string tel)
            {
                OperateResult result = new OperateResult();
                SMSInfoService sMSInfoService = new SMSInfoService();
                result.Success = sMSInfoService.SendCode(tel);
                return Json(result);
            }

    7.控制器写一个JsonResult的校验验证码方法需要接收短信信息对象。

     public JsonResult ValidateCode(SMSInfo sMSInfo)
            {
                OperateResult result = new OperateResult();
                SMSInfoService sMSInfoService = new SMSInfoService();
                result.Success = sMSInfoService.QuerySmsInfo(sMSInfo) > 0;
                return Json(result);
            }

    8.页面点击获取验证码按钮:先禁用按钮,然后ajax post提交到控制器对应的发送验证码方法,传入手机号,然后success处理返回的结果。

    //获取验证码
        $("#verification").click(function () {
            $(this).attr("disable", "disabled");
            $(this).css("color", "black");
            var time = 60;
            var tel = $("#tel").val();
            $(this).val(time + "s后可再发送");
            var timer = setInterval(function () {
                if (time > 0) {
                    time--;
                    $("#verification").val(time + "s后可发送");
                } else {
                    $("#verification").removeAttr("disable").css("color", "white");
                    clearInterval(timer);
                }
            }, 1000);
            $.ajax({
                type: "post",
                url: "/Common/SendCode?tel=" + tel,
                success: function (result) {
                    if (result.Success) {
                        alert("发送成功");
                        window.location.herf = "/Login/Login"
                    } else {
                        alert("发送失败");
                    }
                },
            })
        });
    

    9.点击注册按钮,写一个校验验证码的方法,校验通过之后才能注册。

    展开全文
  • vue获取验证码

    2019-06-26 10:53:11
    vue获取验证码HTML部分JS部分 登录界面使用手机验证码注册登录很常见,VUE中实现获取验证码倒计时还是用到定时器setInterval HTML部分 <div class="login_list"> <span v-show="sendAuthCode" class=...

    vue获取验证码


    登录界面使用手机验证码注册登录很常见,VUE中实现获取验证码倒计时还是用到定时器setInterval

    HTML部分

    <div  class="login_list">   
     	<span v-show="sendAuthCode" class="auth_text auth_text_blue"  @click="getAuthCode">获取验证码</span> 
     	<span v-show="!sendAuthCode" class="auth_text"> <span class="auth_text_blue">{{auth_time}} </span> 秒之重新发送验证码</span> 
    </div>
    

    JS部分

    var vm = new Vue({
        el: ".vueBox",
        data: {
            sendAuthCode:true,/*布尔值,通过v-show控制显示‘获取按钮’还是‘倒计时’ */
            auth_time: 0, /*倒计时 计数器*/
        },
        methods: {
            getAuthCode:function () {
                this.sendAuthCode = false;
                this.auth_time = 6;
                var auth_timetimer =  setInterval(()=>{
                    this.auth_time--;
                    if(this.auth_time<=0){
                        this.sendAuthCode = true;
                        clearInterval(auth_timetimer);
                    }
                }, 1000);
            }
        }
    });
    
    展开全文
  • Android 点击后60秒后重新获取验证码 ,点击后60秒内不可点击

    这几天跟验证码干上了,我最开始的思路是开启一个线程然后计算倒计时,后来经同事开导,觉得那样的做法low逼到家了.

    上代码

    /**
     * Created by Xia_焱 on 2017/5/7.
     */
    
    public class CountDownTimerUtils extends CountDownTimer {
        private TextView mTextView;
    
        /**
         * @param millisInFuture    The number of millis in the future from the call
         *                          to {@link #start()} until the countdown is done and {@link #onFinish()}
         *                          is called.
         * @param countDownInterval The interval along the way to receive
         *                          {@link #onTick(long)} callbacks.
         */
        public CountDownTimerUtils(TextView textView, long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
            this.mTextView = textView;
        }
    
        @Override
        public void onTick(long millisUntilFinished) {
            mTextView.setClickable(false); //设置不可点击
            mTextView.setText(millisUntilFinished / 1000 + "秒后可重新发送");  //设置倒计时时间
            mTextView.setBackgroundResource(R.drawable.bg_identify_code_press); //设置按钮为灰
            SpannableString spannableString = new SpannableString(mTextView.getText().toString());
            ForegroundColorSpan span = new ForegroundColorSpan(Color.RED);
            spannableString.setSpan(span, 0, 2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
            mTextView.setText(spannableString);
        }
    
        @Override
        public void onFinish() {
            mTextView.setText("重新获取验证码");
            mTextView.setClickable(true);//重新获得点击
            mTextView.setBackgroundResource(R.drawable.bg_identify_code_normal);
        }
    }

    TextView背景色

    bg_identify_code_press

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="#C0C0C0" /> <!--填充色 透明-->
        <corners android:radius="7dp" />  <!-- 圆角 -->
    </shape>

    bg_identify_code_normal

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="#2BAF2B" /> <!--填充色 透明-->
        <corners android:radius="7dp" />  <!-- 圆角 -->
    </shape>

    布局代码

     <TextView
            android:id="@+id/tv_yzm"
            android:layout_width="match_parent"
            android:layout_marginTop="50dp"
            android:layout_height="45dp"
            android:background="@drawable/bg_identify_code_normal"
            android:gravity="center"
            android:text="点击获取验证码"
            android:textColor="#FFF"
            android:textSize="15dp" />

    项目代码

     private void initView() {
            tv_yzm = (TextView) findViewById(R.id.tv_yzm);
            tv_yzm.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    CountDownTimerUtils mCountDownTimerUtils = new CountDownTimerUtils(tv_yzm, 60000, 1000);
                    mCountDownTimerUtils.start();
                }
            });
        }

    效果图
    这里写图片描述

    展开全文
  • 获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是...
  • react native 获取验证码

    千次阅读 2017-08-02 15:34:15
    获取验证码控件:https://github.com/781238222/react-native-verify-code

    获取验证码控件:https://github.com/781238222/react-native-verify-code

    如果帮到你了请点个赞

    展开全文
  • 模拟手机获取验证码

    千次阅读 2019-07-19 09:00:49
    模拟手机获取验证码 开发工具与关键技术: 作者: 撰写时间: 利用display的none和block属性去模拟手机获取验证码。下面的验证码框原本是隐藏的点击获取验证码,当达到某种条件的时候才让它显示出来。 首先,给要...
  • redis 获取验证码

    2020-02-24 11:04:50
    1: 获取验证码 @GetMapping(value = "/getCheckCode") public Result<Map<String,String>> getCheckCode(){ Result<Map<String,String>> result = new Result<Map<String,String...
  • 文章目录前言I、实际应用的例子: 获取验证码(限制60s)1.1 点击获取验证码处理1.2、计时方法处理II 、格式正则校验2.0 短信验证码格式正则校验2.1 金额校验格式正则校验III、短信验证码的Checklist 前言 短信...
  • 手机获取验证码,这是每个APP都会实现的功能,但是获取验证码之后,切换到短信界面,然后再返回到当前界面,感觉比较蛋疼,也比较麻烦,因此想着获取到验证码之后自动填充这个功能相对来说就比较人性化,并且用户...
  • MUI 获取验证码

    千次阅读 2018-08-08 23:22:10
    获取验证码其实也不是MUI框架的东西,只是一些JS,刚好写注册和忘记密码页面的时候需要了,就把他记下来,以后哪里需要写哪里,可以单独写一个js文件,写create_code(num)方法,用于获取num位随机数字,然后生成一个...
  • JS获取验证码,页面显示处理 HTML: <button type="button" class="mui-btn" id="countDown" onclick="startCountDown()">获取验证码</button> JS: //点击完获取验证码之后 var balanceTime = 120; ...
  • Android实现获取验证码效果

    千次阅读 2014-09-16 15:55:20
    Android实现获取验证码效果
  • Android获取验证码倒计时

    千次阅读 2016-06-03 15:47:49
    Android 获取验证码常用的倒计时
  • 验证码60秒发送(获取验证码

    万次阅读 2018-01-27 17:02:02
    获取验证码   var countdown=60;  function send(){  var obj = $("#btn");  settime(obj);    } function settime(obj) { //发送验证码倒计时  if (countdown == 0) {   obj.attr('disabled',
  • HTML实现获取验证码功能

    万次阅读 多人点赞 2019-03-09 22:33:09
    HTML实现获取验证码功能 &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&...
  • uniapp 点击获取验证码

    千次阅读 2020-08-03 16:51:59
    获取验证码</label> <label v-if="yzmbothide">{{times}}后获取</label> js export default { data(){ return { times:60, yzmbotshou:true, yzmbothide:false } }, onLoad(){
  • Android Demo手机获取验证码

    千次阅读 多人点赞 2015-11-01 08:04:40
    注册很多app或者网络账户的时候,经常需要手机获取验证码,来完成注册,那时年少,只是觉得手机获取验证码这件事儿很好玩,并没有关心太多,他是如何实现的,以及她背后的故事到底是什么样子的,在现在小编接手的这...
  • web端页面js简单的逻辑代码 这里我采用的是div方式并不是传统的button按钮 pointerEvents:none ... // 获取验证码的点击 var code = function () { var temp = { countdown: 60, } var settime = ...
  • js&jQuery 获取验证码

    2020-02-04 22:30:10
    js获取验证码 html <form id="form"> <input id="text" type="text" placeholder="请输入验证码" /> <input id="btn" type="button" onclick="getCode(this)" value="获取验证码" /> ...
  • 获取验证码表单主要包括一个输入框和一个“获取验证码”按钮,其中“获取验证码”按钮才是设计的重点。它总共有两种状态,一种是静态文本状态,即按钮中显示“获取验证码”,另一种是动态倒计时状态,即按...
  • selenium 自动截屏获取验证码

    千次阅读 2017-12-06 11:23:00
    selenium 自动截屏获取验证码
  • VUE获取验证码倒计时

    万次阅读 2017-12-05 11:42:55
    登录界面使用手机验证码注册登录很常见,VUE中实现获取验证码倒计时还是用到定时器setInterval 先上效果图 HTML部分 短信验证码: 输入验证码
  • struts的action类获取验证码并判断,jsp生成验证码,怎样才能将jsp生成的验证码放到action类中判断??
  • 利用selenium实现获取验证码

    万次阅读 2018-01-26 22:28:58
    获取验证码有两种思路: 1.获取页面源代码,提取验证码图片 2.利用selenium截取页面,定位验证码元素的位置,利用Image进行处理,获取其中验证码部分 下面进行解析: 1.获取页面源代码,提取验证码图片 如何...
  • js 模拟获取验证码

    2019-02-26 15:52:43
    最终效果 &lt;!doctype html&gt; &lt;html lang="en"&gt;...倒计时自动获取验证码&lt;/title&gt; &lt;/head&gt; &lt;body&gt; 验证码:&am
  • 一般获取验证码后会进行倒计时防止用户过快重复获取验证码。 var timer,enable = true; $('#sendcode').click(function(e){ if(!enable || timer){ return ; } enable = !enable; setTimeout(function(){ //...
  • Android 获取验证码倒计时实现

    千次阅读 2017-10-24 09:55:41
    1. 验证码输入框和获取验证码按钮布局xml代码: android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/white" androi
  • 本次作业,制作验证码,仅完成获取验证码操作,如下: 分析: 左图为矩形,主要展示验证码(本例设置4位验证码),其中验证码为字母和数字组合; 右图为文本输入框,主要设置点击事件,即点击文本文字,矩形...
  • C#获取验证码函数

    2014-06-08 21:54:06
    //获取验证码 public string GetVerifyCode(string sourceUrl)//获取验证码 { CookieContainer cc = new CookieContainer(); HttpWebRequest req = (HttpWebRequest)HttpWebRequest.C
  • uni-app 获取验证码

    千次阅读 2020-04-25 15:56:17
    作为一个合格的前端,样式我就不写了 页面结构 ...获取验证码 <button @click=“codeClick” :disabled=“disabled” v-else>{{this.second}}后重试 js data(){ return { showText:true, second...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,245
精华内容 40,098
关键字:

如何获取验证码