Maintenant, quel que soit le projet utilisé, si la fonction de vérification SMS est utilisée, une limite au nombre de fois qu'un code de vérification SMS est conçu sur le programme, ce qui empêche principalement l'interface de code de vérification SMS d'être brossé.
Le paragraphe précédent s'est avéré être la fonction de connexion d'un code de vérification SMS utilisateur pour un projet, j'ai donc étudié ce qui suit et je l'ai publié ci-dessous pour le partager.
L'interface SMS impliquée ici utilise l'interface SMS tierce - Thinking Thinking (http://www.lx598.com/). Si vous souhaitez connaître l'accès à l'interface SMS, vous pouvez accéder à leur site Web officiel et consulter la description de la documentation de l'API de l'interface SMS. Vous devez le comprendre en vous référant au code ci-dessous.
La pièce d'enregistrement de l'utilisateur, le code principal est le suivant:
// Méthode JS principale: // Get Mobile Verification Code: fonction getRegCode () {if ($. $ ('# inputcaptcha'). SELECT (); retour; } if (! isPhonEnum ($ ('# phonere'). val ())) {document.getElementById ('phonereinfo'). innerhtml = '<font color = "red"> Veuillez remplir un numéro de téléphone mobile à 11 chiffres valide </font>'; } else {document.getElementById ('phonereinfo'). innerHtml = 'Connectez-vous avec votre numéro de téléphone portable après enregistrement'; $ .ajax ({URL: "$ {path} / compte / checkmob", type: "post", data: "account.accmob =" + $ ('# phonere'). Val (), contentType: "application / x-www-form-urlencoded; charset = utf-8", async: false: function: function (data) {res = data; Document.getElementByid ('phonereinfo'). innerhtml = '<font color = "red"> Ce numéro de téléphone mobile a été enregistré </font>'; $ .ajax ({url: "$ {path} / compte / reoImCodeGetVecode", type: "post", data: "account.accmob =" + $ ('# phonere'). Val () + "& fromsource = 4 & smscount =" + $ ('# smscount'). Val () + "& searchName =" + $. Trim ($ ('# inputcaptcha'). Val ()), ContentType: "Application / x-www-for-urlencoded; charset = utf-8", async: false, function (data) {MyArray = data.split ("&"); Document.getElementByid ('phonereinfo'). InnerHtml = '<font color = "verte"> Le code de vérification a été envoyé, veuillez les vérifier! Le numéro peut être appliqué jusqu'à 3 fois par jour! alerte ('exception, erreur de vérification interne! } var smscount = parseInt ($ ('# smScount'). Val ()); smScount = smScount <3? Smscount + 1: 3; $ ('# smscount'). Val (smScount); } // Enregistrer un nouvel user // le compte est une classe utilisateur @Action (value = "re-ImcodeGetVecode") public void ReiMCodeGetVcode () {printwriter out; Résultat de la chaîne = "L'application du code de vérification a échoué! Veuillez réessayer!"; essayez {smsUnit = new SmsUnit (confutil.getProperty ("sys_sms_server")); if (null! = compte.getACCMOB () &&! account.getACCMOB (). Equals ("")) {account.setAcCstatus (new BigDeCIMal (1)); // Set Use Status: String VerificationCode n'est pas utilisé = String .Valueof (new Random (). account.setfSecurityCode (VerifyCode); account.setACCCreatEdate (new Date ()); Calendrier c = calendar.getInstance (); c.add (calendar.day_of_month, 1); // Définissez le délai d'expiration du code de vérification sur 24 heures de compte.SetFregStersource (depuis Source); // Définissez la source d'enregistrement // Déterminez si le téléphone mobile a obtenu le code de vérification Accountcriria Accountricteria = new AccouteRiaria (); ActiveCriteria.CreateCriteria (). etAcCMobequalto (account.getAcCmob ()); List <conthed> acs = comptactive .SelectByExample (AccounteCriteria); // Nombre de demandes de code de vérification int re = 0; Entier cishu = 0; // Si l'utilisateur n'existe pas (accs == null || ac.isempty ()) {cishu = 1; account.setsdkurl ("1"); account.setfSecurityoutTime (c.getTime ()); // Définissez le temps de validité du code de vérification BigDecimal accid = accountervice.getPrimaryKey (); account.setFid (acnide); re = accountervice.insertSelective (compte, iputil.getRealip (demande)); Cookie Cookie = nouveau cookie ("id", acnid.toString ()); Cookie.SetMaxage (Integer.Max_Value); réponse.addcookie (cookie); } else {compte AC = Acs.get (0); account.setFid (ac.getFid ()); Date de date = new Date (); // Déterminez le nombre de codes de vérification par temps // S'il s'agit d'un nouveau jour, modifiez le nombre d'utilisations sur 1 if (date.getDate ()> = ac.getfSecurityoutTime (). GetDate ()) {account.setsdkurl ("1"); } else {Integer Count = Integer.ParseInt (ac.getsdkurl ()); account.setsdkurl (count + 1 + ""); // Si ce n'est pas un nouveau jour, le nombre de fois +1} cishu = Integer.Parseint (account.getsdkurl ()); account.setfSecurityoutTime (c.getTime ()); if (cishu <= 3) re = comptabilité. updatebyprimarykeySelective (compte); // Enregistrez le code de vérification pour envoyer des informations} if (re> 0 && cishu <= 3) {request.getSession (). RemoveAttribute (constvalues.web_session_promote); Accountricteria ac = new Accounteria (); ac.CreateCriteria (). etACCMobequalto (account.getAcCmob ()); List <Count> AcList = new ArrayList <Count> (); AcList = accountervice.SelectByExample (AC); if (acList! = null && acList.size ()> 0) {// Envoyer du contenu de chaîne ici pour exécuter le message SMS ici = "Votre code de vérification est:" + VerifyCode + ", le code est valide pendant 24 heures, le code ne peut être utilisé qu'une seule fois! [SMS Signature]"; SendSmsReply sendsmsReply = smsUnit.sendsms (accname, accpwd, compte.getAccMob (), contenu, ""); // Appel d'une interface tiers pour envoyer SMS Result = SendsmsReply.getRepLymsg () + "&" + Aclist.get (0) .getFid () + "&" + aclist.get (0) .getsdkurl (); }} else if (cishu> 3) {result = "Application restreinte"; }}} catch (exception e) {Logger.Error ("n'a pas obtenu de code de vérification", e); } enfin {try {réponse.setContentType ("text / html; charset = utf-8"); Response.SetcharAtterencoding ("UTF-8"); out = réponse.getWriter (); out.write (résultat); } catch (ioException e) {logger.error ("", e); }}} // Ceci est le code de référence pour l'envoi de fonctions SMS de l'interface SMS tiers de la pensée Power Thinkin: / ** * Envoyer SMS * @Param Accname Lexin Compte Username * @param accpwd Lexin Compte Password * @Param Seed Time Format Entre plusieurs numéros de téléphone mobile * @param contenu Ajouter une signature après le contenu * @param schtime Time Format: 2010-01-01 08:00:00 * @return le résultat renvoyé par le serveur: ID commercial ou code d'erreur * / public static String Sendsms (String Accname, String Accpwd, String Mobies, String Content, String schtime) {StringBuffer SB = 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 ("& AIMCODES =" + MOBIES); sb.append ("& schtime =" + urlencoder.encode (schtime, "utf-8")); // Encode la conversion dans la ponctuation spatiale sb.append ("& content =" + urlencoder.encode (contenu, "utf-8")); // Encode la conversion dans URL chinois URL = nouvelle URL (sb.toString ()); HttpurlConnection Connection = (httpurlConnection) url.openconnection (); connection.setRequestMethod ("post"); BufferedReader dans = new BufferedReader (new InputStreamReader (url.openStream ())); return in.readline (); } catch (exception e) {e.printStackTrace (); } return null; }Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.