Unabhängig davon, welches Projekt verwendet wird, wird auf dem Programm eine Grenze für die Häufigkeit eines SMS -Verifizierungscodes entworfen, wodurch die SMS -Verifizierungscode -Schnittstelle hauptsächlich ein SMS -Verifizierungscode ausgebaut wird.
Der vorherige Absatz war zufällig die Anmeldefunktion eines Benutzer -SMS -Verifizierungscodes für ein Projekt. Daher habe ich Folgendes untersucht und unten veröffentlicht, um ihn zu teilen.
Die hier beteiligte SMS -Schnittstelle verwendet die SMS -Schnittstelle von Drittanbietern - Dynamic Thinking Thinking (http://www.lx598.com/). Wenn Sie sich über den Zugriff auf SMS -Schnittstellen informieren möchten, können Sie auf ihre offizielle Website wechseln und die Beschreibung der SMS -Schnittstellen -API -Dokumentation überprüfen. Sie sollten es verstehen, indem Sie sich auf den folgenden Code beziehen.
Der Benutzerregistrierungsteil ist wie folgt:
// Haupt -JS -Methode: // mobile Verifizierungscode erhalten: Funktion getRegcode () {if ($. Trim ($ ('#inputcaptcha'). Val ()) == '') {$ ('#imgrs'). $ ('#inputcaptcha'). select (); zurückkehren; } if (! iPhonenum ($ ('#phonere'). val ()) {document.getElementById ('phonererfo'). InnerHtml = '<font color = "rot"> Bitte füllen Sie eine gültige 11-stellige Handynummer </font>' aus; } else {document.getElementById ('phonerEinfo'). InnerHtml = 'Melden Sie sich nach der Registrierung mit Ihrer Handynummer an'; $.ajax({ url : "${path}/account/checkMob", type : "POST", data : "account.ACCMOB=" + $('#phoneRe').val(), contentType : "application/x-www-form-urlencoded;charset=utf-8", async : false, success : function(data) { res = data; if (data == 1) { document.getElementById ('PhonerEnfo'). InnerHtml = '<font color = "rot"> Diese Handynummer wurde registriert </font>' Refreshyzm (); URL: "$ {path}/account/reimcodeGetVecode", Typ: "post", data: "account.accmob =" +$ ('#Phonere'). Val () +"& fromSource = 4 & smscount =" +$ ('#smscount'). "Anwendung/x-www-form-urlencoded; charset = utf-8", async: false: function (data) {myarray = data.Split ("&"); Wurde bitte vorsichtig sein, um es zu überprüfen, um zu sehen, ob (Daten) 'Verifizierer -Fehler') {document.getElementById ('Phonerfo'). Fehler!'); } }); } var smscount = parseInt ($ ('#SMSCOUNT'). val ()); SMSCOUNT = SMSCOUNT <3? SMSCOUNT+1: 3; $ ('#SMSCOUNT'). VAL (SMSCOUNT); } // Registrieren ein neuer Benutzer // Konto ist die Benutzerklasse @Action (value = "ReimcodeGetVeCode") public void ReimcodeGetVeCode () {printwriter out; String result = "Überprüfungscode -Anwendung fehlgeschlagen! Bitte versuchen Sie es erneut!"; try {smsunit = new smsunit (Confutil.getProperty ("sys_sms_server")); if (null! Account. Account.SetAcccreatedate (neues Datum ()); Kalender c = calendar.getInstance (); C.Add (Calendar.day_of_month, 1); // Die Ablaufzeit des Verifizierungscode auf ein 24 -Stunden -Konto festlegen. AccountCriteria.Createcriteria (). ASCMOMOBEQUALTO (Account.GetAccmob ()); List <Conto> Accs = Accountservice .SelectByExample (AccountCriteria); // Anzahl der Verifizierungscodeanfragen int re = 0; Ganzzahl cishu = 0; // Wenn der Benutzer nicht existiert (Accs == null || Accs.isempty ()) {cishu = 1; Account.SetsDkurl ("1"); Account.SetFSecurityOutTime (C.GetTime ()); // Die Gültigkeitszeit des Verifizierungscode bigDecimal accid = AccountService.getPrimaryKey () festlegen; Account.SetFID (unklar); Re = AccountService.insertSelective (Konto, Iputil.getRealip (Anfrage)); Cookie Cookie = New Cookie ("id", accid.toString ()); Cookie.setMaxage (Integer.max_Value); response.addcookie (Cookie); } else {account ac = Accs.get (0); Account.SetFID (ac.getfid ()); Datum Datum = neuer Datum (); // Bestimmen Sie die Anzahl der Überprüfungscodes nach Zeit // Wenn es sich um einen neuen Tag handelt, ändern Sie die Anzahl der Verwendungen auf 1 if (Datum.getDate ()> = ac.getFSecurityoutTime (). GetDate ()) {Account.SetsDkurl ("1"); } else {Integer count = integer.parseInt (ac.getSdkurl ()); Account.SetsDkurl (count + 1 + ""); // Wenn es kein neuer Tag ist, ist die Anzahl der Anzahl +1} cishu = Integer.parseInt (conto.getSdkurl ()); Account.SetFSecurityOutTime (C.GetTime ()); if (cishu <= 3) re = AccountService .UpdateByprimaryKeysselective (Account); // den Verifizierungscode speichern, um Informationen zu senden} if (re> 0 && cishu <= 3) {request.getSession (). RemoveAttribute (constvalues.web_session_promote); AccountCriteria AC = New AccountCriteria (); Ac.Createcriteria (). ASCMOBEQUALTO (Account.getAccmob ()); List <Contoes> aclist = new ArrayList <Conto> (); AcList = AccountService.SelectByExample (AC); if (aclist! SendsmsReply sendsmsReply = smsunit.sendsms (Accname, ACCPWD, Account.getAccmob (), Inhalt, ""); // Aufrufen einer Schnittstelle von Drittanbietern zum Senden von SMS-Ergebnis = sendsmsReply.getReplymmsg () + "&" + aclist.get (0) .Getfid () + "&" + ACLIST.get (0) .GetSdkurl (); }} else if (cishu> 3) {result = "eingeschränkte Anwendung"; }}} catch (Ausnahme e) {logger.Error ("" Verfasser -Code nicht erhalten ", e); } endlich {try {response.setContentType ("text/html; charSet = utf-8"); response.setcharactercoding ("utf-8"); out = response.getWriter (); out.write (Ergebnis); } catch (ioException e) {logger.Error ("", e); }}} // Dies ist der Referenzcode zum Senden von SMS-Funktionen des Power-Thinking Lexin Drittanbieters SMS-Schnittstelle: /*** Senden SMS* @Param Accname Lexin Account Benutzername* @param ACCPWD Lexin Account Passwort* @param Seed Current Time Format: YYYYYMMDD HHDD SEXING FORMADHD. Zwischen mehreren Mobiltelefonnummern* @param Inhalt Signatur hinzufügen nach dem Inhalt* @param schtime Time Format: 2010-01-01 08:00:00* @return Das vom Server zurückgegebene Ergebnis: Geschäfts-ID oder Fehlercode*/ public static Stringsms (String Accname, String Accpwd, String Mobies, String Inhalt, String Schtime) {{Stringbuffer SB = New New New New New StringBuffer ("http://sdk.lx198.com/sdk/send2?"); try {String Seed = new SimpledateFormat (DateFormatStr) .Format (New Date ()); sb.Append ("& accname ="+accname); SB.Append ("& Seed ="+Seed); sb.append ("& accpwd ="+md5.getMd5string (md5.getMd5string (ACCPWD)+Seed)); sb.Append ("& avecodes ="+mobies); sb.append ("& schtime ="+urlencoder.encode (schtime, "utf-8")); // Conversion in Space Interpunktion sb.append ("& content ="+urlencoder.encode (Inhalt, "UTF-8")); // codieren die Konvertierung in chinesischen URL -URL = New URL (SB.ToString ()); HttpurlConnection connection = (httpurlConnection) url.openconnection (); Connection.SetRequestMethod ("Post"); BufferedReader in = neuer BufferedReader (neuer InputStreamReader (url.openstream ())); zurück in.readline (); } catch (Ausnahme e) {e.printstacktrace (); } return null; }Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.