注册短信验证的代码

一.注册页面代码
<div style="float: left;background-color: #342e40;width: 675px;height: 498px">
			<div style="width: 450px;height: 300px;background-color: #ffffff;margin-left: 100px;margin-top: 100px;">
					<div style="text-align: center; font-size: 20px;">
							注册
					</div>
					<form class="form-inline" id="form">
						<div class="form-group" style="margin-top: 20px; margin-left: 40px;">							
							<div class="input-group">
								<div class="input-group-addon">手机号码*</div>
								<input type="text" class="form-control" id="accountTel" name="accountTel"
									placeholder="请输入手机号码">
							</div>
							<span id="span1" style="color: red; font-size: 11px;"></span>
						</div>
						<div class="form-group" style="margin-top: 13px; margin-left: 40px;">							
							<div class="input-group">
								<div class="input-group-addon">验证码*</div>
								<input type="text" class="form-control" id="code" name="code"
									placeholder="请输入验证码">
							</div>    
				        <input type="button" class="btn btn-danger" id="getCode" value="获取验证码" style="height: 30px; width: 120px;">
						<br><span id="span2" style="color: red; font-size: 11px;"></span>
						</div>
							
						<div class="form-group" style="margin-top: 13px; margin-left: 40px;">							
							<div class="input-group">
								<div class="input-group-addon">登录密码*</div>
								<input type="password" class="form-control" id="accountPwd" name="accountPwd"
									placeholder="请输入登录密码">
							</div>
							<span id="span3" style="color: red; font-size: 11px;"></span>
						</div>		
						<div class="form-group" style="margin-top: 13px; margin-left: 40px;">							
							<div class="input-group">
								<div class="input-group-addon">确认密码*</div>
								<input type="password" class="form-control" id="accountPwd2" name="accountPwd2"
									placeholder="请输入确认密码">
							</div>
							<span id="span4" style="color: red; font-size: 11px;"></span>
						</div>
						<div style="margin-left: 140px; margin-top: 20px;">
					       <input type="button" class="btn btn-danger col-md-6" value="立即注册" οnclick="ljzc()">
						</div>								
					</form>
				</div>
		</div>
	</div>


<script type="text/javascript">
	$(function(){  
    	$("#getCode").removeAttr("disabled");
    	//发送验证码  
    	$("#getCode").click(function(){
    		var accountTel = $("#accountTel").val();//取得输入的手机号的值
       		if(accountTel.length==11){//判断手机号是否是11位
       			$("#span1").text("");
       			$.ajax({  //触发Ajax
        	        url:"/account/messageServlet",
        	        data:{  
        	            "accountTel":$("#accountTel").val(),
        	        }, 
        	        type:"post",
        	        async:false,  
        	        dataType:"json",
        	        success : function(data) {  
        	            if(data == true){
        	                alert("验证码发送成功,收到后请输入验证码"); 
        	                time(this);  
        	            } else {  
        	                alert("验证码发送失败");  
        	            }  
        	        } 
        	    });
       		}else{
       			$("#span1").text("");
       			$("#span1").append("手机号不能为空且必须为11位");
       			
       		}
    	});
    	
    });
	
	
	//验证码倒计时  
    var wait = 60;  
    function time(obj) {  
        if(wait==0) {  
            $("#getCode").removeAttr("disabled");  
            $("#getCode").val(" 获取验证码");  
            wait = 60;  
        }else {  
            $("#getCode").attr("disabled","true");  
            $("#getCode").val(wait+" 秒后重试");  
            wait--;  
            setTimeout(function()  {     //倒计时方法  
                time(obj);  
            },1000);    // 间隔为1s  
        }  
    }
    
    
    
    var sb = '${sb}';//获取后台session中的验证码
    //注册
	function ljzc() {
		
		alert(sb);
		var code = $("#code").val();
		var accountTel = $("#accountTel").val();
		var accountPwd = $("#accountPwd").val();
		var accountPwd2 = $("#accountPwd2").val();
		alert(code);
		if(accountTel.length!=11){
			$("#span1").text("");
			$("#span1").append("手机号不能为空且必须为11位");
		}
		else if(sb!=code){
			$("#span2").text("");
			$("#span2").append("您输入的验证码不正确,请重新获取");
		}
		else if(code == ""){
			$("#span2").text("");
			$("#span2").append("验证码不可以为空!");
		}
		else if(accountPwd==""){
			$("#span3").text("");
			$("#span3").append("密码不可以为空!");
		}
		else if(accountPwd2==""){
			$("#span4").text("");
			$("#span4").append("密码不可以为空!");
		}
		else if(accountPwd!=accountPwd2){
			$("#span4").text("");
			$("#span4").append("两次输入密码不一致!");
		}
		else{
			$("#span1").text("");
			$("#span2").text("");
			$("#span3").text("");
			$("#span4").text("");
			$.ajax({
				url:"/account/checktel",
				data:{accountTel:accountTel},
				dataType:"json",
				type:"post",
				success:function(obj){
					if(obj.code=='success'){
						$.ajax({
					        url:"/account/addregistacount",
					        data:$("#form").serialize(),
					        type:"post",  
					        dataType:"json",  
					        success : function(obj) {
					            if(obj.code=='success'){
					                alert("恭喜您,注册成功");
					                location.href="/page/login"
					            } else {  
					                alert("注册失败");
					            }  
					        }
					    });
					}else{
						alert("该手机号已被注册!");
					}
				}
			});
		}
	}

</script>
二.注册Controller信息
package com.miqian.controller;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;

import javax.servlet.http.HttpSession;

import com.alibaba.fastjson.JSONObject;
import com.miqian.model.Account;
import com.miqian.service.AccountService;
import com.miqian.util.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/account")
public class AccountController {
	@Autowired
	@Qualifier("accountService")
	public AccountService accountService;


	//注销
	@RequestMapping("/logout")
	public String logout(HttpSession session){
		//清空session
		session.invalidate();
		return "login";
	}
	//验证手机号唯一
	@RequestMapping("/checktel")
	@ResponseBody
	public Object checktel(String accountTel){
		int i = accountService.queryBytel(accountTel);
		Map<String, Object> map = new HashMap<String, Object>();
		if(i>0){
			map.put("code", "success");
		}else{
			map.put("code", "fasle");
		}
		return map;

	}
	//回显个人信息
	@RequestMapping("/toupdaccount")
	@ResponseBody
	public Object toupdaccount(String aid,Map<String,Object> maps){
		maps.put("aid",aid);
		Account account = accountService.queryByaid(maps);
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("account", account);
		return map;
	}

	//完善个人资料
	@RequestMapping("/updateaccount")
	@ResponseBody
	public Object updateaccount(Account account){
		int i = accountService.updateaccount(account);
		Map<String, Object> map = new HashMap<String, Object>();
		if(i>0){
			map.put("code", "success");
		}else{
			map.put("code", "false");
		}
		return map;

	}

	//登录
	@RequestMapping("/login")
	@ResponseBody
	public Integer login(Account account,HttpSession session){
		String accountPwd = SecurityUtils.md5(account.getAccountPwd());
		System.out.print(accountPwd);
		account.setAccountPwd(accountPwd);
		Account a = accountService.findAccountByTel(account.getAccountTel());
		if(a == null){
			return 1;
		}
		else if(!account.getAccountPwd().equals(a.getAccountPwd())){
			return 2;
		}
		else{
			session.setAttribute("account", a);
			return 3;
		}
	}

	//注册
	@RequestMapping("/addregistacount")
	@ResponseBody
	public Object addregistacount(HttpSession session,String accountTel,Account account)
			throws Exception{
		String accountPwd = SecurityUtils.md5(account.getAccountPwd());
		account.setAccountPwd(accountPwd);
		HashMap<String, Object> map = new HashMap<String, Object>();
		int i = accountService.addregistacount(account);
		if(i>0){
			map.put("code", "success");
		}else{
			map.put("code", "false");
		}
		return map;
	}
	//接收短信验证码
	@RequestMapping("/messageServlet")
	@ResponseBody
	public boolean getmessage(HttpSession session,String accountTel) throws Exception{
		String str="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		StringBuilder sb=new StringBuilder(4);
		for(int i=0;i<4;i++)
		{
			char ch=str.charAt(new Random().nextInt(str.length()));
			sb.append(ch);
		}
		System.out.println(sb.toString());
		// 用户名
		String name = "15934472606";
		// 密码
		String pwd = "A54F6DBABD08CB21CAEA5C5DC4E1";
		// 电话号码字符串,中间用英文逗号间隔
		StringBuffer mobileString = new StringBuffer(accountTel);
		// 内容字符串
		StringBuffer contextString = new StringBuffer("您的验证码是:"+sb+"。请不要把验证码泄露给其他人");
		// 签名
		String sign = "咪钱金融";
		// 追加发送时间,可为空,为空为及时发送
		String stime = "";
		// 扩展码,必须为数字 可为空
		StringBuffer extno = new StringBuffer();

		System.out.println(doPost(name, pwd, mobileString, contextString, sign, stime, extno));
		session.setAttribute("sb", sb);

		return true;
	}
	//97到208行为短信API接口
	/**
	 * 发送短信
	 *
	 * @param name			用户名
	 * @param pwd			密码
	 * @param mobileString	电话号码字符串,中间用英文逗号间隔
	 * @param contextString	内容字符串
	 * @param sign			签名
	 * @param stime			追加发送时间,可为空,为空为及时发送
	 * @param extno			扩展码,必须为数字 可为空
	 * @return
	 * @throws Exception
	 */
	public static String doPost(String name, String pwd, StringBuffer mobileString, StringBuffer contextString,
								String sign, String stime, StringBuffer extno) throws Exception {
		StringBuffer param = new StringBuffer();
		param.append("name=" + name);
		param.append("&pwd=" + pwd);
		param.append("&mobile=").append(mobileString);
		param.append("&content=").append(URLEncoder.encode(contextString.toString(), "UTF-8"));
		param.append("&stime=" + stime);
		param.append("&sign=").append(URLEncoder.encode(sign, "UTF-8"));
		param.append("&type=pt");
		param.append("&extno=").append(extno);

		URL localURL = new URL("http://web.cr6868.com/asmx/smsservice.aspx?");
		URLConnection connection = localURL.openConnection();
		HttpURLConnection httpURLConnection = (HttpURLConnection) connection;

		httpURLConnection.setDoOutput(true);
		httpURLConnection.setRequestMethod("POST");
		httpURLConnection.setRequestProperty("Accept-Charset", "utf-8");
		httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
		httpURLConnection.setRequestProperty("Content-Length", String.valueOf(param.length()));

		OutputStream outputStream = null;
		OutputStreamWriter outputStreamWriter = null;
		InputStream inputStream = null;
		InputStreamReader inputStreamReader = null;
		BufferedReader reader = null;
		String resultBuffer = "";

		try {
			outputStream = httpURLConnection.getOutputStream();
			outputStreamWriter = new OutputStreamWriter(outputStream);

			outputStreamWriter.write(param.toString());
			outputStreamWriter.flush();

			if (httpURLConnection.getResponseCode() >= 300) {
				throw new Exception(
						"HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());
			}

			inputStream = httpURLConnection.getInputStream();
			resultBuffer = convertStreamToString(inputStream);

		} finally {

			if (outputStreamWriter != null) {
				outputStreamWriter.close();
			}

			if (outputStream != null) {
				outputStream.close();
			}

			if (reader != null) {
				reader.close();
			}

			if (inputStreamReader != null) {
				inputStreamReader.close();
			}

			if (inputStream != null) {
				inputStream.close();
			}

		}

		return resultBuffer;
	}

	/**
	 * 转换返回值类型为UTF-8格式.
	 * @param is
	 * @return
	 */
	public static String convertStreamToString(InputStream is) {
		StringBuilder sb1 = new StringBuilder();
		byte[] bytes = new byte[4096];
		int size = 0;

		try {
			while ((size = is.read(bytes)) > 0) {
				String str = new String(bytes, 0, size, "UTF-8");
				sb1.append(str);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				is.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return sb1.toString();
	}
}



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值