Heim  >  Artikel  >  Web-Frontend  >  So implementieren Sie SMS-Bestätigungscode basierend auf JavaScript_Javascript-Kenntnissen

So implementieren Sie SMS-Bestätigungscode basierend auf JavaScript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 15:18:332317Durchsuche

Wenn wir die Online-Geschäftshallen von Mobilfunk-, Telekommunikations- und anderen Betreibern nutzen, müssen wir häufig SMS-Bestätigungscodes verwenden, um die Integrität und Genauigkeit des Geschäfts sicherzustellen. Kürzlich wurde aufgrund geschäftlicher Anforderungen in einer bestimmten Provinz eine ähnliche Funktion eingerichtet.

Das Prinzip ist sehr einfach: Wenn der Benutzer auf „Bestätigungscode abrufen“ klickt, ruft Ajax eine Zeichenfolge fester Ziffern ab, schreibt dann in die Datenbank, um eine Textnachricht zu senden, und schreibt ein Cookie, um die Gültigkeitsdauer festzulegen den Verifizierungscode.

Der Bestätigungscode für die JS-Anfrage lautet wie folgt:

$.ajax({
type: "GET",
url: "../Ajax/smsrandcodetest.ashx?phone=" + phone.val() + "&smsCodeRand=" + num,
success: function(result) {
if (result == "Y") {
alert("验证码已发送至您输入的手机号!有效期5分钟");
RemainTime();
}
else {
alert("验证码获取失败!请重新获取");
}
},
error: function() { alert("error"); }
});
//获取6位随机验证码
function random() {
var num = "";
for (i = 0; i < 6; i++) {
num = num + Math.floor(Math.random() * 10);
}
return num;
}
//验证码有效期倒计时
function RemainTime() {
var iSecond;
var sSecond = "", sTime = "";
if (iTime >= 0) {
iSecond = parseInt(iTime % 300);
if (iSecond >= 0) {
sSecond = iTime + "秒";
}
sTime = "<span style='color:darkorange;font-size:13px;'>" + sSecond + "</span>";
if (iTime == 0) {
clearTimeout(Account);
sTime = "<span style='color:red;font-size:12px;'>验证码已过期</span>";
}
else {
Account = setTimeout("RemainTime()", 1000);
}
iTime = iTime - 1;
}
$("#endtime").html(sTime);
} 

Die vom Frontend zu verarbeitende Arbeit ist im Grunde die gleiche wie oben. Jetzt müssen wir dem HttpHandler Logik hinzufügen. Um zu verhindern, dass der von Js generierte Bestätigungscode den Regeln entspricht, generieren wir ihn neu das hintere Ende:

if (smscoderand.Length != 6) //如果JS生成的随机码不符,则用C#生成随机码
{
smscoderand = GetRandom();
}
//写短信数据,发SMS
//写Cookie,设置验证码有效期,比如5分钟
//注:如果以上都处理成功,返回"Y",处理失败,返回"N"

Der Einfachheit halber wird hier die Überprüfung der Gültigkeitsdauer des Bestätigungscodes mithilfe von Cookies durchgeführt. Wenn das Unternehmen übermittelt wird, wird das Cookie des Kunden abgerufen, um festzustellen, ob es vorhanden ist. Wenn es nicht vorhanden ist, muss es abgelaufen sein. Wenn das Unternehmen später expandiert, können Sie erwägen, die Überprüfung der Datenbankgültigkeit und einige andere Regeln hinzuzufügen, z. B. die Begrenzung der Anzahl der innerhalb einer Stunde oder eines Tages gesendeten Bestätigungscodes (Sie können nicht unbegrenzt Textnachrichten senden) usw.

Das Obige ist eine detaillierte Einführung zur Implementierung des JavaScript-SMS-Bestätigungscodes. Ich hoffe, dass es für alle hilfreich ist.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn