ตอนนี้ไม่ว่าจะใช้โครงการใดหากใช้ฟังก์ชั่นการตรวจสอบ SMS ขีด จำกัด จำนวนครั้งที่รหัสการตรวจสอบ SMS ได้รับการออกแบบในโปรแกรมซึ่งส่วนใหญ่จะป้องกันไม่ให้อินเทอร์เฟซรหัสการตรวจสอบ SMS จากการถูกแปรง
ย่อหน้าก่อนหน้านี้เป็นฟังก์ชั่นการเข้าสู่ระบบของรหัสการตรวจสอบ SMS ของผู้ใช้สำหรับโครงการดังนั้นฉันจึงศึกษาสิ่งต่อไปนี้และโพสต์ด้านล่างเพื่อแชร์
อินเทอร์เฟซ SMS ที่เกี่ยวข้องที่นี่ใช้อินเตอร์เฟส SMS ของบุคคลที่สาม - การคิดแบบไดนามิก (http://www.lx598.com/) หากคุณต้องการทราบเกี่ยวกับการเข้าถึงอินเทอร์เฟซ SMS คุณสามารถไปที่เว็บไซต์ทางการของพวกเขาและตรวจสอบคำอธิบายเอกสารประกอบ SMS Interface API คุณควรเข้าใจโดยอ้างถึงรหัสด้านล่าง
ส่วนการลงทะเบียนผู้ใช้รหัสหลักมีดังนี้:
// เมธอด JS หลัก: // รับรหัสการตรวจสอบมือถือ: ฟังก์ชั่น getRegCode () {ถ้า ($. trim ($ ('#inputcaptcha'). val ()) == '') {$ ('#imgrs'). html ("รหัสการตรวจสอบกราฟิกไม่สามารถว่างเปล่า"); $ ('#inputcaptcha') select (); กลับ; } if (! isphonenum ($ ('#phonere'). val ())) {document.getElementById ('phonereinfo'). innerhtml = '<font color = "สีแดง"> กรุณากรอกหมายเลขโทรศัพท์มือถือ 11 หลักที่ถูกต้อง </font>'; } else {document.getElementById ('phonereinfo'). innerhtml = 'เข้าสู่ระบบด้วยหมายเลขโทรศัพท์มือถือของคุณหลังจากการลงทะเบียน'; $ .ajax ({url: "$ {path}/account/checkmob", type: "post", data: "account.accmob =" + $ ('#phonere'). val (), contentType: "แอปพลิเคชัน/x-ww-form-urlencoded; charset = utf-8" document.getElementById ('phonereinfo'). innerhtml = '<font color = "สีแดง"> หมายเลขโทรศัพท์มือถือนี้ได้รับการลงทะเบียน </font>'; $ .ajax ({url: "$ {path}/account/reaimCodeGetVecode", พิมพ์: "โพสต์", ข้อมูล: "account.accmob =" + $ ('#phonere'). val () + "& fromsource = 4 & smscount =" + $ ('#smscount') +"& searchName =" +$. trim ($ ('#inputcaptcha'). val ()), contentType: "แอปพลิเคชัน/x-www-form-urlencoded; charset = utf-8", async: false, ความสำเร็จ: ฟังก์ชั่น (data) {myarray = data.split (" document.getElementById ('phonereinfo'). innerhtml = '<font color = "green"> รหัสการตรวจสอบได้รับการส่งแล้วโปรดระมัดระวังในการตรวจสอบ! สามารถใช้งานได้มากถึง 3 ครั้งต่อวัน! การแจ้งเตือน ('ข้อยกเว้นการตรวจสอบภายใน!'+ข้อมูล);}}); } var smscount = parseint ($ ('#smscount'). val ()); smscount = smscount <3? smscount+1: 3; $ ('#smscount'). Val (smscount); - // ลงทะเบียนผู้ใช้ใหม่ // บัญชีคือคลาสผู้ใช้ @Action (value = "reaimCodeGetVecode") โมฆะสาธารณะ reaimCodeGetVeCode () {printWriter out; String result = "แอปพลิเคชันรหัสยืนยันล้มเหลว! โปรดลองอีกครั้ง!"; ลอง {smsunit = smsunit ใหม่ (confutil.getProperty ("sys_sms_server")); if (null! = account.getAccMob () &&! account.getAccMob (). เท่ากับ ("")) {account.setAccstatus (ใหม่ bigdecimal (1)); // ตั้งสถานะการใช้งาน: การตรวจสอบสตริงไม่ได้ใช้ = สตริง. valueof Account.SetFSecurityCode (VerifyCode); account.setAcccreatedate (วันที่ใหม่ ()); ปฏิทิน C = Calendar.getInstance (); c.add (calendar.day_of_month, 1); // ตั้งค่ารหัสการหมดอายุการตรวจสอบเวลา 24 ชั่วโมงบัญชี SetFregistERSource (FromSource); // ตั้งค่าแหล่งที่มาการลงทะเบียน // ตรวจสอบว่าโทรศัพท์มือถือได้รับรหัสการตรวจสอบบัญชี Criteria หรือไม่ AccountCriteria.createCriteria (). และ ACCMOBEQUALTO (Account.getAccMob ()); รายการ <account> ACCS = AccountService .SelectByExample (AccountCriteria); // จำนวนการร้องขอรหัสการตรวจสอบ int re = 0; จำนวนเต็ม cishu = 0; // หากไม่มีผู้ใช้ (accs == null || accs.isempty ()) {cishu = 1; account.setsdkurl ("1"); account.setFsecurityOuttime (c.getTime ()); // ตั้งเวลาความถูกต้องของรหัสการตรวจสอบ BigDecimal accid = accountService.getPrimaryKey (); account.setfid (ไม่แน่นอน); Re = accountService.inSertSelective (บัญชี, iPutil.getRealip (คำขอ)); คุกกี้คุกกี้ = คุกกี้ใหม่ ("id", accid.toString ()); COOKIE.SetMaxage (Integer.max_value); Response.addcookie (คุกกี้); } else {บัญชี ac = accs.get (0); account.setfid (ac.getfid ()); วันที่วันที่ = วันที่ใหม่ (); // กำหนดจำนวนรหัสการตรวจสอบตามเวลา // หากเป็นวันใหม่ให้เปลี่ยนจำนวนการใช้เป็น 1 ถ้า (date.getDate ()> = ac.getFsecurityOutTime (). getDate ()) {account.setsdkurl ("1"); } else {จำนวนเต็มนับ = integer.parseint (ac.getsdkurl ()); account.setsdkurl (นับ + 1 + ""); // ถ้าไม่ใช่วันใหม่จำนวนครั้ง +1} cishu = integer.parseint (account.getsdkurl ()); account.setFsecurityOuttime (c.getTime ()); if (cishu <= 3) re = accountService .UpDateByBremaryKeySelective (บัญชี); // บันทึกรหัสการตรวจสอบเพื่อส่งข้อมูล} if (re> 0 && cishu <= 3) {request.getSession (). RemoveAttribute (Constvalues.web_session_promote); AccountCriteria AC = ใหม่ criteria (); ac.createCriteria (). และ ACCMOBEQUALTO (account.getAccMob ()); รายการ <account> aclist = new ArrayList <Account> (); aclist = accountService.SelectByExample (AC); if (aclist! = null && aclist.size ()> 0) {// ส่งเนื้อหาสตริงที่นี่เพื่อเรียกใช้ข้อความ SMS ที่นี่ = "รหัสการตรวจสอบของคุณคือ:" + VerifyCode + "รหัสนั้นใช้ได้ 24 ชั่วโมงรหัสสามารถใช้ได้เพียงครั้งเดียว! SendSmSreply sendSmSreply = smsUnit.sendsms (accname, accpwd, account.getaccmob (), เนื้อหา, ""); // เรียกอินเทอร์เฟซของบุคคลที่สามเพื่อส่งผลลัพธ์ SMS = sendSmSreply.getReplyMsg () + "&" + aclist.get (0) .getFid () + "&" + aclist.get (0) .getsdkurl (); }} อื่นถ้า (cishu> 3) {result = "แอปพลิเคชันที่ จำกัด "; }}} catch (exception e) {logger.error ("ไม่สามารถรับรหัสการตรวจสอบ", e); } ในที่สุด {ลอง {response.setContentType ("text/html; charset = utf-8"); Response.Setcharacterencoding ("UTF-8"); out = response.getWriter (); out.write (ผลลัพธ์); } catch (ioexception e) {logger.error ("", e); - // นี่คือรหัสอ้างอิงสำหรับการส่งฟังก์ชั่น SMS ของการคิดพลังงาน Lexin อินเตอร์เฟส SMS ของบุคคลที่สาม: /*** ส่ง SMS* @param accname lexin บัญชีชื่อผู้ใช้* @param ACCPWD LEXIN บัญชีรหัสผ่าน* @param หมายเลขโทรศัพท์มือถือหลายหมายเลข* เนื้อหา @param เพิ่มลายเซ็นหลังจากเนื้อหา* @param schtime เวลารูปแบบ: 2010-01-01 08:00:00* @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @accname accname, accpwd สตริง, สตริง StringBuffer ("http://sdk.lx198.com/sdk/send2?"); ลอง {String seed = new SimpledateFormat (DateFormatStr) .Format (วันที่ใหม่ ()); sb.append ("& accname ="+accname); sb.append ("& seed ="+เมล็ด); sb.append ("& accpwd ="+md5.getmd5string (md5.getmd5string (accpwd)+เมล็ด)); sb.append ("& aimcodes ="+mobies); sb.append ("& schtime ="+urlencoder.encode (schtime, "UTF-8")); // เข้ารหัสการแปลงในเครื่องหมายวรรคตอนอวกาศ sb.append ("& content ="+urlencoder.encode (เนื้อหา, "UTF-8")); // เข้ารหัสการแปลงใน URL url ภาษาจีน = URL ใหม่ (sb.toString ()); การเชื่อมต่อ httpurlConnection = (httpurlConnection) url.openconnection (); Connection.setRequestMethod ("โพสต์"); bufferedReader ใน = new bufferedReader (ใหม่ inputStreamReader (url.openstream ())); return in.readline (); } catch (exception e) {e.printstacktrace (); } return null; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น