java手机注册获取验证码--乐信平台
樂信手機注冊驗證服務
- BizNumberUtil隨機碼工具類:當前時間精確到秒+3位數字(此工具包可忽略)
| package com.java11.crowd.util; ? import java.text.SimpleDateFormat; import java.util.Date; ? /** 隨機碼工具包(當前時間精確到秒+3位數字) */ public class BizNumberUtil { ? public static ?int curttNo; ? private final static String dataFormatString="yyMMddHHmmss"; ? public ?synchronized static final String createBizId(){ if(curttNo<999) { curttNo++; }else{ curttNo=1; } String curttNoStr=String.valueOf(curttNo); while(curttNoStr.length()<3){; curttNoStr="0"+curttNoStr; } return new SimpleDateFormat(dataFormatString).format(new Date())+curttNoStr; } ? public static void main(String[] args) { System.out.println(createBizId()); } ? } ? |
- MD5.java工具類
| package com.java11.crowd.util; ? import java.security.MessageDigest; /** MD5碼工具包 */ public class MD5 { private final static char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; ? private static String bytes2hex(byte[] bytes) { StringBuffer sb = new StringBuffer(); int t; for (int i = 0; i < 16; i++) {// 16 == bytes.length; t = bytes[i]; if (t < 0) t += 256; sb.append(hexDigits[(t >>> 4)]); sb.append(hexDigits[(t % 16)]); } return sb.toString(); } ? public static String getMd5String(String strSrc) { try { MessageDigest md5 = MessageDigest.getInstance("MD5"); return bytes2hex(md5.digest(strSrc.getBytes())); } catch (Exception e) { e.printStackTrace(); } return null; } } ? |
- SendSms.java短信發送工具類,sendSms方法
| package com.java11.crowd.util; ? import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.Random; ? ? /** 短信發送工具包,sendSms方法 */ public class SendSms { ? //測試 public static void main(String[] args) { System.out.println("======================="); //隨機生成一個1-100000的驗證碼并存放在模板中 new SendSms().sendSms("xxxxx@qq.com", "wwwwww", "17700000000", "尊敬的用戶:您的驗證碼:"+new Random().nextInt(100000)+"工作人員不會索要,請勿泄露。【wcl】"); System.out.println("======================="); } ? //sendSms方法,短信發送的具體實現 public ?String sendSms(String accName,String accPwd,String mobies,String content){ StringBuffer sb = new StringBuffer("http://www.lx198.com/sdk/send?"); try { sb.append("accName="+accName); //用戶名 sb.append("&accPwd="+MD5.getMd5String(accPwd)); //密碼 sb.append("&aimcodes="+mobies);//收取驗證碼的手機號 sb.append("&content="+URLEncoder.encode(content,"UTF-8"));//驗證信息 sb.append("&dataType=string"); System.out.println(sb.toString()); URL url = new URL(sb.toString()); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); return in.readLine(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } } ? |
- sendSms.js(可自由選擇)
| function getRealPath(){ //獲取當前網址,如: http://localhost:8083/myproj/view/ahha.jsp var curWwwPath=window.document.location.href; //獲取主機地址之后的目錄,如: myproj/view/ahha.jsp var pathName=window.document.location.pathname; var pos=curWwwPath.indexOf(pathName); //獲取主機地址,如: http://localhost:8080 var localhostPaht=curWwwPath.substring(0,pos); //獲取帶"/"的項目名,如:/ahha var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); ? //得到了 服務器名稱和項目名稱 var realPath=localhostPaht+projectName; ? return realPath; } ? // 聲明全局變量pageContext var pageContext = getRealPath(); ? $(function(){ send(); }); ??? function send(){ ???? var sms=""; ???? document.getElementById("btn").οnclick=function(){ ???????????var phone=$("#usPhone").val(); ???????????if(phone!="") ???????????{ ???????????????$.ajax({ ???????????????????url:pageContext + "/user/code.action", ???????????????????type:"post", ???????????????????dataType : "json", ???????????????????data:{"usPhone":phone}, ???????????????????success:function(data){ ???????????????????????sms=data; ???????????????????????alert("========="+sms); ???????????????????} ???????????????}); ???????????}else{ ????????????????alert("請輸入手機號"); ???????????????return false; ???????????} ? ???????}; ???????$("#lo").click(function(){ ???????????var code=$("#code").val(); ???????????var phone=$("#usPhone").val(); ???????????var usPassword=$("#usPassword").val(); ???????????if(code==""){ ???????????????alert("請輸入驗證碼"); ???????????}else{ ???????? ???if(sms==code){ ???????????????????$.ajax({ ???????????????????????url:pageContext + "/user/phoneReg.action", ???????????????????????type:"post", ???????????????????????dataType : "json", ???????????????????????data:{"usPhone":phone,"usPassword":usPassword}, ???????????????????????success:function(data){ ???????????????????? ???alert(data.msg); ???????????????????????}, ??????????????????????? ???????????????????}); ???????????}else{ ????????? alert("驗證碼錯誤"); ???????????} ???????????} ???????}); ? ????} ???? |
- UserController
| package com.java11.crowd.controller; ? ? ? import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Random; ? import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; ? import org.apache.ibatis.annotations.Param; 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 com.java11.crowd.service.IUserService; import com.java11.crowd.util.EmailUtil; import com.java11.crowd.util.GenerateLinkUtil; import com.java11.crowd.util.IDCardUtil; import com.java11.crowd.util.MyPasswordEncrypt; import com.java11.crowd.util.SendSms; import com.java11.crowd.vo.User; /** 實現短信注冊的Controller */ @RequestMapping("/user/*") @Controller public class UserController extends AbstractController { @Autowired private IUserService service; ? //進入注冊郵箱頁面 @RequestMapping("/toregist") public String toemail() { return "index/email_reg"; } ? //進入手機注冊頁面 @RequestMapping("/phoneregist") public String phonereg() { return "index/phone_reg"; } ? //生成驗證碼,并發送給用戶 @RequestMapping("code") public @ResponseBody int code(HttpServletRequest request,HttpSession session) { String accName="xxxxxxx@qq.com";//短信平臺的注冊賬戶 String accPwd="wwwwwww"; //平臺密碼 String mobies=request.getParameter("usPhone");//用戶輸入的手機號 int ?code=new Random().nextInt(1000000); //隨機生成驗證碼 String content="尊敬的用戶:您的驗證碼:"+code+"工作人員不會索要,請勿泄露。【wcl】"; //格式要和短信平臺一直 ?簽名要寫對 session.setAttribute("code", code);//將生成的code驗證碼保存到session System.out.println(request.getSession().getAttribute("code"));//測試能否從session中獲取驗證碼 SendSms sms=new SendSms();//創建工具包對象 sms.sendSms(accName, accPwd, mobies, content); //調用發送方法 return code; } ? ? ? @RequestMapping("phoneReg") public @ResponseBody Object phoneReg(User vo,HttpServletRequest request) throws Exception { //System.out.println(vo); vo.setUsRole(1); vo.setUsCreateTime(new Date()); Map<String,String> map=new HashMap(); map.put("msg", "注冊成功"); ? if(service.phoneReg(vo)) { return map; }else { return "redirect:/user/phoneregist.action"; } ? } } ? |
注:此api可去樂信短信平臺官網進行下載:http://www.lmobile.cn/
總結
以上是生活随笔為你收集整理的java手机注册获取验证码--乐信平台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VR-Platform 簡介
- 下一篇: SkeyeVSS智慧国土360度巡航监控