精华内容
下载资源
问答
  • 关于手机短信接收验证码的实现原理:思路:A:获得验证码:1.找到相关的表。2.用什么发送,post,get ,ajax,当然ajax首选3.post之前要js先判断是手机号码11位,并且全部都是数字,或者用正则也行。4.用ajax发送数据data,...

    关于手机短信接收验证码的实现原理:
    思路:
    A:获得验证码:
    1.找到相关的表。
    2.用什么发送,post,get ,ajax,当然ajax首选
    3.post之前要js先判断是手机号码11位,并且全部都是数字,或者用正则也行。
    4.用ajax发送数据data,要对数据进行检验,过滤有效数据valid
    5.insert前要先判断这手机是否验证过了,已经验证过就return false;没验证过则把随机生成的6位验证码insert 数据库表中。
    6.通过提供给你api写好调用,把验证码跟msg通过ajax返回值发送给向客户,并用js做一个倒计时计数器.

    B:接收验证码,提交表单:
    1.接收post过来数据,把验证码跟跟刚才插入数据库中的6位key进行比较。如果相等,则说明是最后一次发送的验证码才有效。
    2.对数据库insert 操作.最少要做个认证tag标志.

     

    先贴出html部分:

     <!--手机认证 Begin-->
          <div style="display: block;" class="auth_ck_detail" id="auth_ck_phone">
            <div class="item_title item_margin"><p>手机认证</p><span class="shadow"></span></div>
            <form name="myform" id="myform" action="http://www.hnb.cc/jiaoyou/usercp.php?c=certify&amp;a=rzmobile" method="post">
                <table class="user-table table-margin lh35" border="0" cellpadding="0" cellspacing="0" width="98%">
                    <tbody>
                        <tr>
                            <td class="lblock" width="15%">您的手机号码:</td>
                            <td class="rblock" width="85%">
    
                                <input name="mobile" id="mobile" value="" class="input-150" type="text" style="width:130px;"> &nbsp;&nbsp;
    
                                <input name="btn_downtime" id="btn_downtime" value="免费获取验证码" style="height: 25px; background:#F5487A; color:#fff; padding-left: 2px; padding-right: 5px; width:175px;" class="button-green-b" type="button"> <span id="tips_mobile"></span>
    
                                <br>
                                <div class="mb-verifycode" style=" width:320px; background:#FFDD55;margin-top:10px; color:#666666; padding-left:10px; padding-bottom:5px;" >
                                    <p style="font-size:13px;">输入以下图片校验码才可以获取手机验证码</p>
                                    <dl style=" float:left;">
                                        <dt style=" float:left;">校验码:</dt>
                                        <dd style=" float:left;   "><input  style="width:100px; " value="" name="mbverifycode" id="mbverifycode" maxlength="6" type="text"> <img id="verifycode-img" src="#" style="vertical-align: middle;"> <span id="btn_mbverifycode" >换一个</span></dd>
                                        <div style="clear: both;"></div>
                                    </dl>
                                    <div style="clear: both;"></div>
                                </div>
    
                            </td>
                        </tr>
                        <tr>
    
                            <td class="lblock">收到的验证码:</td>
                            <td class="rblock"><input value="" name="checkcode" id="checkcode" class="input-s" type="text"> <font color="#df4070">(输入您手机收到的验证码)</font></td>
                        </tr>
                        <tr>
                            <td class="lblock" height="40"></td>
                            <td class="rblock"><input value="提交验证" onclick="return checkrzmobile();" class="button-gray" type="button"></td>
                        </tr>
                    </tbody>
                </table>
            </form>
    
            <table class="user-table table-margin lh25" border="0" cellpadding="0" cellspacing="0" width="98%">
              <tbody><tr>
                <td>
                    为什么要进行手机认证?<br>
                    1、认证通过后可在您的资料页点亮手机认证图标,提高你的诚信等级;<br>
                    2、接收来自网站和会员发送的手机短信。<br>
                </td>
              </tr>
            </tbody></table>
    
            <script type="text/javascript">
            //处理手机验证码
            $("#verifycode-img").attr("src", "/jiaoyou/source/include/imagecode.php?act=verifycode&t_code="+(new Date()).getTime());
            $(function()
            {
                $("#btn_mbverifycode").click(function()
                {
                    
                    $("#verifycode-img").attr("src", "/jiaoyou/source/include/imagecode.php?act=verifycode&t_code="+(new Date()).getTime());
                        return false;
    
                });
                
                    
    
                $("#btn_downtime").click(function()
                { //获取手机验证码
                    var tips = $("#tips_mobile");
                    var args_mobile = $("#mobile").val();
                    var args_mbverifycode = $("#mbverifycode").val();
                    if (!isMobile(args_mobile)) 
                    {
                        tips.html('请填写正确的手机号码');
                        return false;
                    }
                    
                    $.ajax({
                        type: 'POST',
                        //jiaoyou/index.php?c=ajax&a=checkregmobile
                        // url:"/jiaoyou/index.php?c=ajax",
                        url:"/jiaoyou/usercp.php?c=certify",
                        cache: false,
                        data: {a:"checkregmobile", mobile: args_mobile, verifycode:args_mbverifycode, r: get_rndnum(8)},
                        dataType: 'json',
    
                        success: function(data) 
                        {
                            var json = eval(data);
    
                            var response = json.response;
                            var result = json.msg;
                            // alert(json.response);
    
                            if (response == "1") 
                            {
    
                                initGetDownTime('mobile', 'btn_downtime');/*时间倒计时*/
                                tips.html("<font color='green'>验证码发送成功,请注意查收。</font>");
                            }
                            else 
                            {
                                
                                if (result.length > 0) 
                                {
                                    tips.html("<font color='red'>"+result+"</font>");
                                }
                                else 
                                {
                                    tips.html("<font color='red'>发送失败,请检查手机号。</font>");
                                }
                            }
                        },
                        
                        error: function() 
                        {
                            tips.html("<font color='red'>请求错误</font>");
                        }
                    });
                
                });
            });
    
    
            /*----------------- 倒计时 start ----------------*/
            var init_down_time = 60;
            var init_intervalDownTimeObj;
    
            /**
             * 倒计时
             * @param:: string mbinput 
            */
            function initGetDownTime(mbinput, btnobj) {
                var mb = $("#"+mbinput).val();
                if (isMobile(mb)) {
                    init_intervalDownTimeObj = setInterval("countDownTime('"+btnobj+"')", 1000);
                }
            }
            function countDownTime(btn) {
                $('#'+btn).attr("disabled", "true");
                $('#'+btn).val(""+init_down_time+"秒后没收到短信重新发送");
                init_down_time--;
                if (init_down_time == 0){
                    clearInterval(init_intervalDownTimeObj); //停止时间
                    $('#'+btn).removeAttr("disabled");
                    $('#'+btn).val("重新发送");
                    init_down_time = 60;
                }
            }
            /*----------------- 倒计时 end ----------------*/
            </script>
    
          </div>
          <!--//手机认证 End-->

    A:

    下面php接收ajax接收方法:

     

    /*hnb新增加的手机接收验证方法*/
        public function control_checkregmobile( )
        {
            $response = 0;
            $mobile = XRequest::getArgs('mobile');/*得到手机号  这个跟$_post接收数据是一样的*/
            $checkcode = XRequest::getArgs('verifycode');/*得到验证码这个跟$_post接收数据是一样的*/
            
            if (!empty($checkcode)) 
            {
                parent::loadUtil('session');
                $nowcode = XSession::get('verifycode');
                if ($checkcode!== $nowcode) 
                {
                    echo json_encode(array('response' => $response,'msg'=>'您的校验码有误!'));exit;
                }
            }else
            {
                echo json_encode(array('response' => $response,'msg'=>'您的校验码有误!'));exit;
            }
            
          
    
            $model = parent::model('user','am');
            $target = "http://api.bjszrk.com/sdk/BatchSend.aspx"; /*接口url*/
            
            if (true === $model->doExistsMobile($mobile)) /*检测手机是否已经验证*/
            {
                $response = 2;
                $msg='对不起,您的手机号码已经通过验证,请不要重复操作!';
            }else 
            {
                $model_certify = parent::model('certify', 'um');
                list($mbcode, $error) = $model_certify->GetMobileCode($mobile); /*生成一个随机数及插入数据*/
                $content="您的验证码是:".$mbcode."。欢迎注册我主良缘交友网,请勿将验证码告知他人!";
                $msg=$model->postMbCode($mobile, $content);   /*调用post给api接口方法*/ 
                $response = 1;
                $msg='验证码已发送成功,请注意查收!';
            }
            echo json_encode(array('response'=>$response,'msg'=>$msg));
        }

     

     

    检测手机是否已经验证过的doExistsMobile方法如下:

        public function doExistsMobile($mobile)
        {
            $res = false;
            $sql = 'SELECT `userid` FROM ' . DB_PREFIX . 'user_attr' . " WHERE `mobile`='{$mobile}'";
            $rows = parent::$obj->fetch_first($sql);
            if (!empty($rows)) {
                $res = true;
            } 
            unset($sql, $rows);
            return $res;
        }
    /*GetMobileCode方法具体实现如下:*/


    /*r把随机得到的6位验证码insert到数据库表中
    */ public function GetMobileCode($mobile) { $result = 0; $message = null; $checkcode = XHandle::getRndChar(6, 1); $userid=parent::$wrap_user['userid']; $sql="update user_status set mobilesalt='$checkcode' where userid='$userid'"; parent::$obj->query($sql); $result = 1; $sql = (('SELECT * FROM ' . DB_PREFIX) . 'mobile_checkcode') . " WHERE `mobile`='{$mobile}'"; $rows = parent::$obj->fetch_first($sql); if (!empty($rows)) { $array = array('checkcode' => $checkcode, 'updatetime' => time()); parent::$obj->update(DB_PREFIX . 'mobile_checkcode', $array, ('`id`=\'' . $rows['id']) . '\''); } else { $id = parent::$obj->fetch_newid(('SELECT MAX(id) FROM ' . DB_PREFIX) . 'mobile_checkcode', 1); $array = array('id' => $id, 'mobile' => $mobile, 'checkcode' => $checkcode, 'createtime' => time()); parent::$obj->insert(DB_PREFIX . 'mobile_checkcode', $array); } unset($sql); unset($rows); return array($checkcode, $message); }

     

    B:

    下面是得到了验证码Form表单点提交php的方法.

     

            submit提交
        */
        public function control_rzmobile( )
        {
            $service = parent::service( "certify", "us" );/*接收数据,验证手机格式及号码*/
            list( $mobile, $salt ) = $service->validRzMobile( );/*salt 为手机验证码*/
            unset( $service );
            
            $model = parent::model( "certify", "um" );
            $result = $model->doValidMobile( $mobile, $salt );  /*调用model三张表进行数据操作*/
            unset( $model );
            if ( TRUE === $result )
            {
                
                if ( $this->halttype == "jdbox" )
                {
                    XHandle::jqdialog( "手机号码验证成功", 1 );
                }
                else
                {
                    XHandle::halt( "手机号码验证成功", $this->ucfile."?c=certify", 0 );
                }
            }
            else
            {
                XHandle::halt( "手机号码验证失败", "", 1 );
            }
        }

     

     

    上面dovalidmobile函数方法具体实现:

    /*手机认证提交 分别在三个表里操作对象*/
        public function doValidMobile( $mobile, $validkey )
        {
            $result = FALSE;
            $sql = "SELECT userid FROM ".DB_PREFIX.( "user_status WHERE mobilesalt='".$validkey."' AND userid='" ).parent::$wrap_user['userid']."'";
            //SELECT userid FROM user_status WHERE mobilesalt='5522' AND userid='209367'
            $rows = parent::$obj->fetch_first( $sql );
            
            if ( !empty( $rows ) )
            {
                $status_array = array(
                    "mobilerz" => 1,
                    "mobilesalt" => XHandle::getrndchar( 6, 1 )
                    );
                // print_r($status_array);exit;
                parent::$obj->update( DB_PREFIX."user_status", $status_array, "userid='".parent::$wrap_user['userid']."'" );
                $attr_array = array(
                    "mobile" => $mobile
                    );
                parent::$obj->update( DB_PREFIX."user_attr", $attr_array, "userid='".parent::$wrap_user['userid']."'" );
                parent::loadlib( "user" );
                $star = XUser::updatestar( parent::$wrap_user['userid'] );  /*加星为user_status表里设置star星级*/
                $result = TRUE;
                if ( TRUE === $result )
                {
    
                    $m_indexs = parent::model( "indexs", "am" );  /*作用在user_params表里加上论证标志,可能是用户左边栏加上星标志*/
                    $m_indexs->updateIndexs( parent::$wrap_user['userid'], array(
                        "rzmobile" => 1,
                        "star" => $star
                        ) );
                    unset( $m_indexs );
                }
            }
            return $result;
        }

     

    转载于:https://www.cnblogs.com/hnbiao/p/4569278.html

    展开全文
  • 梦网科技--手机短信验证码实现

    千次阅读 2017-06-11 21:51:02
    使用http,使用手机号给短信网关发送一个请求,把验证码发送给用户。  3.用户获得短信验证码后,输入到系统中,发送请求,系统接收用户输入验证码,对比缓存中的验证码,是否一致。一致则验证通过。 工具类 ...

    手机短信验证码挺简单的,分为下面步骤

      1.生成一个随机的验证码,保存到缓存中。

      2.使用http,使用手机号给短信网关发送一个请求,把验证码发送给用户。

      3.用户获得短信验证码后,输入到系统中,发送请求,系统接收用户输入验证码,对比缓存中的验证码,是否一致。一致则验证通过。


    工具类

    import java.util.Random;
    import org.apache.commons.lang3.RandomStringUtils;
    import org.apache.commons.lang3.StringUtils;
    import org.apache.log4j.Logger;
    import cn.cuco.httpservice.HttpClientUtils;
    
    /**
     * @ClassName:
     * @Description:
     */
    public class SMSUtils {
    
    	protected Logger logger = Logger.getLogger(this.getClass());
    
    	public static boolean sendMessage(String mobile, String identifyCode) {
    		boolean result = false;
    		String userId = "用户名";
    		String password = "密码";
    		String pszMobis = mobile;
    		String pszMsg = "正式完成短信验证" + "【" + identifyCode + "】";// +
    		String iMobiCount = "1";
    		String pszSubPort = "*";
    		String MsgId = RandomStringUtils.randomNumeric(19);
    		try {
    			String url = "请求网关"//
    					+ "userId=" + userId//
    					+ "&password=" + password//
    					+ "&pszMobis=" + pszMobis//
    					+ "&pszMsg=" + pszMsg//
    					+ "&iMobiCount=" + iMobiCount//
    					+ "&pszSubPort=" + pszSubPort//
    					+ "&MsgId=" + MsgId;
    
    			String responseBody = HttpClientUtils.sendGet(url, null, "UTF-8");
    
    			if (StringUtils.isNotBlank(responseBody)) {
    				String sub = responseBody.substring(74, responseBody.lastIndexOf("</string>"));
    				System.out.println("截取返回值=================" + sub);
    				if (sub.length() > 15) {// 返回值长度大于15则表示成功
    					result = true;
    					System.out.println("验证码发至{}送成功" + mobile);
    				} else {
    					System.out.println("验证码发至{}失败{}" + mobile + responseBody);
    				}
    			}
    		} catch (Exception e) {
    			System.out.println("验证码发至{}异常{}" + mobile + e.getMessage());
    
    		}
    		return result;
    	}
    
    	/**
    	 * 产生4位随机数(0000-9999)
    	 * 
    	 * @return 4位随机数
    	 */
    	public static String getFourRandom() {
    		Random random = new Random();
    		String fourRandom = random.nextInt(10000) + "";
    		int randLength = fourRandom.length();
    		if (randLength < 4) {
    			for (int i = 1; i <= 4 - randLength; i++)
    				fourRandom = "0" + fourRandom;
    		}
    		return fourRandom;
    	}
    
    	public static void main(String[] args) {
    		String mobile = "18333601438";
    		String identifyCode = getFourRandom();
    		SMSUtils.sendMessage(mobile, identifyCode);
    	}
    }
    

    sendGet,使用get方式请求

    	/**
    	 * HTTP Get 获取内容
    	 * @param url  请求的url地址 ?之前的地址
    	 * @param params  请求的参数
    	 * @param charset  编码格式
    	 * @return 页面内容
    	 * @throws IOException 
    	 * @throws UnsupportedEncodingException 
    	 * @throws ParseException 
    	 */
    	public static String sendGet(String url, Map<String, String> params, String charset) throws ParseException, UnsupportedEncodingException, IOException {
    		if (StringUtils.isBlank(url)) {
    			return null;
    		}
    		log.info("HTTP get 发送的url 为>>>>>>>>>" + url);
    		if (params != null && !params.isEmpty()) {
    			List<NameValuePair> pairs = new ArrayList<NameValuePair>(params.size());
    			for (Map.Entry<String, String> entry : params.entrySet()) {
    				String value = entry.getValue();
    				if (value != null) {
    					pairs.add(new BasicNameValuePair(entry.getKey(), value));
    				}
    			}
    			url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(pairs, charset));
    		}
    		HttpGet httpGet = new HttpGet(url);
    		CloseableHttpClient httpClient;
    		RequestConfig config = RequestConfig.custom().setConnectTimeout(60000).setSocketTimeout(15000).build();
    		httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
    		CloseableHttpResponse response = httpClient.execute(httpGet);
    		int statusCode = response.getStatusLine().getStatusCode();
    		if (statusCode != 200) {
    			httpGet.abort();
    			throw new RuntimeException("HttpClient,error status code :" + statusCode);
    		}
    		HttpEntity entity = response.getEntity();
    		String result = null;
    		if (entity != null) {
    			result = EntityUtils.toString(entity, "utf-8");
    		}
    		EntityUtils.consume(entity);
    		response.close();
    		return result;
    		
    	}
    	

    执行测试

    	public static void main(String[] args) {
    		String mobile = "手机号";
    		String identifyCode = getFourRandom();
    		SMSUtils.sendMessage(mobile, identifyCode);
    	}


    使用:在使用的时候只需要替换掉代码中的,用户名,密码和请求的网关,就可以直接使用。




    展开全文
  • 登录手机短信验证码(tp5写的)

    千次阅读 2018-10-17 19:34:19
     3:后台接收手机号,写一个随机函数作为验证码  4:短信发送成功后可以用cookie或者memcache(memcache更好)存放接收验证码  5:判断验证码是否输入正确  注释:我这个做的简单就是实现一下功能,...

    思路:1:给以个按钮,获取验证,给一个id、点击事件

               2:获取手机号,用ajax传到后台

               3:后台接收手机号,写一个随机函数作为验证码

               4:短信发送成功后可以用cookie或者memcache(memcache更好)存放接收的验证码

               5:判断验证码是否输入正确 

    注释:我这个做的简单就是实现一下功能,如果是业务逻辑的话,接收完手机号还要和数据库匹配判断手机号是否存在,不存在跳转到注册页面,号码存在判断验证码是否输入正确,正确跳到首页。            验证码不用入库,用memcache缓存下来(为了好写我用的cookie),然后生成的验证码与输入的验证码对比,判断是否一样

    调用短信接口的网址:http://www.k780.com/api/sms.send        

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form action="{:url('index/login')}" method="post">
        <table>
            <tr>
                <td>手机号</td>
                <td><input type="text" name="phone"></td>
            </tr>
            <tr>
                <td>验证码</td>
                <td>
                    <input type="text" name="code" style="width: 70px">
                    <input type="button" id="code" value="获取验证码">
                </td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" value="登录"></td>
            </tr>
        </table>
    </form>
    </body>
    </html>
    <script src="__STATIC__/jquery.js"></script>
    <script>
        $("#code").click(function(){
            var phone=$("[name=phone]").val();
            $.ajax({
                type: "POST",
                url: "{:url('index/add')}",
                data: {phone:phone},
                success: function(msg){
                    if(msg == 1){
                        alert( '短信发送成功' );
                    }
                }
            });
        })
    
    </script>
    
    public function add(){
            if(Request::instance()->isGet()){
                return view('add');
            }else{
                //获取手机号
                $phone = $_POST['phone'];
                //生成的验证码
                $a = rand(1000,9999);
                $b='code='.$a;
                $param = urlencode($b);
                $url="http://api.k780.com:88/?app=sms.send&tempid=你创建的模板ID&param=替换参数&phone=手机号码&appkey=您申请的APPKEY&sign=您申请的SIGN&format=json";
    
                //获取验证码 是否成功   (获取页面内容)
                $a1 = file_get_contents($url);
                //成功时返回的的 对象
                $str =$a1;
                //对象解析成PHP数组
                $aa = json_decode($str,true);
                if($aa['success'] == 1){
                    //把接到的验证码放到 cookie里
                    setcookie('code',$a);
                    return 1;
                }else{
                    return 2;
                }
            }
    
        }
    
        public function login()
        {
             //接受的验证码
            $code = $_POST['code'];
            //cookie存的验证码
            $a=$_COOKIE['code'];
            //判断是否相等
            if($code==$a){
                $this->success('登录成功');
            }
        }

     

     

    展开全文
  • 短信验证码

    2019-01-17 19:32:59
    4.后台通过入参接收前台发送的手机号 5.随机生成一个验证码 6.将随机生成的验证码放到session中 7.将手机号验证码传给工具包 调用工具包接口来发送短信 前台页面 &amp;amp;amp;amp;lt;%-- Created by ...

    方法一:

    思路

    1.引入相关坐标
    2.引入所需js文件
    3.写form表单
    4.后台通过入参接收前台发送的手机号
    5.随机生成一个验证码
    6.将随机生成的验证码放到session中
    7.将手机号和验证码传给工具包 调用工具包接口来发送短信

    前台页面

    <%--
      Created by IntelliJ IDEA.
      User: LI WAN
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
             pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
    %>
    <html>
    <head>
    
        <base href="<%=basePath%>">
        <script src="${path}/js/jquery-1.11.3.js"></script>
        <script src="${path}/js/echarts.js"></script>
        
        <title>标题</title>
    </head>
    <body>
    
        <form action="" METHOD="post">
            手机号:<input id="phone" name="phone">
            验证码:<input id="yzm" name="yzm">
                    <input type="button" value="获取验证码" onclick="sendYzm()">
                    <input type="button" value="注册" onclick="login()">
                    
        </form>
    </body>
    <script>
    
        function sendYzm() {
            $.ajax({
                url:"loginYzm.do",
                data:{"phone":$("#phone").val()},
                dataType:"json",
                type:"post",
                success:function (data) {
                    if(data.error==0){
                        alert("发送成功!");
                    }else {
                        alert("发送失败,请稍候重试!");
                    }
                }
            })
        }
    
    </script>
    </html>
    
    

    后台controller

    package com.name.user.controller;
    
    import com.name.user.service.UserService;
    import com.name.utils.Yzm;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import javax.servlet.http.HttpSession;
    import java.text.DecimalFormat;
    import java.util.Random;
    
    /**
     * Created by LI WAN
     */
    @Controller
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        @RequestMapping("toLogin")
        public String toJsp(){
            return "login";
        }
    
        //发送短信
        @ResponseBody
        @RequestMapping("loginYzm")
        public String loginYzm(String phone, HttpSession session){
            //实例化一个随机函数的类
            Random random = new Random();
            //通过nextInt 给random赋值
            int anInt= random.nextInt(999999);
    
            //随机补0
            DecimalFormat df = new DecimalFormat("000000");
            //anInt 随机数
            String yzm = df.format(anInt);
            System.out.println(yzm);
            //将随机生成的验证码存放到sesion中
            session.setAttribute(phone,yzm);
            //调用工具包 将手机号和验证码传给工具包 调用接口用来发送短信
          /*  return Yzm.testSend(phone,yzm);*/
            return "";
        }
        
    }
    
    

    工具类

    package com.name.utils;
    
    import com.sun.jersey.api.client.Client;
    import com.sun.jersey.api.client.ClientResponse;
    import com.sun.jersey.api.client.WebResource;
    import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;
    import com.sun.jersey.core.util.MultivaluedMapImpl;
    
    import javax.ws.rs.core.MediaType;
    
    /**
     * Created by LI WAN
     */
    public class Yzm {
        public static String testSend(String phone,String yzm){
            // just replace key here
            Client client = Client.create();
            client.addFilter(new HTTPBasicAuthFilter(
                    "api","key-"));
            WebResource webResource = client.resource(
                    "http://sms-api.luosimao.com/v1/send.json");
            MultivaluedMapImpl formData = new MultivaluedMapImpl();
            formData.add("mobile",phone);
            formData.add("message", "验证码:"+yzm+"【铁壳测试】");
            ClientResponse response =  webResource.type( MediaType.APPLICATION_FORM_URLENCODED ).
                    post(ClientResponse.class, formData);
            String textEntity = response.getEntity(String.class);
            int status = response.getStatus();
            //System.out.print(textEntity);
            //System.out.print(status);
            return textEntity;
        }
    //语音验证
      public static String testSend2(String phone,String yzm){
            // just replace key here
            Client client = Client.create();
            client.addFilter(new HTTPBasicAuthFilter(
                    "api","key-"));
            WebResource webResource = client.resource(
                    "http://voice-api.luosimao.com/v1/verify.json");
            MultivaluedMapImpl formData = new MultivaluedMapImpl();
            formData.add("mobile", phone);
            formData.add("code", yzm);
            ClientResponse response =  webResource.type( MediaType.APPLICATION_FORM_URLENCODED ).
                    post(ClientResponse.class, formData);
            String textEntity = response.getEntity(String.class);
            int status = response.getStatus();
            //System.out.print(textEntity);
            //System.out.print(status);
            return textEntity;
        }
    }
    
    

    方法二:

    前台页面

    不用放到map里

    $('#myTree2').tree({
            url:"tree2.do",
            // 在用户点击一个节点的时候触发。
            onClick: function(node){
                //console.log(node.url); //获取标题
                //node.text 根据key获取value
                addTabs(node.text,node.url);
            }
        });
    

    后台controller层

    后台只需要通过id作为pid查询相对于的list集合数据。

    /**
         *
         * defaultValue: 默认的值为0
         * required:
         *          true:默认的,必须传递的参数
         *          false:不是必须传递的
         * @param id
         * @return
         */
        @ResponseBody
        @RequestMapping("tree2")
        public List<TreeVO> tree2(@RequestParam(defaultValue = "0",required = false) int id){
            List<TreeVO> list =userService.treeList2(id);
            return list;
        }
        
    

    serviceimpl实现类

    (有入参)
    调用方法一的treeList方法

     @Override//方法2
        public List<TreeVo> list2(int id) {
            return treeMapper.treeList(id);
        }
    
    展开全文
  • 短信验证码登录

    2021-02-24 10:36:48
    使用接口向短信平台发送手机号验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号随机验证码(或包含失效时间),平台接口地址,平台口令; 保存接口返回的信息(一般为json...
  • 2、使用接口向短信平台发送手机号验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号随机验证码(或包含失效时间),平台接口地址,平台口令; 3、保存接口返回的信息(一般为...
  • 短信验证码大概流程

    2018-11-21 11:42:00
    1、 用户:填写手机号码 ... 3、 js :调用后端接口,...7、 用户:接收到短信,填写验证码 8、 用户:点击提交按钮 9、 js :调用后端接口,提交手机号码、验证码 10、后端:根据手机号码获取保存的验证码,与接...
  • 2、使用接口向短信平台发送手机号验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号随机验证码(或包含失效时间),平台接口地址,平台口令; 3、保存接口返回的信息(一般为...
  • 使用接口向短信平台发送手机号验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号随机验证码(或包含失效时间),平台接口地址,平台口令; 保存接口返回的信息(一般为json...
  • 2、使用接口向短信平台发送手机号验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号随机验证码(或包含失效时间),平台接口地址,平台口令; 3、保存接口返回的信息(一般为...
  • 验证码短信在用户注册、用户登录、身份验证等诸多场景运用广泛,用户在输入手机号码后就会接收到平台/商家发送的验证码短信,那么验证码短信是怎么发送的?怎么用短信平台发送验证码短信? 短信验证码需要通过短信...
  • 一般现在平台的用户在注册时都是使用手机号注册,所以就需要用到手机介绍短信验证码实现注册,在这里我调用的是榛子云短信平台第三方提供的短信服务发送验证码。...4、接收用户填写的验证码手机号及...
  • 发送短信验证码逻辑

    2019-10-03 18:59:26
    逻辑:当前端点击获取短信验证码的时候,前端...后端接收到请求后调用Redis数据库比对用户输入的图形验证码,通过后产生随机验证码发送短信给前端传过来的手机号,然后返回一个信息给前端。 转载于:https://www.cn...
  • 2、使用接口向短信平台发送手机号验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号随机验证码(或包含失效时间),平台接口地址,平台口令; 3、保存接口返回的信息(一般为...
  • 短信验证码实现流程1、...4、接收用户填写的验证码手机号及其他注册数据;5、对比提交的验证码与Session中的验证码是否一致,同时判断提交动作是否在有效期内;6、验证码正确且在有效期内,请求通过,处理相应的业...
  • 这几个月都在用java做一个企业的积分商城系统,...4、接收用户填写的验证码手机号及其他注册数据; 5、对比提交的验证码与Session中的验证码是否一致,同时判断提交动作是否在有效期内; 6、验证码正确且在有效期内
  • 服务器接收到请求后,获取到客户的手机号,并随机生成验证码,将验证码存储起来,有了手机号验证码,向运营商发起发送短信的请求 运营商向客户手机发送短信 客户将收到接收到的验证码填写之后,点击提交,向服务器...
  • 大致过程是: → 用户在页面输入手机号码→ 用户点击"获取验证码"按钮,把手机号码发送给服务端,服务端产生几位数的随机码,并保存在某个地方(Session, Applicaiton, 数据库, 等等),调用第三方的API→ 第三方发送...
  • 后端接收到手机号码后通过短信服务商的接口发送短信到手机号 由于安全性问题,一般服务商的接口都是由后端发起请求,那验证码是怎么来的呢?当然是我们自己后端生成的(一般是生产一个4位或6位随机数字号码),短
  • * 随机生成6位随机验证码 * 方法说明 * @Discription:扩展说明 * @return * @return String * @Author: feizi * @Date: 2015年4月17日 下午7:19:02 * @ModifyUser:feizi * @ModifyDate: 2015年4...
  • 小程序之~~短信验证

    2019-10-06 17:53:03
    短信验证码实现流程 ...4、接收用户填写的验证码手机号及其他注册数据;5、对比提交的验证码与Session中的验证码是否一致,同时判断提交动作是否在有效期内;6、验证码正确且在有效期内,请...
  • 1、用户在客户端发送手机号给服务器,服务器接收手机号,生成对应时间戳,随机四位数验证码 2、服务器将电话号码和验证码告诉阿里大于服务器,阿里大于服务器将验证码发送到对应手机 3、服务器将接受到的手机号,...
  • 短信验证实现方式

    2020-12-15 23:59:34
    2、使用接口向短信平台发送手机号验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号随机验证码(或包含失效时间),平台接口地址,平台口令; 3、保存接口返回的信息(一般...

空空如也

空空如也

1 2 3 4
收藏数 66
精华内容 26
关键字:

随机手机号接收验证码