1. 程式人生 > >網站登錄發送短信提醒

網站登錄發送短信提醒

實現 idc gpo param utf all ats url href

前端時間做網站,客戶對用戶帳戶安全要求比較高,要求賬戶登錄需要有短信提醒,下面是實現的一些核心代碼分享給大家:

這裏面用到的短信接口,是第三方短信接口服務商—動力思維樂信,如果對調用接口不太了解的可以,到他們的網站(www.lx598.com )看下API文檔和demo。

主要代碼如下:

1.action:

/**
* 登錄
* 
* @return
*/
@Action(value = "login")
public void login() {
PrintWriter out;
String result = "0";
try{
	boolean bCaptcha=validCaptcha();
	if(bCaptcha){
		dailiUser.setFloginpwd(MD5.getMd5String(dailiUser.getFloginpwd()).toUpperCase());
		DailiUserLogin getUser = sysService.login(dailiUser);
		if (null != getUser) {
			System.out.println("=======登錄成功");
			request.getSession().setAttribute(ConstValues.WEB_SESSION_DAILI_KEY,getUser);
			result = "0";
			// 這裏執行短信發送
				
				String content = "歡迎" + getUser.getACCMOB()+"登陸【短信簽名】";//getUser.getACCMOB() 用戶名為電話號
				SendSmsReply sendSmsReply = smsUnit.sendSms(accName,accPwd ,getUser.getACCMOB(),content,"");

//調用第三方接口發送短信
			
		}else{
			result =  "1";
		}
	}else{
		result = "2";
	}
}catch (Exception e) {
	e.printStackTrace();
} finally {
	try {
		response.setContentType("text/html;charset=UTF-8");
		response.setCharacterEncoding("UTF-8");
		out = response.getWriter();
		out.write(result);
	} catch (IOException e) {
		e.printStackTrace();
		logger.warn("", e);
	}
   }
}

2.service:

public DailiUserLogin login(DailiUser user) {
	if (user == null || user.getFloginname() == null
		| user.getFloginpwd() == null)
	return null;
	DailiUserLogin dailiUserLogin=dailiUserMapper.selectByNameAndPwd(user);
	dailiUserLogin.setCacheId(HashUtil.getRandomUUID());
		
	memCachedClient.set(dailiUserLogin.getCacheId(), dailiUserLogin,8*60*60*1000);
	return dailiUserLogin;
		
	//return null;
	}

3.第三方短信發送平臺:

/**
* 發送短信
* @param accName 樂信賬號用戶名
* @param accPwd 樂信賬號密碼
* @param seed 當前時間 格式:YYYYMMDD HHMISS 例如:20130806102030
* @param aimcodes 手機號多個手機號之間英文半角逗號隔開
* @param content 內容後加簽名
* @param schTime 定時時間格式如:2010-01-01 08:00:00
* @return 服務端返回的結果 ok:業務id 或者 錯誤代碼
*/
public  static String sendSms(String accName,String accPwd,String mobies,String content,String schTime){
StringBuffer sb = new StringBuffer("http://sdk.lx198.com/sdk/send2?");
try {
	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")); //空格標點符號做encode轉換
	sb.append("&content="+URLEncoder.encode(content,"UTF-8")); //中文做encode轉換
	URL url = new URL(sb.toString());
	HttpURLConnection connection = (HttpURLConnection) url.openConnection();
	connection.setRequestMethod("POST");
	BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
	return in.readLine();
} catch (Exception e) {
	e.printStackTrace();
}
return null;
}

  

  

網站登錄發送短信提醒