短信驗證碼接口使用


注冊時經常會用到短信驗證碼。通過第三方平台接口實現短信發送。
直接上代碼

 1         @ResponseBody
 2         @RequestMapping(value="/dycode.htm")
 3         public Object getDynamicCode(@PathVariable String mobile){
 4             Jedis jedis = null;
 5             try{
 6                 jedis = jedisPool.getResource();
 7                 if(jedis.ttl(mobile) > 240){
 8                     return getResponse(2, "獲取動態驗證碼太頻繁!");
 9                 }
10                 String verifyCode = Utilities.getVerifyCode(6);
11                 Runnable runnable = new Runnable() {
12                     public void run() {  
13                         String smsServerUrl = "http://smssh1.253.com/msg/send/json";
14                         String msg = "【某某平台】 "+ verifyCode +" (某某平台驗證碼,請完成驗證),如非本人操作,請忽略本短信。";
15                         SmsSendRequest smsSingleRequest = new SmsSendRequest("N......2", "he.......c", msg, mobile, "true");
16                         String requestJson = JSON.toJSONString(smsSingleRequest);
17                         String response = ChuangLanSmsUtil.sendSmsByPost(smsServerUrl, requestJson);
18                         JSONObject jsonResObj = JSON.parseObject(response);
19                         if(jsonResObj.getInteger("code") != 0){
20                             logger.warn("獲取動態驗證碼失敗:" + response);
21                         }
22                     }
23                 };
24                 new Thread(runnable).start();
25                 jedis.setex(mobile, 300, verifyCode);
26                 return getResponse(0, "請求發送動態驗證碼成功!");
27             }catch (Exception e) {
28                 e.printStackTrace();
29                 logger.error("請求發送動態驗證碼時:" + e.toString());
30                 return getResponse(-1);
31             }finally {
32                 if(jedis != null){
33                     jedis.close();
34                 }
35             }
36         }
短信驗證碼

1.點擊發送驗證碼功能時,倒計時60秒才能再次點擊(前端js控制)
此時通過 Utilities.getVerifyCode(6) 方法生成6位數驗證碼,通過第三方發送到指定手機號碼
2.將驗證碼存入redis,並設置失效時間
 jedis.setex(mobile, 300, verifyCode); 
這里設置為300s失效。
登錄時取對應存儲的手機號的驗證碼,進行忽略大小寫驗證。驗證成功則刪除redis存入的此驗證碼。
注:在驗證碼未失效時,查詢此手機號對應驗證碼的失效時間,提示獲取驗證碼過於頻繁。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM