Agora, não importa qual projeto seja usado, se a função de verificação do SMS for usada, um limite para o número de vezes que um código de verificação do SMS foi projetado no programa, que impede principalmente a interface do código de verificação do SMS.
O parágrafo anterior passou a ser a função de login de um código de verificação de SMS do usuário para um projeto, por isso estudei o seguinte e o publiquei abaixo para compartilhá -lo.
A interface SMS envolvida aqui usa a interface SMS de terceiros - pensamento dinâmico de pensamento (http://www.lx598.com/). Se você quiser saber sobre o acesso à interface SMS, poderá ir ao site oficial e verificar a descrição da documentação da API da interface SMS. Você deve entendê -lo referindo -se ao código abaixo.
A peça de registro do usuário, o código principal é o seguinte:
// Método JS principal: // Obtenha código de verificação móvel: function getRegCode () {if ($. TRIM ($ ('#inputcaptcha'). $ ('#inputcaptcha'). select (); retornar; } if (! isphonenum ($ ('#phonere'). } else {document.getElementById ('Phonereinfo'). Innerhtml = 'Login com o número do seu telefone celular após o registro'; $ .AJAX ({url: "$ {path}/conta/checkMob", tipo: "post", dados: "account.accMob =" + $ ('#phonere'). Document.getElementById ('Phonereinfo'). Innerhtml = '<font color = "vermelho"> Este número de telefone celular foi registrado </font>'; $ .ajax ({url: "$ {path}/conta/reaimcodeGetVecode", tipo: "post", dados: "conta.accMob =" + $ ('#phonere'). +"& SearchName =" +$. Trim ($ ('#inputcaptcha'). Document.getElementById ('Phonereinfo'). Innerhtml = '<font color = "Green"> Código de verificação foi enviado, tenha cuidado para verificar! Número de celular pode ser aplicado apenas a 3 vezes por dia! alerta ('Exceção, erro de verificação interna!'+Dados); } var smScount = parseint ($ ('#smsCount'). val ()); smScount = smScount <3? SMSCOUNT+1: 3; $ ('#smscount'). Val (smscount); } // Registrar uma nova conta do usuário // é a classe de usuário @Action (value = "reaimcodeGetVecode") public void reaimcodeGetVecode () {printWriter Out; String result = "Código de verificação Falha! Tente novamente!"; tente {smsUnit = new SmsUnit (confutil.getProperty ("sys_sms_server")); if (null! = conta.getAccMob () &&! Account.getAccMob (). Equals ("")) {Account.SetAccStatus (novo BigDecimal (1)); // Defina o status de uso: verificação da string não é usada = string .Valueof (novo aleatório (). NextInt (89999) + 100000); conta.SetfSecurityCode (verificouCode); conta.setAcccreatedate (new Date ()); Calendário c = calendário.getInstance (); c.add (calendar.day_of_month, 1); // Defina o tempo de expiração do código de verificação para 24 horas de conta. AccountCriteria.createcriteria (). eAccMobequalto (conta.getAccMob ()); List <Count> accs = AccountService .SelectByExample (AccountCriteria); // número de solicitações de código de verificação int re = 0; Número inteiro cishu = 0; // se o usuário não existir (accs == null || accs.isEmpty ()) {cishu = 1; Account.Setsdkurl ("1"); conta.SetfSecurityoutTime (c.getTime ()); // Defina o tempo de validade do código de verificação BigDecimal Accid = AccountService.getPrimaryKey (); conta.setfid (acidente); Re = AccountService.InsertSelective (conta, iputil.getRealip (request)); Cookie Cookie = novo cookie ("id", accid.toString ()); cookie.setMaxage (Integer.max_value); Response.Addcookie (Cookie); } else {conta ac = accs.get (0); conta.setfid (ac.getfid ()); Data data = new Date (); // Determine o número de códigos de verificação por tempo // Se for um novo dia, altere o número de usos para 1 se (date.getDate ()> = ac.getfSecurityoutTime (). GetDate ()) {Account.SetSdkurl ("1"); } else {count integer = integer.parseint (ac.getsdkurl ()); conta.setsdkurl (contagem + 1 + ""); // Se não for um novo dia, o número de vezes +1} cishu = Integer.parseint (conta.getsdkurl ()); conta.SetfSecurityoutTime (c.getTime ()); if (cishu <= 3) re = conta. // salve o código de verificação para enviar informações} if (re> 0 && cishu <= 3) {request.getSession (). Removeattribute (constValues.web_session_promote); AccountCriteria AC = new AccountCriteria (); ac.createcriteria (). eAccMobequalto (conta.getAccMob ()); List <Count> aclist = new ArrayList <Counct> (); aclist = AccountService.SelectByExample (AC); if (aclist! = null && aclist.size ()> 0) {// Envie o conteúdo da String aqui para executar a mensagem SMS aqui = "Seu código de verificação é:" + verifyCode + ", o código é válido por 24 horas, o código só pode ser usado uma vez! [SMS Signature]"; SendsmSreply sendsmSreply = smsunit.sendsms (accName, accpwd, account.getAccMob (), conteúdo, ""); // chamando uma interface de terceiros para enviar sms resultado = sendsmsReply.getReplymsg () + "&" + aclist.get (0) .getfid () + "&" + aclist.get (0) .getsdkurl (); }} else if (cishu> 3) {resultado = "aplicação restrita"; }}} catch (Exceção e) {Logger.error ("Falha ao obter o código de verificação", e); } finalmente {try {Response.SetContentType ("text/html; charset = utf-8"); Response.Setcharacterencoding ("UTF-8"); out = Response.getWriter (); out.write (resultado); } catch (ioexception e) {logger.error ("", e); }}} //This is the reference code for sending SMS functions of the Power Thinking Lexin third-party SMS interface: /** * Send SMS* @param accName Lexin account username* @param accPwd Lexin account password* @param seed Current time format: YYYYMMDD HHMISS For example: 20130806102030 * @param aimcodes Mobile phone number is separated by a half-width vírgula entre vários números de telefone celular* @param Content Adicione assinatura após o conteúdo* @param schtime Horário Formato: 2010-01-01 08:00:00* @REGURN O resultado retornado pelo servidor: ID de negócios ou código de erro*/ public static string envia (string accname, string accpwd, string mobies, string, string schtime) { StringBuffer ("http://sdk.lx198.com/sdk/send2?"); tente {string semente = new SimpleDateFormat (dateFormatStr) .Format (new Date ()); sb.append ("& accName ="+accName); sb.append ("& semente ="+semente); sb.append ("& accpwd ="+md5.getMd5String (md5.getMd5String (ACCPWD)+semente)); sb.append ("& aimcodes ="+mobies); sb.append ("& schtime ="+urlencoder.encode (schtime, "utf-8")); // codifica a conversão na pontuação do espaço sb.append ("& content ="+urlencoder.encode (content, "utf-8")); // codifica a conversão em URL chinesa url = novo URL (sb.toString ()); Conexão httpurlConnection = (httpurlConnection) url.openconnection (); Connection.SetRequestMethod ("Post"); BufferredReader in = new BufferredReader (new InputStreamReader (url.openstream ())); retornar em.readline (); } catch (Exceção e) {e.printStackTrace (); } retornar nulo; }O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.