网站登录发送短信提醒

前端时间做网站,客户对用户帐户安全要求比较高,要求账户登录需要有短信提醒,下面是实现的一些核心代码分享给大家:

这里面用到的短信接口,是第三方短信接口服务商—动力思维乐信,如果对调用接口不太了解的可以,到他们的网站(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;
}

  

  

原文地址:https://www.cnblogs.com/qifei-2018/p/8426928.html

时间: 2024-10-09 20:12:33

网站登录发送短信提醒的相关文章

程序君带你畅聊发送短信验证码

现在不管是网站,还是app等互联网和移动互联网产品,绝大部分注册都是直接用手机号注册登录的,方式就是给手机发送短信验证码,然后把验证码填入,后台程序去匹配判断用户填入的验证码和发送的是否一致. 我最近做的好几个项目都用到了发送短信验证码的这个第三方接口,其实这个发送验证码的原理很简单,实现也很简单. 如下三个图,是我做的其中一个项目的相关效果截图: 我用的比较多的第三方短信接口是容联-云通讯的(http://www.yuntongxun.com/),它的API挺强大的,也挺稳定的,使用也不难,有

web服务器不能正常发送短信

网站注册,用户获取验证码失败,经过网站开发兄弟提醒,研究了下fsockopen()等函数,现摘要如下 Fsockopen() (PHP4,PHP5) 用于打开一个网络链接或一个unix套接字链接. 也就是说,既然此函数会参与短信API收发,那么就有可能该函数打开了一个unix套接字链接,此时网站开发的兄弟亦证实了这点. 于是我马上想到很有可能是采用了三种套接字类型中的流套接字(sock_stream).那么就会产生3次握手.于是用iptables命令发现,交互包被防火墙drop掉了.但是仅到此,

使用阿里云的短信服务发送短信

在给客户开发一个信息发送功能的时候,需要涉及到短信的发送,短信发送一般不同的厂商提供的接口不同,处理方式也不太一样,之前用的一个厂商的,提供了一个封装类就很容易发送短息,因此都是基于HTTP协议做的一个数据发送而已,接触阿里云的短信服务器后,发现阿里云还增加了非常多的参数,其中包括一些秘钥和签名的内容.短信发送由于比较敏感原因,大多数应用场景是验证码或者一些固定的信息提醒,因此厂商都要求客户按预定的模板来发送,这样限制了短信的应用场景,只能根据业务进行消息定制了.本篇随笔主要介绍阿里云的短信服务

asp发送短信验证码 pst方式

<script language="jscript" runat="server">  Array.prototype.get = function(x) { return this[x]; };  function parseJSON(strJSON) { return eval("(" + strJSON + ")"); }  </script><%if userid<>"

邮件系统+短信提醒方案

邮件系统+短信提醒方案 随着3G网络的普及,智能手机的流行,如何借助移动通信工具更快速.方便有效的收发和管理邮件,已经成为邮件服务发展的方向.为了提高工作效率,信息交流达到实时同步,TurboMail为需要经常出差办公的企业打造“邮件系统+短信网关”的方案,用户在收发邮件时,都能同时通过短 信实现同步提醒,实现移动办公的需求. 工作原理 邮件系统与短信息网关,可以构成一个自动通知系统. SMS网关支持短信平台和短信设备(GSM猫)2种发送方式,可以灵活部署于互联网和内网,发送方式和计 费方式非常

Java调用SMSLib发送短信详解

项目中需要用到发送短信功能,之前没做过这方面,找人咨询了一下,也网上查了查,发现并不是很复杂.目前项目已经完成了,做个记录以备后用.程序中发送短信主要有4种方法: 1.向当地的运营商申请网关,不需要额外的设备,利用对方提供的 API调用程序发送短信,适用于大型的通信公司.稳定,速度快,适合短信量特别大的需求,需要连接到运营商的网络中,不适合内网项目. 2.短信猫发送短信,借助像 GSM MODEM之类的设备(支持AT指令的手机也行),通过数据线连接电脑来发送短信,这种方法比较适用于小公司及个人.

C# 通过串口发送短信

手机短信群发作为企业日常通知,公告,天气预报等信息的一个发布平台,在于成本低,操作方便等诸多特点,成为企业通讯之首选.本文介绍短信的编码方式,AT指令以及用C#实现串口通讯的方法. 前言目前,发送短信的方式主要有三种: 1.网关方式:向当前电信部门申请,不需要另外设备.但是费用相对来说,比较高,以目前上海移动公司推出的短信群发套餐来说,对于中小企业的短信息的发送数量来看, 短信群发和打电话相比,几乎没有什么优势.对于几万人的大公司而言,可能很便宜.对于几百人甚至更少人的公司来说,这种方式根本不划

JAVA利用第三方平台发送短信验证码。

前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例,在SpringMVC+Spring+Mybatis框架的基础上完成该短信验证码功能. 发送短信验证码的原理是:随机生成一个6位数字,将该6位数字保存到session当中,客户端通过sessionid判断对应的session,用户输入的验证码再与session记录的验证码进行比较. 为了防止有广告嫌疑

NetCore 阿里大于发送短信

使用阿里大于API发送短信,但阿里没有提供NetCore 的API,自己看了下源码重写了发短信这个部分 public class MessageSender { private readonly string _appKey; private readonly string _appSecret; private readonly string _serverUrl; public MessageSender(string url, string appKey, string appSecret