java通过SMS短信平台实现发短信的功能

一、使用java发送短信的方法:

java发送手机短信,通常有几种方法:

(1)使用webserive接口发送手机短信;

(2)使用短信猫的方式进行短信的发送,比较常用的方式,不过需要购买硬件设备;

(3)使用中国网建的SMS短信平台,使用前需要注册,这里只记录SMS接口的使用。

 

二、接口的使用:

(1)导入jar:

commons-logging-1.2.jar

commons-codec-1.10.jar

commons-httpclient-3.1.jar

maven依赖:

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.10</version>
</dependency>

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>

<dependency>
    <groupId>commons-httpclient</groupId>
    <artifactId>commons-httpclient</artifactId>
    <version>3.1</version>
</dependency>

(2)util:

package com.serviceMarket.common.util;

import java.io.IOException;
import java.util.HashMap;

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

/** 
* 类说明 :SMS_webchinese发送短信util
*/
public class SendMsgUtil {
	
	public static HashMap<String,String> getMessageStatus(String phone){
		HashMap<String,String> map=new HashMap<String,String>();
		
		HttpClient client = new HttpClient();
		
		PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn"); //sms平台接口
		post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置编码集格式
		
		int num=(int)((Math.random()*9+1)*100000);//6位数验证码
		String code=num+"";
		
		NameValuePair[] data ={ 
				new NameValuePair("Uid", "用户名"),//sms平台的用户名
				new NameValuePair("Key", "短信秘钥"),//短信秘钥,不是密码
				new NameValuePair("smsMob","目的手机号码"),//目的手机号码,多个手机号用半角逗号隔开
				new NameValuePair("smsText","本次验证码为:"+code+""+",有效时间为5分钟")//短信内容,自定义
                        };
		map.put("code", code);
		post.setRequestBody(data);

		try {
			client.executeMethod(post);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//打印状态码和响应头信息
		int statusCode = post.getStatusCode();
		System.out.println("statusCode:"+statusCode);
		Header[] headers = post.getResponseHeaders();
		for(Header h : headers)
		{
			System.out.println(h.toString());
		}
		
	
		String result = null;
		try {
			result = new String(post.getResponseBodyAsString().getBytes("gbk"));
		} catch (IOException e) {
			e.printStackTrace();
		} 
		System.out.println(result); //打印返回的消息状态
		map.put("result", result);

		post.releaseConnection();
		return map;
	}	
}

(3)Controller:

@Controller 
public class Controller {
        //短信发送接口
	@RequestMapping(value="/GET/authentication/{phone}")
	@ResponseBody
        //返回结果Result对象:成功时返回一个6位数验证码,失败时返回false
	public Result authentication(@PathVariable(value="phone")String phone,HttpServletRequest request){
		
		HashMap<String, String> map = SendMsgUtil.getMessageStatus(phone); //调用发送短信接口
			
		String result = map.get("result");//获取到result值
		if (result.trim().equals("1")) {//如果为1,表示成功发送
			
			String code = map.get("code");//获取发送的验证码内容
			HttpSession session = request.getSession(); //设置session
			session.setAttribute("code", code);//将短信验证码放到session中保存
			session.setMaxInactiveInterval(60 * 5);//保存时间 暂时设定为5分钟
			
			System.out.println(code);
			return Result.ok(code);
			
		} else {
			//短信发送失败
			return Result.ok("false");
		}		
	}
}

(4)短信发送后的返回值:

短信发送后返回值说 明
-1没有该用户账户
-2接口密钥不正确,不是账户登陆密码
-21MD5接口密钥加密不正确
-3短信数量不足
-11该用户被禁用
-14短信内容出现非法字符
-4手机号格式不正确
-41手机号码为空
-42短信内容为空
-51短信签名格式不正确
接口签名格式为:【签名内容】
-6IP限制
大于0短信发送数量

 

PlaySMS是一个灵活的基于web的短信平台,可连接短信网关、个人信息系统以及企业的群组通讯工具等。   功能亮点: •多个数据库引擎支持(使用PHP PEAR DB ) •发送短信到单一的移动电话( web2mobile ) •发送短信广播到一组手机( web2mobiles ,短信群发) •支持发送文字,闪存和unicode消息 •能够处理大量的短信( 500K短信包月) •接收私人短信收件箱,并转发到电子邮件( mobile2web ) •转发单从短信到移动一组手机( mobile2mobiles ) •短信自动回复,便于autoreplying格式化接收到的SMS短信板,转发接收到的短信到电子邮件,以JSON出口量和一些其他格式 •短信指令,使用SMS执行服务器端的shell脚本 •短信定制,转发接收到的SMS到自定义应用程序,在本地或外部URL •短信投票,使用SMS管理查询系统,以图形的出口输出, JSON等格式 •短信竞猜,供职于短信竞猜 •短信订阅,管理用户订阅使用SMS服务 •短信同步从smssync.ushahidi.com利用SMSSync应用程序 •创建您自己的功能,工具,主题和网关模块作为一个插件 •支持监务, Gnokii , Kannel所,短信服务器工具, Msgtoolbox ,上行, Nexmo , Twilio , Infobip和的Clickatell •支持模拟网关,用于测试传入和传出的短信 • WebServices的发送短信,检索递送报告,检查信用和更多 •超长短信支持,文本的长度是可配置的 •速率短讯目的前缀 •每个用户短信信用体系 •时区设置 •多语言用户界面(英语,法语,印尼语,俄罗斯和其他几个人) •轻松添加新的语言的用户界面 •基于Web的界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张维鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值