-----------------------------------------------------------------------------------------------------------------
<p class="long-input ue-clear">
<label>请输入手机验证码:</label>
<input type="text" id="newPwd" name="VailteCode" required="required" class="form-control" placeholder="请输入手机验证码" />
<input type="button" class="tijiao" id="valiteBtn" value="发送手机验证码" />
</p>
$("#valiteBtn").click(function () {
$.ajax({
url: "/UserInfo/SendMsg",
type: "post",
data: "",
dataType: "json",
success: function (data) {
if (data.Pass) {
layer.msg(data.Msg, { icon: 1, time: 2000 });
}
else {
layer.msg(data.Msg, { icon: 2, time: 2000 });
}
},
error: function (msg) {
layer.msg(msg.status, { icon: 2, time: 2000 });
}
});
});
//在SendMessage这个发短信的方法里:
他是生成了一个随机数num,把这随机数放进api里了;这个随机数就通过短信发到你的手机上。
api.SendTemplateSMS(短信接收号码, 短信模板id, 内容数据) 后面的这个30 是请在30分钟内输入;ojbk也行
Dictionary<string, object> retData = api.SendTemplateSMS("18437963713", "2", new string[] { num.ToString(), "30" });
然后又用redis记住这个随机数,用于比较的时候再用Redis取出来。
验证码是在随机数里堆出来的,就是借助平台把这个短信发回来了而已。
public ActionResult SendMsg()
{
ResultModel rm = new ResultModel();
string result=DataHelper.SendMessage();
if (result == "失败")
{
rm.Pass = false;
rm.Msg = "发送失败";
}
else
{
RedisManager.ClientManager.Set("Msg" + LoginUser.ID, result);
rm.Pass = true;
rm.Msg = "发送成功";
}
return Json(rm);
}