生活随笔
收集整理的這篇文章主要介紹了
java通过容联云通讯实现发送短信验证码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.在容聯云通訊上根據 —接入流程 完成以下的步驟
創建應用
申請短信簽名
配置測試號碼等等
最終可以拿到SID和TOKEN。之后把官網上的Demo下載下來,把里面的jar包加到你的項目里面
Controller層
package com.hfxt.web.controller;import java.util.HashMap;
import java.util.Set;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;import com.cloopen.rest.sdk.CCPRestSmsSDK;
import common.model.JsonCrudModel;@RequestMapping("/yzm")
@Controller
public class SDKTestSendTemplateSMS extends BaseController{@RequestMapping("/getYzm")@ResponseBodypublic String yzm(HttpSession session){HashMap<String, Object> result = null;//初始化SDKCCPRestSmsSDK restAPI = new CCPRestSmsSDK();restAPI.init("app.cloopen.com", "8883");restAPI.setAccount("你的ACOUNT SID", "你的AUTH TOKEN"); //參數順序:第一個參數是ACOUNT SID,第二個參數是AUTH TOKEN。restAPI.setAppId("你的APP ID"); //應用ID的獲取:登陸官網,在“應用-應用列表”,點擊應用名稱,看應用詳情獲取APP IDint mobile_code = (int)((Math.random()*9+1)*100000); //用隨機數當驗證碼String yzm = String.valueOf(mobile_code);result = restAPI.sendTemplateSMS("你的手機號","1" ,new String[]{yzm,"2"}); // 第一個參數是手機號,第二個參數是你是用的第幾個模板,第三個參數是你的驗證碼,第四個是在幾分鐘之內輸入session.setAttribute("yzm", yzm);System.out.println("SDKTestGetSubAccounts result=" + result);if("000000".equals(result.get("statusCode"))){//正常返回輸出data包體信息(map)HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");Set<String> keySet = data.keySet();for(String key:keySet){Object object = data.get(key);System.out.println(key +" = "+object);}}else{//異常返回輸出錯誤碼和錯誤信息System.out.println("錯誤碼=" + result.get("statusCode") +" 錯誤信息= "+result.get("statusMsg"));}return null;}
}
然后需要寫一個Controller來判斷你輸入的驗證碼是否正確
@RequestMapping("yanzhengma")@ResponseBodypublic JsonCrudModel<Object> begin(HttpSession session , String yzm){final JsonCrudModel<Object> json = new JsonCrudModel<Object>();String yzm1 = (String)session.getAttribute("yzm");if(yzm!=null && yzm1!=null){if(yzm.equals(yzm1)){json.setMessage("success");}else{json.setMessage("error");}}else{json.setMessage("error");}return json;}
這樣后端就寫完了
之后就是前端怎么拿到數據,發送驗證碼
JSP
<form action="${pageContext.request.contextPath }/提交的地址" method="post"> //當輸入完成后,表單提交到一個地址<div class="register"><div class="res-item"><input type="tel" placeholder="手機號" name="account" class="input-item mobile"><i class="res-icon am-icon-phone"></i></div><div class="res-item"><input type="text" onblur="f2();" name="yzm" id="yzm" placeholder="驗證碼" class="input-item yanzheng"> //當輸入錯誤,光標聚集在文本框內<i class="res-icon am-icon-mobile"></i><button type="button" class="yanzhengma" onclick="yz();">發送驗證碼</button> //發送驗證碼</div><div class="res-item"><div class="res-btn"><button type="submit" id="res-btn" class="am-btn am-btn-block">完成</button></div></div><center><p style="color: red; font-size: 2em;">${mistake }</p></center></form>
表單寫完了,之后就是用JS得到數據,執行發送驗證碼了
<script type="text/javascript">function yz(){ //向目標Controller發起請求$.ajax({url:"${pageContext.request.contextPath }/yzm/getYzm",data:"script",dataType:"JSON",type:"GET",success:function(data){},error:function(data2){}});}function f2(){ //判斷輸入的驗證碼是否正確if(document.getElementById("yzm").value!=null || document.getElementById("yzm").value!=""){$.ajax({url:"${pageContext.request.contextPath }/yzm/yanzhengma?yzm="+document.getElementById("yzm").value,dataType:"json",type:"POST",success:function(data){if(data.message!="success"){document.getElementById("yzm").value="";alert("驗證碼輸入錯誤!");}},error:function(data){}});}}</script>
大功告成!完成發送
總結
以上是生活随笔為你收集整理的java通过容联云通讯实现发送短信验证码的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。