Sekarang, tidak peduli proyek apa yang digunakan, jika fungsi verifikasi SMS digunakan, batas berapa kali kode verifikasi SMS dirancang pada program, yang terutama mencegah antarmuka kode verifikasi SMS dari disikat.
Paragraf sebelumnya adalah fungsi login dari kode verifikasi SMS pengguna untuk suatu proyek, jadi saya mempelajari yang berikut dan mempostingnya di bawah ini untuk membagikannya.
Antarmuka SMS yang terlibat di sini menggunakan antarmuka SMS pihak ketiga - Dynamic Thinking Thinking (http://www.lx598.com/). Jika Anda ingin tahu tentang akses antarmuka SMS, Anda dapat pergi ke situs web resmi mereka dan memeriksa deskripsi dokumentasi API antarmuka SMS. Anda harus memahaminya dengan merujuk pada kode di bawah ini.
Bagian pendaftaran pengguna, kode utama adalah sebagai berikut:
// metode js utama: // Dapatkan kode verifikasi seluler: fungsi getRegCode () {if ($. Trim ($ ('#inputCaptcha'). Val ()) == '') {$ ('#imgrs'). Html ("Kode verifikasi grafis tidak dapat kosong"); $ ('#inputCaptcha'). Select (); kembali; } if (! isPhonenum ($ ('#phonere'). val ())) {document.geteLementById ('phonereINFO'). INNERHTML = '<font color = "Red"> Harap isi nomor ponsel 11 digit yang valid </font>'; } else {document.geteLementById ('phonereInfo'). innerHtml = 'login dengan nomor ponsel Anda setelah pendaftaran'; $ .Ajax ({url: "$ {path}/akun/checkmob", ketik: "post", data: "Account.accmob =" + $ ('#phonere'). Val (), ContentType: "Application/X-WWW-Form-Urlencoded; Charset = UTF-8", ASNC: FUNCUCE, DATA-FORM-FORM-URLENCODED; Document.getElementById ('PhonereINFO'). INNERHTML = '<font color = "Red"> Nomor ponsel ini telah terdaftar </font>'; $ .AJAX ({url: "$ {path}/akun/reaimCodeGetVecode", ketik: "post", data: "Account.accmob =" + $ ('#phonere'). Val () + "& fromsource = 4 & smScount =" + $ ('#smScount'). +"& searchName =" +$. Trim ($ ('#inputCaptcha'). Val ()), ContentType: "Application/X-WWW-Form-Urlencoded; Charset = UTF-8", Async: False, Function (Data) {myarray = data.split ("&"); Document.getElementById ('PhonereINFO'). INNERHTML = '<font color = "green"> Kode verifikasi telah dikirim, harap berhati -hati untuk memeriksanya! Angka hanya dapat diterapkan hingga 3 kali sehari! kesalahan verifikasi internal! '+data); } var smscount = parseInt ($ ('#smScount'). val ()); smScount = smScount <3? smScount+1: 3; $ ('#smScount'). Val (smScount); } // Daftarkan pengguna baru // akun adalah kelas pengguna @Action (value = "reaimCodeGetVecode") public void reaimCodeGetVecode () {printwriter out; String result = "Aplikasi kode verifikasi gagal! Silakan coba lagi!"; coba {smsunit = smsunit baru (confutil.getProperty ("sys_sms_server")); if (null! = Account.getAccMob () &&! Account.getAccMob (). Equals ("")) {Account.setAccStatus (BigDecimal baru (1)); // Tetapkan Status Penggunaan: String VerificationCode tidak digunakan = string .valueof (new acak (). NextInt (8999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 Account.SetFSecurityCode (VerifikasiCode); Account.setAccCreateDate (tanggal baru ()); Kalender c = calendar.getInstance (); c.add (calendar.day_of_month, 1); // Atur waktu kedaluwarsa kode verifikasi ke akun 24 jam. AccountCriteria.createCriteria (). andAccMoBequealto (Account.getAccMob ()); Daftar <Account> Accs = AccountService .SelectByExample (AccountCriteria); // Jumlah permintaan kode verifikasi int re = 0; Integer Cishu = 0; // Jika pengguna tidak ada (accs == null || accs.isempty ()) {cishu = 1; Account.setsDkurl ("1"); Account.setFSecurityOutTime (c.getTime ()); // Atur waktu validitas kode verifikasi BigDecimal Accid = AccountService.getPrimaryKey (); Account.setFid (Accid); re = accountservice.insertSelective (Account, iPutil.getRealiP (request)); Cookie cookie = cookie baru ("id", accid.tostring ()); cookie.setmaxage (integer.max_value); response.addcookie (cookie); } else {akun ac = accs.get (0); Account.setFid (ac.getFid ()); Tanggal Tanggal = Tanggal Baru (); // Tentukan jumlah kode verifikasi berdasarkan waktu // Jika ini adalah hari baru, ubah jumlah kegunaan menjadi 1 if (date.getDate ()> = ac.getFsecurityoutTime (). GetDate ()) {account.setsDkUrl ("1"); } else {integer count = integer.parseint (ac.getsDkUrl ()); Account.setsDKURL (Count + 1 + ""); // Jika ini bukan hari baru, jumlah kali +1} cishu = integer.parseint (Account.getsDKurl ()); Account.setFSecurityOutTime (c.getTime ()); if (cishu <= 3) re = AccountService .updatebyprimarykeyselective (akun); // Simpan kode verifikasi untuk mengirim informasi} if (re> 0 && cishu <= 3) {request.getSession (). RemoveAttribute (constvalues.web_session_promote); AccountCriteria AC = AccountCriteria baru (); ac.createCriteria (). andAccMoBequalto (Account.getAccMob ()); Daftar <Account> ACLIST = ArrayList baru <Account> (); aclist = AccountService.SelectByExample (AC); if (aclist! = null && aclist.size ()> 0) {// Kirim konten string di sini untuk menjalankan pesan SMS di sini = "Kode verifikasi Anda adalah:" + VerifikasiCode + ", kode ini valid selama 24 jam, kode hanya dapat digunakan sekali! [SMS Signature]"; SendsmsReply sendsmsreply = smsunit.sendsms (accname, accpwd, account.getAccMob (), konten, ""); // Memanggil antarmuka pihak ketiga untuk mengirim hasil sms = sendsmsreply.getReplyMSg () + "&" + aclist.get (0) .getFid () + "&" + aclist.get (0) .getsDkUrl (); }} lain jika (cishu> 3) {result = "aplikasi terbatas"; }}} catch (Exception e) {Logger.Error ("Gagal mendapatkan kode verifikasi", e); } akhirnya {coba {response.setContentType ("text/html; charset = utf-8"); response.setcharacterencoding ("UTF-8"); out = response.getWriter (); out.write (hasil); } catch (ioException e) {logger.error ("", e); }}} // Ini adalah kode referensi untuk mengirim fungsi SMS dari pemikiran daya antarmuka SMS pihak ketiga Lexin: /*** Kirim SMS* @param accname lexin akun username* @param accpwd lexin akun password* @param seed format waktu saat ini* yyyymmdd hhmiss untuk contoh: 20130 @param seed format: yyyymmdd hhmiss untuk contoh: 20130 unggulan unggulan106 @parypping @yyyymmdd hhmiss untuk contoh: 20130806 koma antara beberapa nomor ponsel* @param konten tambahkan tanda tangan setelah konten* @param schtime Time format: 2010-01-01 08:00:00* @return Hasil yang dikembalikan oleh server: ID bisnis atau kode kesalahan*/ string statis publik) (String AccName, String ACCPWD, String Mobies, String Content, String Schime) o. StringBuffer ("http://sdk.lx198.com/sdk/send2?"); coba {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")); // mengkode konversi dalam ruang baca ruang sb.append ("& content ="+urlencoder.encode (konten, "utf-8")); // mengkode konversi dalam url Cina url = url baru (sb.tostring ()); HttpurlConnection connection = (httpurlConnection) url.openconnection (); Connection.setRequestMethod ("Post"); BufferedReader di = BufferedReader baru (inputStreamReader baru (url.openstream ())); kembali di.readline (); } catch (Exception e) {E.PrintStackTrace (); } return null; }Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.