1. 程式人生 > >java調介面實現傳送手機簡訊驗證碼功能,手機驗證碼,介面呼叫

java調介面實現傳送手機簡訊驗證碼功能,手機驗證碼,介面呼叫

近來由於專案需要,需要用到手機簡訊驗證碼的功能,其中最主要的是用到了第三方提供的簡訊平臺介面WebService客戶端介面,下面我把我在專案中用到的記錄一下,以便給大家提供個思路,由於本人的文采有限,還請大家見諒!

一:首先上幾張案例截圖,以便大家可以瞭解一下簡訊驗證碼的流程,這裡我在做的過程中也參考了很多網站的簡訊驗證碼,比如:58同城,汽車之家等。

1.點選獲取驗證碼之前的樣式:


2.輸入正確的手機號後點擊獲取驗證碼之後的樣式:


3.如果手機號已經被註冊的樣式:


4.如果一個手機號一天傳送超過3次就提示不能傳送:


二:前臺的註冊頁面的程式碼:reg.jsp

  1. <%@ page language=“java”import=“java.util.*”pageEncoding=“UTF-8”%>
  2. <%@taglib prefix=“s”uri=“/struts-tags”%>
  3. <%@page import=“cn.gov.csrc.base.action.FindAllData”%>
  4. <%  
  5.     String path = request.getContextPath();  
  6.     String basePath = request.getScheme() + ”://”  
  7.             + request.getServerName() + ”:” + request.getServerPort()  
  8.             + path + ”/”;  
  9. %>
  10. <!DOCTYPE HTML PUBLIC ”-//W3C//DTD HTML 4.01 Transitional//EN”>
  11. <html>
  12. <head>
  13. <basehref=“<%=basePath%>”>
  14. <title>中國證券會證券期貨違法違規舉報中心-註冊</title>
  15. <metahttp-equiv=“pragma”content=“no-cache”>
  16. <metahttp-equiv=“cache-control”content
    =“no-cache”>
  17. <metahttp-equiv=“expires”content=“0”>
  18. <metahttp-equiv=“keywords”content=“keyword1,keyword2,keyword3”>
  19. <metahttp-equiv=“description”content=“This is my page”>
  20. <linkrel=“shortcut icon”type=“image/x-icon”href=“<%=request.getContextPath()%>/images/favicon.ico”/>
  21. <linkrel=“stylesheet”type=“text/css”
  22.     href=“<%=request.getContextPath()%>/css/main.css”>
  23. <link
  24.     href=“<%=request.getContextPath()%>/formValidator1/style/validator.css”
  25.     rel=“stylesheet”type=“text/css”/>
  26. <styletype=“text/css”>
  27. button {  
  28.     background: #F0F0F0 repeat-x;  
  29.     padding-top: 3px;   
  30.     border-top : 1px solid #708090;  
  31.     border-right: 1px solid #708090;  
  32.     border-bottom: 1px solid #708090;  
  33.     border-left: 1px solid #708090;  
  34.     width: auto;  
  35.     line-height: 12pt;   
  36.     font-size : 10pt;  
  37.     cursor: hand;  
  38.     font-size: 10pt;  
  39.     border-top: 1px solid #708090;  
  40. }  
  41. </style>
  42. <scriptsrc=“<%=request.getContextPath()%>/js/jquery-1.7.2.min.js”
  43.     type=“text/javascript”></script>
  44. <scriptsrc=“<%=request.getContextPath()%>/formValidator1/formValidator-4.0.1.js”
  45.     type=“text/javascript”></script>
  46. <scriptsrc=“<%=request.getContextPath()%>/formValidator1/formValidatorRegex.js”
  47.     type=“text/javascript”></script>
  48. <scriptsrc=“<%=request.getContextPath()%>/js/register.js”
  49.     type=“text/javascript”></script>
  50. <scriptsrc=“<%=request.getContextPath()%>/js/sms.js”
  51.     type=“text/javascript”></script>
  52. <scripttype=“text/javascript”>
  53.     function changeCheckNum() {  
  54.         var checkNumImage_ = document.getElementById(“checkNumImage”);  
  55.         checkNumImage_.src = “${pageContext.request.contextPath}/image.jsp?timeStamp=”+ new Date().getTime();  
  56.     }  
  57. </script>
  58. <scripttype=“text/javascript”>
  59.     var msg = “${message}”;  
  60.     if (msg != ”“) {  
  61.         alert(msg);  
  62.     }  
  63. </script>
  64. </head>
  65. <body>
  66.     <%@include file=“/statics/top.jspf”%>
  67.     <divclass=“center_division”>
  68.         <divclass=“center_body”>
  69.             <divclass=“center_menu”>
  70.                 <fontcolor=“#000000”>當前位置:</font>
  71.                 <ahref=“<%=request.getContextPath()%>/statics/reg.jsp”><fontcolor=“#000000”>使用者註冊</font></a>
  72.             </div>
  73.         </div>
  74.         <divclass=“center_body_menu”>
  75.             <s:formaction=“RegisterAction_register”id=“form1”name=“form1”method=“post”namespace=“/”>
  76.                 <tableid=“tb”>
  77.                     <tr>
  78.                         <tdcolspan=“3”align=“center”bgcolor=“#DDDFE1”>舉報人基本資訊</td>
  79.                     </tr>
  80.                     <tr>
  81.                         <tdalign=“center”width=“30%”><imgsrc=“images/new_reg_xing.gif”/>使用者名稱:</td>
  82.                         <tdalign=“center”width=“40%”>
  83.                             <s:textfieldname=“username”id=“username”cssStyle=“width:160px;height:24px;”onblur=“checkusername()”/>
  84.                         </td>
  85.                         <tdalign=“left”width=“30%”>
  86.                             <spanid=“usernameTip”>
  87.                                 <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  88.                                     <s:param>username</s:param>
  89.                                 </s:fielderror>
  90.                             </span>
  91.                         </td>
  92.                     </tr>
  93.                     <tr>
  94.                         <tdalign=“center”width=“30%”><imgsrc=“images/new_reg_xing.gif”/>登入密碼:</td>
  95.                         <tdalign=“center”width=“40%”>
  96.                             <s:passwordname=“password”id=“password”cssStyle=“width:160px;height:24px;”onblur=“checkpassword()”/>
  97.                         </td>
  98.                         <tdalign=“left”width=“30%”>
  99.                             <spanid=“passwordTip”>
  100.                                 <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  101.                                     <s:param>password</s:param>
  102.                                 </s:fielderror>
  103.                             </span>
  104.                         </td>
  105.                     </tr>
  106.                     <tr>
  107.                         <tdalign=“center”width=“30%”><imgsrc=“images/new_reg_xing.gif”/>確認密碼:</td>
  108.                         <tdalign=“center”width=“40%”>
  109.                             <s:passwordname=“passwordRepeat”id=“passwordRepeat”cssStyle=“width:160px;height:24px;”onblur=“checkpasswrodb()”/>
  110.                         </td>
  111.                         <tdalign=“left”width=“30%”>
  112.                             <spanid=“passwordRepeatTip”>
  113.                                 <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  114.                                     <s:param>passwordRepeat</s:param>
  115.                                 </s:fielderror>
  116.                             </span>
  117.                         </td>
  118.                     </tr>
  119.                     <tr>
  120.                         <tdalign=“center”width=“30%”><imgsrc=“images/new_reg_xing.gif”/>姓        名:</td>
  121.                         <tdalign=“center”width=“40%”>
  122.                             <s:textfieldname=“nickname”id=“nickname”cssStyle=“width:160px;height:24px;”onblur=“checknickname()”/>
  123.                         </td>
  124.                         <tdalign=“left”width=“30%”>
  125.                             <spanid=“nicknameTip”>
  126.                                 <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  127.                                     <s:param>nickname</s:param>
  128.                                 </s:fielderror>
  129.                             </span>
  130.                         </td>
  131.                     </tr>
  132.                     <tr>
  133.                         <tdalign=“center”width=“30%”>性        別:</td>
  134.                         <tdalign=“center”width=“40%”>
  135.                             <s:radiolist=“#application.dataMap.get(‘10001’)”name=“jbSex”cssStyle=“height:24px;”/>
  136.                         </td>
  137.                         <tdalign=“left”width=“30%”></td>
  138.                     </tr>
  139.                     <tr>
  140.                         <tdalign=“center”width=“30%”>聯絡地址:</td>
  141.                         <tdalign=“center”width=“40%”>
  142.                             <s:textfieldname=“jbAddress”id=“jbAddress”cssStyle=“width:160px;height:24px;”/>
  143.                         </td>
  144.                         <tdalign=“left”width=“30%”>
  145.                             <spanid=“jbAddressTip”>
  146.                                 <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  147.                                     <s:param>jbAddress</s:param>
  148.                                 </s:fielderror>
  149.                             </span>
  150.                         </td>
  151.                     </tr>
  152.                     <tr>
  153.                         <tdalign=“center”width=“30%”><imgsrc=“images/new_reg_xing.gif”/>聯絡手機:</td>
  154.                         <tdalign=“center”width=“40%”>
  155.                             <s:textfieldid=“jbPhone”name=“jbPhone”cssStyle=“width:160px;height:24px;”onblur=“checkjbPhone()”/>
  156.                         </td>
  157.                         <tdalign=“left”width=“30%”>
  158.                             <spanid=“jbPhoneTip”>
  159.                                 <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  160.                                     <s:param>jbPhone</s:param>
  161.                                 </s:fielderror>
  162.                             </span>
  163.                         </td>
  164.                     </tr>
  165.                     <tr>
  166.                         <tdalign=“center”><imgsrc=“images/new_reg_xing.gif”/>簡訊驗證碼:</td>
  167.                         <tdalign=“left”colspan=“2”style=“padding-left: 112px;”>
  168.                             <s:textfieldid=“SmsCheckCode”name=“SmsCheckCode”cssStyle=“width:80px;height:24px;”maxLength=“6”/>
  169.                             <span><inputtype=“button”id=“btnSendCode”name=“btnSendCode”value=“免費獲取驗證碼”onclick=“sendMessage()”/></span>
  170.                             <spanid=“SmsCheckCodeTip”>
  171.                                 <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  172.                                     <s:param>SmsCheckCodeTip</s:param>
  173.                                 </s:fielderror>
  174.                             </span>
  175.                         </td>
  176.                     </tr>
  177.                     <tr>
  178.                         <tdalign=“center”width=“30%”><imgsrc=“images/new_reg_xing.gif”/>證件型別:</td>
  179.                         <tdalign=“center”width=“40%”>
  180.                         <s:selectlist=“#application.dataMap.get(‘10002’)”label=“”
  181.                                 headerKey=“”headerValue=“–請選擇–”value=“1”listValue=“value”onchange=“enableCredentialsCode(this)”
  182.                                 name=“jbCredentialsName”id=“jbCredentialsName”cssStyle=“width:160px;height:24px;”/>
  183.                         </td>
  184.                         <tdalign=“left”width=“30%”>
  185.                             <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  186.                                 <s:param>jbCredentialsName</s:param>
  187.                             </s:fielderror>
  188.                         </td>
  189.                     </tr>
  190.                     <tr>
  191.                         <tdalign=“center”width=“30%”><imgsrc=“images/new_reg_xing.gif”/>證件號碼:</td>
  192.                         <tdalign=“center”width=“40%”>
  193.                             <s:textfieldname=“jbCredentialsCode”id=“jbCredentialsCode”cssStyle=“width:160px;height:24px;”onblur=“checkjbCredentialsCode()”/>
  194.                         </td>
  195.                         <tdalign=“left”width=“30%”>
  196.                             <spanid=“jbCredentialsCodeTip”>
  197.                                 <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  198.                                     <s:param>jbCredentialsCode</s:param>
  199.                                 </s:fielderror>
  200.                             </span>
  201.                         </td>
  202.                     </tr>
  203.                     <tr>
  204.                         <tdalign=“center”width=“30%”>單位名稱:</td>
  205.                         <tdalign=“center”width=“40%”>
  206.                             <s:textfieldname=“jbCompanyName”id=“jbCompanyName”cssStyle=“width:160px;height:24px;”/>
  207.                         </td>
  208.                         <tdalign=“left”width=“30%”>
  209.                             <spanid=“jbCompanyNameTip”>
  210.                                 <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  211.                                     <s:param>jbCompanyName</s:param>
  212.                                 </s:fielderror>
  213.                             </span>
  214.                         </td>
  215.                     </tr>
  216.                     <tr>
  217.                         <tdalign=“center”width=“30%”><imgsrc=“images/new_reg_xing.gif”/>所在地區:</td>
  218.                         <tdalign=“center”width=“40%”>
  219.                         <s:selectlist=“#application.dataMap.get(‘10003’)”label=“”
  220.                                 headerKey=“”headerValue=“–請選擇–”listKey=“key”
  221.                                 cssStyle=“width:160px;height:24px;”listValue=“value”id=“jbSourceArea”
  222.                                 name=“jbSourceArea”onblur=“checkjbSourceArea()”/>
  223.                         </td>
  224.                         <tdalign=“left”width=“30%”>
  225.                             <spanid=“jbSourceAreaTip”>
  226.                                 <s:fielderrorcssStyle=“color:red;padding-left:10px;”>
  227.                                     <s:param>jbSourceArea</s:param>
  228.                                 </s:fielderror>
  229.                             </span>
  230.                         </td>
  231.                     </tr>
  232.                     <tr>
  233.                         <tdalign=“center”width=“30%”>