正規短信驗證碼


1.松耦合可拓展短信驗證碼一般需要三張表,msg(短信記錄表)msg_cfg(短信記錄與模板關聯表)msg_form(短信模板表)

package com.qianmo.qmyj.bean.dto;

/**
 * 短信驗證碼表
 */
public class Msg {
    private String moblNo;//手機號

    private String msgCodeType;//驗證碼類型

    private String msgCode;//驗證碼

    private String aplDateTime;//短信申請時間

    private String expDateTime;//短信失效時間

    private String useStat;//使用狀態

    public String getMoblNo() {
        return moblNo;
    }

    public void setMoblNo(String moblNo) {
        this.moblNo = moblNo == null ? null : moblNo.trim();
    }

    public String getMsgCodeType() {
        return msgCodeType;
    }

    public void setMsgCodeType(String msgCodeType) {
        this.msgCodeType = msgCodeType == null ? null : msgCodeType.trim();
    }

    public String getMsgCode() {
        return msgCode;
    }

    public void setMsgCode(String msgCode) {
        this.msgCode = msgCode == null ? null : msgCode.trim();
    }

    public String getAplDateTime() {
        return aplDateTime;
    }

    public void setAplDateTime(String aplDateTime) {
        this.aplDateTime = aplDateTime == null ? null : aplDateTime.trim();
    }

    public String getExpDateTime() {
        return expDateTime;
    }

    public void setExpDateTime(String expDateTime) {
        this.expDateTime = expDateTime == null ? null : expDateTime.trim();
    }

    public String getUseStat() {
        return useStat;
    }

    public void setUseStat(String useStat) {
        this.useStat = useStat == null ? null : useStat.trim();
    }
}
package com.qianmo.qmyj.bean.dto;

/**
 * 短信驗證碼配置表
 */
public class MsgCfg {
    private String sceneCode;//場景編號

    private String msgFormId;//信息模版ID

    public String getSceneCode() {
        return sceneCode;
    }

    public void setSceneCode(String sceneCode) {
        this.sceneCode = sceneCode == null ? null : sceneCode.trim();
    }

    public String getMsgFormId() {
        return msgFormId;
    }

    public void setMsgFormId(String msgFormId) {
        this.msgFormId = msgFormId == null ? null : msgFormId.trim();
    }
}
package com.qianmo.qmyj.bean.dto;

/**
 * 短信驗證碼模版表
 */
public class MsgForm {
    private String msgFormId;//信息模版ID

    private String sceneCode;//場景編號

    private String msgFormDtl;//信息模版內容

    public String getMsgFormId() {
        return msgFormId;
    }

    public void setMsgFormId(String msgFormId) {
        this.msgFormId = msgFormId == null ? null : msgFormId.trim();
    }

    public String getSceneCode() {
        return sceneCode;
    }

    public void setSceneCode(String sceneCode) {
        this.sceneCode = sceneCode == null ? null : sceneCode.trim();
    }

    public String getMsgFormDtl() {
        return msgFormDtl;
    }

    public void setMsgFormDtl(String msgFormDtl) {
        this.msgFormDtl = msgFormDtl == null ? null : msgFormDtl.trim();
    }
}

接下來聯系短信服務商,購買短信,查看第三方api文檔,下載一個demo測試。

下面是我在此項目中寫的短信驗證碼,controller

package com.qianmo.qmyj.controller;

import com.qianmo.qmyj.bean.request.GetMsgRequest;
import com.qianmo.qmyj.bean.request.JPushRequest;
import com.qianmo.qmyj.bean.response.GetMsgResponse;
import com.qianmo.qmyj.bean.response.JPushResponse;
import com.qianmo.qmyj.framework.util.QMDateUtil;
import com.qianmo.qmyj.service.JPushService;
import com.qianmo.qmyj.service.UserInfoExecuteService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.validation.Valid;

/*import com.qianmo.pageDao.JPushUtil;*/
/*import com.qianmo.pageDao.JPushUtil;*/

/**
 * 短信驗證
 */
@Controller
@RequestMapping(value = "/sendSMSController")
public class sendSMSController extends BaseController {

    private Logger logger = LoggerFactory.getLogger(getClass());

    @Resource
    private UserInfoExecuteService userInfoExecuteService;/**
     * 發送短信驗證碼
     */
    @RequestMapping(value = "/toSendSMS", method = RequestMethod.POST)
    @ResponseBody
    public GetMsgResponse toSendSMS(@Valid GetMsgRequest request) {
        logger.info("發送短信驗證碼接口開始處理:" + QMDateUtil.getYYYY_MM_DD_HH_MM_SS_CN() + "");
        return userInfoExecuteService.getMsg(request);
    }
}

serviceImpl

package com.qianmo.qmyj.service.impl;

import com.qianmo.qmyj.bean.dto.Msg;
import com.qianmo.qmyj.bean.dto.PushMessage;
import com.qianmo.qmyj.bean.dto.UserInfo;
import com.qianmo.qmyj.bean.request.*;
import com.qianmo.qmyj.bean.response.*;
import com.qianmo.qmyj.common.Constants;
import com.qianmo.qmyj.common.GenerateUserId;
import com.qianmo.qmyj.common.util.MD5Util;
import com.qianmo.qmyj.common.util.MsgCodeUtil;
import com.qianmo.qmyj.dao.MsgDao;
import com.qianmo.qmyj.dao.PushMessageDao;
import com.qianmo.qmyj.dao.UserInfoDao;
import com.qianmo.qmyj.framework.util.DataVerifyUtil;
import com.qianmo.qmyj.framework.util.QMDateUtil;
import com.qianmo.qmyj.service.UserInfoExecuteService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2017/5/4.
 */
@Service("userInfoExecuteService")
public class UserInfoExecuteServiceImpl implements UserInfoExecuteService {

    private Logger logger = LoggerFactory.getLogger(getClass());

    @Resource
    private MsgDao msgDao;
    @Resource
    private UserInfoDao userInfoDao;
    @Resource
    private MsgCodeUtil msgCodeUtil;
    @Resource
    private PushMessageDao pushMessageDao;

    @Override
    public GetMsgResponse getMsg(GetMsgRequest request) {
        logger.info("————————發送短信驗證碼接口:"+request);
        String msgCode = MsgCodeUtil.generateMsgCode();//生成短信驗證碼
        String msgContext = msgCodeUtil.genSmsContext(request.getOprFlag(), msgCode);
        Msg msg = new Msg();
        GetMsgResponse response = new GetMsgResponse();
        msg.setAplDateTime(MsgCodeUtil.getStartTime());
        msg.setExpDateTime(MsgCodeUtil.getEndTime());
        msg.setMoblNo(request.getMobileNumber());//手機號
        msg.setMsgCode(MsgCodeUtil.generateMsgCode());
        msg.setUseStat(Constants.MSG_CODE.UN_USE);
        msg.setMsgCodeType(Constants.msgSence.get(request.getOprFlag()));
        msg.setAplDateTime(QMDateUtil.getYYYYMMDDHHMMSS());//生成時間
        msg.setMsgCode(msgCode);
        msgDao.insertOrUpdateMsgCode(msg);  //如果此類型的驗證碼存才則修改驗證碼,反之進行添加。

        MsgCodeUtil.sendSMSGet(request.getMobileNumber(), msgContext, "");

        response.setCode(Constants.SUCCESS_CODE);
      //  response.setMessage(Constants.SUCCESS_MSG);
        response.setMessage(msgCode);
        logger.info("————————發送短信驗證碼接口成功");
        response.setvCode("msgCode");
        return response;
    }

    /***
     * 注冊
     * @param request
     * @return
     */
    @Override
    public VerificationResponse registered(VerificationRequest request) {
        //根據手機號獲取驗證碼信息,判斷是否一樣,獲取到期時間,判斷是否有效,獲取使用狀態,判斷是否已使用
        //驗證成功后,修改驗證碼使用狀態。進行修改,然后進行用戶注冊
        logger.info("------------------------>注冊接口處理中:" + QMDateUtil.getYYYY_MM_DD_HH_MM_SS_CN() + "<------------------------");

        VerificationResponse response = new VerificationResponse();
        UserInfo customer = userInfoDao.getCustomerInfoByAccount(request.getMobileNumber());
        if (!DataVerifyUtil.isBlank(customer)){
            response.setCode(Constants.ERROR_CODE);
            response.setMessage(Constants.REG.REG_FAIL);
            return response;
        }
        long startTime = System.currentTimeMillis();

        Msg msg = msgDao.selectMsgCodeByMoblNoOprFlag(request.getMobileNumber(),Constants.msgType.REG_FAIL);//00為注冊
        if (DataVerifyUtil.isBlank(msg)) {
            response.setCode(Constants.ERROR_CODE);
            response.setMessage("沒有這條數據。");
            return response;
        }
        String validTime = QMDateUtil.getYYYYMMDDHHMMSS();
        if (!request.getMobileNumber().equals(msg.getMoblNo())){
            logger.error("------------------->驗證碼不正確<----------------");
            response.setCode("1");
            response.setMessage("驗證碼不正確。");
            return response;
        }
        if (validTime.compareTo(msg.getExpDateTime()) > 0) {
            response.setCode("2");
            response.setMessage("有效期已過。");
            return response;
        }
        if (msg.getUseStat().equals(Constants.MSG_CODE.ALR_USE)){
            response.setCode("3");
            response.setMessage("此驗證碼已使用。");
            return response;
        }

        UserInfo newCus = new UserInfo();
        newCus.setUserId(GenerateUserId.moblNoToUserId(request.getMobileNumber()));//用戶編號
        newCus.setCrtChannel(Constants.compStatus.compStatus);//渠道 00:app
        newCus.setMoblNo(request.getMobileNumber());
        newCus.setCrtDateTime(QMDateUtil.getYYYYMMDDHHMMSS());
        newCus.setCrtUpdTime(QMDateUtil.getYYYYMMDDHHMMSS());
        newCus.setLoginPwd((MD5Util.MD5(request.getPassWord())).toUpperCase());
        newCus.setSocre(Constants.REG.DEFAULT_SCORE);
        newCus.setRemark(request.getTermTp());//設備類型 android:android      ios:ios
        newCus.setCertifStat(Constants.REG.DEFAULT_STAT);//身份驗證狀態
        newCus.setNewbiePurchaseStat(Constants.REG.BUY_STAT);//新手必備包的購買狀態
        newCus.setReminDrugNumber(Constants.REG.BUY_STAT);//剩余葯劑劑量 為0
        newCus.setAcctBal(Constants.REG.BUY_STAT);//余額為0
        newCus.setAllStar(Constants.REG.BUY_STAT);//總星級為0
        newCus.setAvgStart(Constants.REG.BUY_STAT);//平均星級為0


        if (userInfoDao.insertCustomer(newCus) < 1) {
            logger.error("-------------->數據庫執行插入用戶信息失敗<----------");
            response.setCode(Constants.ERROR_CODE);
            response.setMessage(Constants.ERROR_MSG);
            return response;
        }

        logger.info("----------------->注冊成功<-------------");
        Msg msg1 = new Msg();
        msg1.setMoblNo(msg.getMoblNo());//手機號
        msg1.setUseStat(Constants.MSG_CODE.ALR_USE);// 99 已使用
        msg1.setMsgCodeType(msg.getMsgCodeType());//00注冊 01修改
        int s = msgDao.updateMsgInfo(msg1);
        if (DataVerifyUtil.isEmptySize(s)){
            logger.info("----------------->修改短信狀態失敗<-------------");
            response.setCode("3333");
            response.setMessage("修改短信狀態失敗");
            return response;
        }
        response.setCode(Constants.SUCCESS_CODE);
        response.setMessage(Constants.REG.SUCCESS);
        response.setUserInfo(newCus);
        return response;

    }
}

 

發送驗證碼第三方工具

  1 package com.qianmo.qmyj.common.util;
  2 
  3 import com.qianmo.qmyj.bean.dto.MsgCfg;
  4 import com.qianmo.qmyj.bean.dto.MsgForm;
  5 import com.qianmo.qmyj.common.CommonConstants;
  6 import com.qianmo.qmyj.common.Constants;
  7 import com.qianmo.qmyj.dao.MsgCfgDao;
  8 import com.qianmo.qmyj.dao.MsgFormDao;
  9 import com.qianmo.qmyj.framework.util.DataVerifyUtil;
 10 import com.qianmo.qmyj.framework.util.QMDateUtil;
 11 import org.slf4j.Logger;
 12 import org.slf4j.LoggerFactory;
 13 import org.springframework.stereotype.Component;
 14 
 15 import javax.annotation.Resource;
 16 import java.io.*;
 17 import java.net.MalformedURLException;
 18 import java.net.URL;
 19 import java.net.URLConnection;
 20 import java.net.URLEncoder;
 21 import java.text.SimpleDateFormat;
 22 import java.util.ArrayList;
 23 import java.util.Calendar;
 24 import java.util.List;
 25 import java.util.Random;
 26 
 27 /**
 28  * Created by Administrator on 2017/5/4.
 29  */
 30 @Component
 31 public class MsgCodeUtil {
 32 
 33     private static Logger logger = LoggerFactory.getLogger(MsgCodeUtil.class);
 34 
 35 
 36     @Resource
 37     private MsgCfgDao msgCfgDao;
 38     @Resource
 39     private MsgFormDao msgFormDao;
 40 
 41 
 42     /**
 43      * 生成6位隨機數
 44      */
 45     public static synchronized String generateMsgCode() {
 46         Random random = new Random();
 47         int x = random.nextInt(899999);
 48         x = x + 100000;
 49         return String.valueOf(x);
 50     }
 51 
 52     /**
 53      * 獲取短信生成時間
 54      *
 55      * @return
 56      */
 57     public static String getStartTime() {
 58         return QMDateUtil.getYYYYMMDDHHMMSS();
 59     }
 60     /**
 61      * 獲取短信失效時間(5分鍾)
 62      *
 63      * @return
 64      */
 65     public static String getEndTime() {
 66         Calendar time = Calendar.getInstance();
 67         /*默認配置短信失效時間為5分鍾,可在CommonConstants.properties中更改*/
 68         time.add(Calendar.MINUTE, Integer.parseInt(CommonConstants.getProperty("MSG_TIME")));
 69         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
 70         return sdf.format(time.getTimeInMillis());
 71     }
 72 
 73     /**
 74      * 短信參數list
 75      *
 76      * @param msgList
 77      * @param msgText
 78      * @return
 79      */
 80     private static String msgCfg(List<String> msgList, String msgText) {
 81         for (String str : msgList)
 82             msgText = msgText.replaceFirst("t%", str);
 83         return msgText;
 84     }
 85     /**
 86      * 生成短信模版
 87      *
 88      * @param oprFlag
 89      * @param msgValidCode
 90      * @return
 91      */
 92    public String genSmsContext(String oprFlag, String msgValidCode) {
 93         // 設置模板類型
 94        String msgModeId = Constants.msgModeId.get(oprFlag);
 95 
 96        logger.info("msgModeId:[" + msgModeId + "]");
 97        /**查詢交易消息配置表*/
 98        MsgCfg msgCfg = msgCfgDao.getMsgCfgByPK(msgModeId);
 99        if (DataVerifyUtil.isBlank(msgCfg)){
100            logger.info("沒有符合發送條件的交易" + "SceneCod=" + msgModeId);
101            return null;
102        }
103        /**消息模板表*/
104        MsgForm msgForm = msgFormDao.selectByPK(msgCfg.getMsgFormId(),msgCfg.getSceneCode());
105        if (DataVerifyUtil.isBlank(msgForm)) {
106            try {
107                logger.info("msgFormId:" + msgCfg.getMsgFormId() + "sceneCode:" + msgCfg.getSceneCode() + "沒有對應的消息模版表");
108                throw new Exception("沒有對應的消息模版表");
109            } catch (Exception e) {
110                e.printStackTrace();
111            }
112        }
113 
114        List<String> msgParam = new ArrayList<>();
115 //       msgParam.add(QMDateUtil.getYYYY_MM_DD_HH_MM_CN());
116        msgParam.add(CommonConstants.getProperty("MSG_TIME")); // t% 數據庫 短信模板動態有效時間
117        msgParam.add(msgValidCode); // t% 數據庫 短信模板動態驗證碼
118        //你正在進行(青木易家app)注冊,失效時間t%分鍾,驗證碼為: t%。如不是本人操作,請忽略此條信息。
119        //你正在進行(青木易家app)修改登錄密碼,失效時間t%分鍾,驗證碼為: t%。如不是本人操作,請忽略此條信息。
120        return MsgCodeUtil.msgCfg(msgParam, msgForm.getMsgFormDtl());
121 
122 //        String msgContext = Constants.msgModeId.get(oprFlag);
123 //        msgContext = msgContext + "驗證碼為:" + msgValidCode;
124 //        logger.info("模板類型:[" + msgContext + "]");
125 //        return msgContext;
126     }
127 
128 
129     /**
130      * http get請求 發送方法 其他方法同理 返回值>0 提交成功
131      *
132      * @param Mobile    手機號碼
133      * @param Content   發送內容
134      * @param send_time 定時發送的時間;可以為空,為空時為及時發送
135      * @return 返回值
136      * @throws MalformedURLException
137      * @throws UnsupportedEncodingException
138      */
139     public static int sendSMSGet(String Mobile, String Content, String send_time)
140              {
141         URL url = null;
142         String CorpID = "XAJS002090";// 賬戶名
143         String Pwd = "xi@2090";// 密碼
144                  String send_content = null;// 發送內容
145                  try {
146                      send_content = URLEncoder.encode(
147                              Content.replaceAll("<br/>", " "), "GBK");
148                      url = new URL("https://sdk2.028lk.com/sdk2/BatchSend2.aspx?CorpID="
149                     + CorpID + "&Pwd=" + Pwd + "&Mobile=" + Mobile + "&Content="
150                     + send_content + "&Cell=&SendTime=" + send_time);
151                  } catch (MalformedURLException |UnsupportedEncodingException e) {
152                      e.printStackTrace();
153                  }
154                  BufferedReader in = null;
155         int inputLine = 0;
156         try {
157             System.out.println("開始發送短信手機號碼為 :" + Mobile);
158             in = new BufferedReader(new InputStreamReader(url.openStream()));
159             inputLine = new Integer(in.readLine()).intValue();
160         } catch (Exception e) {
161             System.out.println("網絡異常,發送短信失敗!");
162             inputLine = -2;
163         }
164         System.out.println("結束發送短信返回值:  " + inputLine);
165         return inputLine;
166     }
167 
168     /**
169      * Hppt POST請求發送方法 返回值>0 為 提交成功
170      *
171      * @param Mobile    電話號碼
172      * @param Content   發送內容
173      * @param send_time 定時發送時間,為空時,為及時發送
174      * @return
175      * @throws MalformedURLException
176      * @throws UnsupportedEncodingException
177      */
178     public static int sendSMSPost(String Mobile, String Content,
179                                   String send_time) throws MalformedURLException,
180             UnsupportedEncodingException {
181 
182         String inputLine = "";
183         int value = -2;
184         DataOutputStream out = null;
185         InputStream in = null;
186 
187         String CorpID = "*******";// 賬戶名
188         String Pwd = "*******";// 密碼
189         String send_content = URLEncoder.encode(
190                 Content.replaceAll("<br/>", " "), "GBK");// 發送內容
191 
192         String strUrl = "https://sdk2.028lk.com/sdk2/BatchSend2.aspx";
193         String param = "CorpID=" + CorpID + "&Pwd=" + Pwd + "&Mobile=" + Mobile
194                 + "&Content=" + send_content + "&Cell=&SendTime=" + send_time;
195 
196         try {
197 
198             inputLine = sendPost(strUrl, param);
199 
200             System.out.println("開始發送短信手機號碼為 :" + Mobile);
201 
202             value = new Integer(inputLine).intValue();
203 
204         } catch (Exception e) {
205 
206             System.out.println("網絡異常,發送短信失敗!");
207             value = -2;
208 
209         }
210 
211         System.out.println(String.format("返回值:%d", value));
212 
213         return value;
214     }
215     /**
216      * 向指定 URL 發送POST方法的請求
217      *
218      * @param url   發送請求的 URL
219      * @param param 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。
220      * @return 所代表遠程資源的響應結果
221      */
222     public static String sendPost(String url, String param) {
223 
224         PrintWriter out = null;
225         BufferedReader in = null;
226         String result = "";
227 
228         try {
229             URL realUrl = new URL(url);
230             // 打開和URL之間的連接
231             URLConnection conn = realUrl.openConnection();
232             // 設置通用的請求屬性
233             conn.setRequestProperty("accept", "*/*");
234             conn.setRequestProperty("connection", "Keep-Alive");
235             conn.setRequestProperty("user-agent",
236                     "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
237             // 發送POST請求必須設置如下兩行
238             conn.setDoOutput(true);
239             conn.setDoInput(true);
240             // 獲取URLConnection對象對應的輸出流
241             out = new PrintWriter(conn.getOutputStream());
242             // 發送請求參數
243             out.print(param);
244             // flush輸出流的緩沖
245             out.flush();
246             // 定義BufferedReader輸入流來讀取URL的響應
247             in = new BufferedReader(
248                     new InputStreamReader(conn.getInputStream()));
249             String line;
250             while ((line = in.readLine()) != null) {
251                 result += line;
252             }
253         } catch (Exception e) {
254             System.out.println("發送 POST 請求出現異常!" + e);
255             e.printStackTrace();
256         }
257         // 使用finally塊來關閉輸出流、輸入流
258         finally {
259             try {
260                 if (out != null) {
261                     out.close();
262                 }
263                 if (in != null) {
264                     in.close();
265                 }
266             } catch (IOException ex) {
267                 ex.printStackTrace();
268             }
269         }
270         return result;
271     }
272 
273     /**
274      * 賬號余額查詢
275      *
276      * @param corpId 賬號
277      * @param pwd    密碼
278      * @return
279      */
280     public static String getSelSum(String corpId, String pwd) {
281 
282         String result = "";
283         String msg = "";
284         String strUrl = "https://sdk2.028lk.com/sdk2/SelSum.aspx";
285         String param = "CorpID=" + corpId + "&Pwd=" + pwd;
286 
287         try {
288 
289             result = sendPost(strUrl, param);
290 
291             if (result.equals("-1")) {
292                 msg = "賬號未注冊";
293             } else if (result.equals("-2")) {
294                 msg = "其他錯誤";
295             } else if (result.equals("-3")) {
296                 msg = "密碼錯誤";
297             } else if (result.equals("-101")) {
298                 msg = "調用接口頻率過快(大於30s調用一次)";
299             } else if (result.equals("-100")) {
300                 msg = "IP黑名單";
301             } else if (result.equals("-102")) {
302                 msg = "賬號黑名單";
303             } else if (result.equals("-103")) {
304                 msg = "IP未導白";
305             } else {
306                 msg = String.format("獲取成功!%s", result);
307             }
308 
309             System.out.println(msg);
310 
311         } catch (Exception e) {
312 
313             System.out.println("網絡異常,回復消息獲取失敗!");
314 
315         }
316 
317         return result;
318     }
319 
320     /**
321      * 獲取禁止發送的號碼
322      *
323      * @param corpId 賬號
324      * @param pwd    密碼
325      * @return
326      */
327     public static String getNotSend(String corpId, String pwd) {
328 
329         String result = "";
330         String msg = "";
331         String strUrl = "https://sdk2.028lk.com/sdk2/NotSend.aspx";
332         String param = "CorpID=" + corpId + "&Pwd=" + pwd;
333 
334         try {
335 
336             result = sendPost(strUrl, param);
337 
338             if (result.equals("-1")) {
339                 msg = "賬號未注冊";
340             } else if (result.equals("-2")) {
341                 msg = "其他錯誤";
342             } else if (result.equals("-3")) {
343                 msg = "密碼錯誤";
344             } else if (result.equals("-101")) {
345                 msg = "調用接口頻率過快(大於30s調用一次)";
346             } else if (result.equals("-100")) {
347                 msg = "IP黑名單";
348             } else if (result.equals("-102")) {
349                 msg = "賬號黑名單";
350             } else if (result.equals("-103")) {
351                 msg = "IP未導白";
352             } else {
353                 msg = result;
354             }
355 
356             System.out.println(msg);
357 
358         } catch (Exception e) {
359 
360             System.out.println("網絡異常,禁止號碼獲取失敗!");
361 
362         }
363 
364         return result;
365 
366     }
367 
368     /**
369      * 獲取回復消息
370      *
371      * @param corpId 賬號
372      * @param pwd    密碼
373      * @return 回復消息結果
374      */
375     public static String getReplyMsg(String corpId, String pwd) {
376 
377         String result = "";
378         String msg = "";
379         String strUrl = "https://sdk2.028lk.com/sdk2/Get.aspx";
380         String param = "CorpID=" + corpId + "&Pwd=" + pwd;
381 
382         try {
383 
384             result = sendPost(strUrl, param);
385 //            result ="||15281008413#123#2017-01-04||15281008412#123#2017-01-04||15281008413#121#2017-01-04||15281008410#123#2017-01-04||";
386 
387             if (result == null || result.equals("") || result.length() == 0) {
388                 msg = "沒有上行信息";
389             }
390 
391             if (result.equals("-1")) {
392                 msg = "賬號未注冊";
393             } else if (result.equals("-2")) {
394                 msg = "其他錯誤";
395             } else if (result.equals("-3")) {
396                 msg = "密碼錯誤";
397             } else if (result.equals("-101")) {
398                 msg = "調用接口頻率過快(大於30s調用一次)";
399             } else if (result.equals("-100")) {
400                 msg = "IP黑名單";
401             } else if (result.equals("-102")) {
402                 msg = "賬號黑名單";
403             } else if (result.equals("-103")) {
404                 msg = "IP未導白";
405 
406             } else {
407 
408                 msg = String.format("獲取成功!%s", result);
409 
410                 result = result.replace("||", "|");
411 
412                 String[] strArray = result.split("\\|");
413                 String outContent = "";
414 
415                 int i = 0;
416 
417                 for (String str : strArray) {
418 
419                     if (str.equals(""))
420                         continue;
421 
422                     String[] strConArr = str.split("#");
423 
424                     if (strConArr == null || strConArr.length <= 0)
425                         continue;
426 
427                     i = i + 1;
428 
429                     outContent = String.format("第%d條回復,手機號碼:%s,回復內容:%s,回復時間:%s",
430                             i,
431                             strConArr[0],
432                             strConArr[1],
433                             strConArr[2]);
434 
435                     System.out.println(outContent);
436 
437                 }
438             }
439 
440             System.out.println(msg);
441 
442         } catch (Exception e) {
443 
444             System.out.println("網絡異常,回復消息獲取失敗!");
445 
446         }
447 
448         return result;
449     }
450 
451 
452     public static void main(String[] args) {
453         MsgCodeUtil.generateMsgCode();
454         MsgCodeUtil.getStartTime();
455         MsgCodeUtil.getEndTime();
456     }
457 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM