asp.net mvc 接入阿里大于 短信验证码发送
生活随笔
收集整理的這篇文章主要介紹了
asp.net mvc 接入阿里大于 短信验证码发送
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
項目前端頁面實例
?
?
第1步:登錄阿里大于控制臺
https://www.alidayu.com/center/user/account?spm=0.0.0.0.P1K1jG
第2步:創建應用
?
第3步:配置短信簽名
第4步:配置短信模板
第5步:前端
?
<tr class="margin-top"><td class="padding-top text-center">手機號</td><td><input type="text" class="inputs" id="Phone" name="Phone"> </td><td><input type="button" value="獲取驗證碼" id="sms" οnclick="sendemail()"></td></tr><tr><td class="padding-top text-center">驗證碼</td><td><input type="text" class="inputs" id="Code" name="Code"></td></tr>?
第6步:js處理
$(function () {$("#sms").click(function () {sendCode($("#sms"));});v = getCookieValue("secondsremained");//獲取cookie值if (v > 0) {settime($("#sms"));//開始倒計時} })//發送驗證碼 function sendCode(obj) {var phoneNumber = $("#Phone").val();var result = isPhoneNum(phoneNumber);if (result) {//將手機利用ajax提交到后臺的發短信接口$.post("/College/Code", { Phone: phoneNumber }, function (data) {if (data == "ok") {alert("驗證碼發送成功!");} else {alert("驗證碼發送失敗,請重新發送!");}});addCookie("secondsremained", 60, 60);//添加cookie記錄,有效時間60ssettime(obj); //開始倒計時} } //開始倒計時 var countdown; function settime(obj) {countdown = getCookieValue("secondsremained");if (countdown == 0) {obj.removeAttr("disabled");obj.val("獲取驗證碼");return;} else {obj.attr("disabled", true);obj.val("重新發送(" + countdown + ")");countdown--;editCookie("secondsremained", countdown, countdown + 1);}setTimeout(function () { settime(obj) }, 1000) //每1000毫秒執行一次 }//校驗手機號是否合法 function isPhoneNum(phoneNumber) {var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;if (!myreg.test(phoneNumber)) {alert('請輸入有效的手機號碼!');return false;} else {return true;} }//發送驗證碼時添加cookie function addCookie(name, value, expiresHours) {var cookieString = name + "=" + escape(value);//判斷是否設置過期時間,0代表關閉瀏覽器時失效if (expiresHours > 0) {var date = new Date();date.setTime(date.getTime() + expiresHours * 1000);cookieString = cookieString + ";expires=" + date.toUTCString();}document.cookie = cookieString; }//修改cookie的值 function editCookie(name, value, expiresHours) {var cookieString = name + "=" + escape(value);if (expiresHours > 0) {var date = new Date();date.setTime(date.getTime() + expiresHours * 1000); //單位是毫秒cookieString = cookieString + ";expires=" + date.toGMTString();}document.cookie = cookieString; }//根據名字獲取cookie的值 function getCookieValue(name) {var strCookie = document.cookie;var arrCookie = strCookie.split("; ");for (var i = 0; i < arrCookie.length; i++) {var arr = arrCookie[i].split("=");if (arr[0] == name) {return unescape(arr[1]);break;} else {return "";break;}} }第7步:后臺控制器處理
?
#region 商學院報名發送驗證碼public ActionResult ValidateCode(){string Code = GetRandomString(6);string url = "https://eco.taobao.com/router/rest";string appkey = "****"; //此處填寫你自己的string secret = "****"; //此處填寫你自己的ITopClient client = new DefaultTopClient(url, appkey, secret);AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();req.Extend = ""; //可空,返回狀態req.SmsType = "normal"; //不可更改req.SmsFreeSignName = "個人小站"; //申請的短信簽名,不可填寫與申請的不一req.SmsParam = "{VCode:'" + Code + "'}"; //模板內參數必填req.RecNum = Request["Phone"]; //接收者手機號碼req.SmsTemplateCode = "SMS_74235011"; //短信模板的編號,不可出錯AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req); if (rsp.IsError == false){Console.WriteLine(rsp.Body);//return Content(rsp.Body);}//將驗證碼設置緩存var CodeInfo = (Object)Code;CacheOpt.SetCache("Code", CodeInfo, Convert.ToInt32(60));return Content("ok");} #region 生成6位驗證碼public string GetRandomString(int iLength){string buffer = "0123456789"; // 隨機字符中也可以為漢字(任何)StringBuilder sb = new StringBuilder();Random r = new Random();int range = buffer.Length;for (int i = 0; i < iLength; i++){sb.Append(buffer.Substring(r.Next(range), 1));}return sb.ToString();}#endregion?
第8步:緩存處理
?
注:完整版項目地址:http://www.gmkcn.com/?
轉載于:https://www.cnblogs.com/zouke1220/p/7267984.html
總結
以上是生活随笔為你收集整理的asp.net mvc 接入阿里大于 短信验证码发送的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 16位汇编第第四讲常用的7种寻址方式
- 下一篇: 在Linux 环境下搭建 JDK 和 T